require 'src/website'
-# Needed to download the video XML file, which is in turn
-# needed because it contains the junk we need to construct
-# the video URL.
-require 'net/http'
-require 'uri'
-
class Vimeo < Website
end
- def get_video_url(url)
+ 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 = parse_video_id(url)
+ video_id = self.parse_video_id()
details_url = "http://www.vimeo.com/moogaloop/load/clip:#{video_id}/local"
details_data = get_page_data(details_url)
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(url)
+ 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)
+ 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)
+ 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
- def get_page_data(url)
- uri = URI.parse(url)
-
- response = Net::HTTP.start(uri.host, uri.port) do |http|
- http.get(uri.path)
- end
-
- return response.body
- end
-
end