Class: FlickVimeo::Video
- Inherits:
-
Object
- Object
- FlickVimeo::Video
- Defined in:
- lib/flickvimeo/video.rb
Instance Attribute Summary collapse
-
#clip_id ⇒ Object
Returns the value of attribute clip_id.
-
#url ⇒ Object
Returns the value of attribute url.
Instance Method Summary collapse
- #config ⇒ Object
- #http_request(url) ⇒ Object
-
#initialize(id) ⇒ Video
constructor
A new instance of Video.
- #quality ⇒ Object
- #signature ⇒ Object
- #timestamp ⇒ Object
- #video_file_url ⇒ Object
- #video_redirect_url ⇒ Object
- #vimeo_id(id) ⇒ Object
Constructor Details
#initialize(id) ⇒ Video
Returns a new instance of Video.
9 10 11 12 13 |
# File 'lib/flickvimeo/video.rb', line 9 def initialize(id) @clip_id = vimeo_id(id) @url = "http://vimeo.com/moogaloop/load/clip:#{@clip_id}/local/" @codec = 'h264' end |
Instance Attribute Details
#clip_id ⇒ Object
Returns the value of attribute clip_id.
7 8 9 |
# File 'lib/flickvimeo/video.rb', line 7 def clip_id @clip_id end |
#url ⇒ Object
Returns the value of attribute url.
7 8 9 |
# File 'lib/flickvimeo/video.rb', line 7 def url @url end |
Instance Method Details
#config ⇒ Object
38 39 40 41 42 43 |
# File 'lib/flickvimeo/video.rb', line 38 def config @config ||= begin response = http_request(@url) Nokogiri::XML.parse(response.body) end end |
#http_request(url) ⇒ Object
56 57 58 59 60 61 62 63 64 |
# File 'lib/flickvimeo/video.rb', line 56 def http_request(url) uri = URI.parse(url) http = Net::HTTP.new(uri.host, uri.port) request = Net::HTTP::Get.new(uri.request_uri) request["User-Agent"] = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; en-us) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4" response = http.request(request) end |
#quality ⇒ Object
34 35 36 |
# File 'lib/flickvimeo/video.rb', line 34 def quality config.search('video isHD').text == '1' ? 'hd' : 'sd' end |
#signature ⇒ Object
30 31 32 |
# File 'lib/flickvimeo/video.rb', line 30 def signature config.search('request_signature').text end |
#timestamp ⇒ Object
26 27 28 |
# File 'lib/flickvimeo/video.rb', line 26 def config.search('timestamp').text end |
#video_file_url ⇒ Object
19 20 21 22 23 24 |
# File 'lib/flickvimeo/video.rb', line 19 def video_file_url @video_file_url ||= begin response = http_request(video_redirect_url) response['Location'] end end |
#video_redirect_url ⇒ Object
15 16 17 |
# File 'lib/flickvimeo/video.rb', line 15 def video_redirect_url "http://player.vimeo.com/play_redirect?quality=#{quality}&codecs=#{@codec}&clip_id=#{clip_id}&time=#{}&sig=#{signature}&type=html5_desktop_local" end |
#vimeo_id(id) ⇒ Object
45 46 47 48 49 50 51 52 53 54 |
# File 'lib/flickvimeo/video.rb', line 45 def vimeo_id(id) case id.to_s when %r{^http://.*vimeo.com.*[#/](\d+)} $1 when /^\d+$/ id else raise "Unknown id format: #{id}" end end |