]> gitweb.michael.orlitzky.com - dead/whatever-dl.git/blobdiff - src/websites/vimeo.rb
Move all of the 'src' code under the more-standard 'lib'.
[dead/whatever-dl.git] / src / websites / vimeo.rb
diff --git a/src/websites/vimeo.rb b/src/websites/vimeo.rb
deleted file mode 100644 (file)
index a6a4ea3..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-#
-# Copyright Michael Orlitzky
-#
-# http://michael.orlitzky.com/
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# http://www.fsf.org/licensing/licenses/gpl.html
-#
-
-require 'src/website'
-
-
-class Vimeo < Website
-
-  VALID_VIMEO_URL_REGEX = /^(http:\/\/)?(www\.)?vimeo\.com\/(moogaloop\.swf\?clip_id=)?(\d+)/
-  
-  def self.owns_url?(url)
-    return url =~ VALID_VIMEO_URL_REGEX
-  end
-
-  
-  def get_video_url()
-    # First, figure out the video id from the URL.
-    # Then, use the video id to construct the video details URL.
-    # Get the video details page, and parse the resulting XML for
-    # the junk we need to construct the video URL. Note that the file
-    # URL given in the XML is *not* valid.
-    video_id = self.parse_video_id()
-    details_url = "http://vimeo.com/moogaloop/load/clip:#{video_id}/local"
-    details_data = get_page_data(details_url)
-
-    request_signature = parse_request_signature(details_data)
-    request_signature_expires = parse_request_signature_expires(details_data)
-    quality = parse_quality(details_data)
-
-    referer = "http://a.vimeocdn.com/p/flash/moogaloop/5.1.15/moogaloop.swf"
-    referer += "?v=1.0.0"
-    referer += "&time=#{request_signature_expires}"
-    self.headers['Referer'] = referer
-    
-    video_url = "http://player.vimeo.com/play_redirect?clip_id=#{video_id}"
-    video_url += "&sig=#{request_signature}"
-    video_url += "&time=#{request_signature_expires}"
-    video_url += "&quality=#{quality}"
-    video_url += "&codecs=H264,VP8,VP6"
-    
-    return video_url
-  end
-
-
-  def get_video_filename()
-    # The default behavior is no good here, use the video
-    # id with an extension tacked onto it.
-    return (self.parse_video_id() + '.flv')
-  end
-
-  
-  protected;
-
-  def parse_video_id()
-    video_id = nil
-    
-    # First, try to get the video id from the end of the URL.
-    video_id_regex = /\/(\d+)$/
-    matches = video_id_regex.match(@url)
-
-    if matches.nil?
-      # If that didn't work, the URL must be of the clip_id= form.
-      video_id_regex = /clip_id\=(\d+)/
-      matches = video_id_regex.match(@url)
-      video_id = matches[1] if not matches.nil? || matches.length < 1
-    else
-      video_id = matches[1] if not matches.nil? || matches.length < 1
-    end
-    
-    return video_id
-  end
-
-  
-  def parse_request_signature(page_data)
-    # It's XML.
-    rs_regex = /<request_signature>(.*?)<\/request_signature>/
-    matches = rs_regex.match(page_data)
-    request_signature = matches[1] if not matches.nil? || matches.length < 1
-    
-    return request_signature
-  end
-  
-
-  def parse_request_signature_expires(page_data)
-    rse_regex = /<request_signature_expires>(.*?)<\/request_signature_expires>/
-    matches = rse_regex.match(page_data)
-    rse = matches[1] if not matches.nil? || matches.length < 1
-    
-    return rse
-  end
-
-
-  def parse_quality(page_data)
-    quality_regex = /<isHD>([01])<\/isHD>/
-    matches = quality_regex.match(page_data)
-    is_hd = matches[1] if not matches.nil? || matches.length < 1
-
-    if is_hd == '1' then
-       # High-definition
-      return "hd"
-    else
-      # Standard-definition
-      return "sd"
-    end
-  end
-
-  
-end