Define a USER_AGENT in the configuration file.
# example.
DOWNLOAD_METHOD = :openuri
#DOWNLOAD_METHOD = :wget
# example.
DOWNLOAD_METHOD = :openuri
#DOWNLOAD_METHOD = :wget
+
+ USER_AGENT = 'whatever-dl'
- def get_page_data(url, headers = {})
# A naive implementation that just grabs the
# data from a page.
uri = URI.parse(url)
response = Net::HTTP.start(uri.host, uri.port) do |http|
# A naive implementation that just grabs the
# data from a page.
uri = URI.parse(url)
response = Net::HTTP.start(uri.host, uri.port) do |http|
- http.get(uri.request_uri, headers)
+ http.get(uri.request_uri, self.headers)
+ # Additional headers used when requesting data from the website.
+ # These aren't passed as a parameter because the (final)
+ # downloaders need them as well.
+ attr_accessor :headers
+
def initialize(url)
@url = url
def initialize(url)
@url = url
+ self.headers = { 'User-Agent' => Configuration::USER_AGENT }
def self.create(url)
# Factory method returning an instance of
# the appropriate subclass.
def self.create(url)
# Factory method returning an instance of
# the appropriate subclass.
def get_video_url()
# Disable the family filter if necessary.
def get_video_url()
# Disable the family filter if necessary.
- headers = { 'Cookie' => 'family_filter=off' }
- page_data = self.get_page_data(@url, headers)
+ self.headers['Cookie'] = 'family_filter=off'
+ page_data = self.get_page_data(@url)
video_url = self.parse_video_url(page_data)
return video_url
video_url = self.parse_video_url(page_data)
return video_url