module VideoInfo::Providers::VimeoAPI

Constants

Public Instance Methods

api_key() click to toggle source
# File lib/video_info/providers/vimeo_api.rb, line 6
def api_key
  VideoInfo.provider_api_keys[:vimeo]
end
author() click to toggle source
# File lib/video_info/providers/vimeo_api.rb, line 22
def author
  _video["user"]["name"]
end
author_thumbnail(width = 75) click to toggle source
# File lib/video_info/providers/vimeo_api.rb, line 35
def author_thumbnail(width = 75)
  "https://i.vimeocdn.com/portrait/" \
  "#{author_thumbnail_id}_#{width}x#{width}.jpg"
end
author_thumbnail_id() click to toggle source
# File lib/video_info/providers/vimeo_api.rb, line 26
def author_thumbnail_id
  author_uri = _video["user"]["pictures"]["uri"]
  @author_thumbnail_id ||= parse_picture_id_from_user(author_uri)
end
author_url() click to toggle source
# File lib/video_info/providers/vimeo_api.rb, line 31
def author_url
  _video["user"]["link"]
end
date() click to toggle source
# File lib/video_info/providers/vimeo_api.rb, line 64
def date
  Time.parse(_video["created_time"], Time.now.utc).utc
end
keywords() click to toggle source
# File lib/video_info/providers/vimeo_api.rb, line 56
def keywords
  keywords_array
end
keywords_array() click to toggle source
# File lib/video_info/providers/vimeo_api.rb, line 60
def keywords_array
  _video["tags"].map { |t| t["tag"] }
end
stats() click to toggle source
# File lib/video_info/providers/vimeo_api.rb, line 72
def stats
  _video["stats"]
end
thumbnail_id() click to toggle source
# File lib/video_info/providers/vimeo_api.rb, line 40
def thumbnail_id
  @thumbnail_id ||= parse_picture_id(_video.dig("pictures", "sizes").first["link"])
end
thumbnail_large() click to toggle source
# File lib/video_info/providers/vimeo_api.rb, line 52
def thumbnail_large
  generate_thumbnail(640)
end
thumbnail_medium() click to toggle source
# File lib/video_info/providers/vimeo_api.rb, line 48
def thumbnail_medium
  generate_thumbnail(200, 150)
end
thumbnail_small() click to toggle source
# File lib/video_info/providers/vimeo_api.rb, line 44
def thumbnail_small
  generate_thumbnail(100, 75)
end
title() click to toggle source
# File lib/video_info/providers/vimeo_api.rb, line 18
def title
  _video["name"]
end
view_count() click to toggle source
# File lib/video_info/providers/vimeo_api.rb, line 68
def view_count
  stats["plays"].to_i
end

Private Instance Methods

_api_base() click to toggle source
# File lib/video_info/providers/vimeo_api.rb, line 108
def _api_base
  "api.vimeo.com"
end
_api_path() click to toggle source
# File lib/video_info/providers/vimeo_api.rb, line 112
def _api_path
  "/videos/#{video_id}"
end
_api_url() click to toggle source
# File lib/video_info/providers/vimeo_api.rb, line 116
def _api_url
  "https://#{_api_base}#{_api_path}"
end
_api_version() click to toggle source
# File lib/video_info/providers/vimeo_api.rb, line 92
def _api_version
  "3.2"
end
_api_version_headers() click to toggle source
# File lib/video_info/providers/vimeo_api.rb, line 100
def _api_version_headers
  {"Accept" => "application/vnd.vimeo.*+json;version=#{_api_version}"}
end
_authorization_headers() click to toggle source
# File lib/video_info/providers/vimeo_api.rb, line 96
def _authorization_headers
  {"Authorization" => "bearer #{api_key}"}
end
_clean_options(options) click to toggle source
Calls superclass method
# File lib/video_info/providers/vimeo_api.rb, line 87
def _clean_options(options)
  headers = [super, _authorization_headers, _api_version_headers]
  headers.inject(&:merge)
end
_video() click to toggle source
# File lib/video_info/providers/vimeo_api.rb, line 104
def _video
  data
end
generate_thumbnail(width = 200, height = nil) click to toggle source
# File lib/video_info/providers/vimeo_api.rb, line 78
def generate_thumbnail(width = 200, height = nil)
  base_uri = "https://i.vimeocdn.com/video/#{thumbnail_id}"
  if height
    base_uri + "_#{width}x#{height}.jpg"
  else
    base_uri + "_#{width}.jpg"
  end
end
parse_picture_id(uri) click to toggle source
# File lib/video_info/providers/vimeo_api.rb, line 124
def parse_picture_id(uri)
  uri.match(THUMBNAIL_LINK_REGEX)[1]
end
parse_picture_id_from_user(uri) click to toggle source
# File lib/video_info/providers/vimeo_api.rb, line 120
def parse_picture_id_from_user(uri)
  %r{/pictures/(\d+)}.match(uri)[1]
end