# Most of the URLs will just be the video's id,
# followed by an underscore and the video title (with
- # all spaces replaced by underscores. Sounds look a good
+ # all spaces replaced by underscores. Sounds like a good
# filename to me.
filename_regex = /\/([[:alnum:]_]+)\.html/
matches = filename_regex.match(@url)
# Get the FLV file URL from the HTML page for this movie.
# It's stored in some Flash variable.
def parse_video_url(page_data)
+ # There are two formats; try them both one at a time.
video_url_regex = /&file=(http:\/\/.*\.flv)&/i
matches = video_url_regex.match(page_data)
- if (matches.nil? || matches.length < 2)
- raise StandardError.new('Could not find the "file" flash variable on the page.');
+ if not (matches.nil? || matches.length < 2)
+ return matches[1]
end
-
- return matches[1]
- end
+ # If we didn't return a match already, try the second format.
+ video_url_regex = /<param name='fileName' value="(.*?)"/i
+ matches = video_url_regex.match(page_data)
- # Just make a normal HTTP "get" request.
- def get_page_data(url)
- uri = URI.parse(url)
-
- response = Net::HTTP.start(uri.host, uri.port) do |http|
- http.get(uri.path)
+ if (matches.nil? || matches.length < 2)
+ raise StandardError.new('Could not find the "file" Flash variable, nor the "fileName" object parameter.');
end
- return response.body
+ return matches[1]
end
+
end