Merge pull request #801 from expleo/add_referer_support

This commit is contained in:
Jaime Marquínez Ferrándiz 2013-04-26 19:25:17 +02:00
commit 3820df0106
3 changed files with 13 additions and 1 deletions

View file

@ -27,6 +27,8 @@ which means you can modify it, redistribute it or use it however you like.
from an initial value of SIZE. from an initial value of SIZE.
--dump-user-agent display the current browser identification --dump-user-agent display the current browser identification
--user-agent UA specify a custom user agent --user-agent UA specify a custom user agent
--referer REF specify a custom referer, use if the video access
is restricted to one domain
--list-extractors List all supported extractors and the URLs they --list-extractors List all supported extractors and the URLs they
would handle would handle

View file

@ -1093,6 +1093,9 @@ class VimeoIE(InfoExtractor):
config = webpage.split(' = {config:')[1].split(',assets:')[0] config = webpage.split(' = {config:')[1].split(',assets:')[0]
config = json.loads(config) config = json.loads(config)
except: except:
if re.search('The creator of this video has not given you permission to embed it on this domain.', webpage):
self._downloader.report_error(u'The author has restricted the access to this video, try with the "--referer" option')
else:
self._downloader.report_error(u'unable to extract info section') self._downloader.report_error(u'unable to extract info section')
return return

View file

@ -140,6 +140,9 @@ def parseOpts(overrideArguments=None):
help='display the current browser identification', default=False) help='display the current browser identification', default=False)
general.add_option('--user-agent', general.add_option('--user-agent',
dest='user_agent', help='specify a custom user agent', metavar='UA') dest='user_agent', help='specify a custom user agent', metavar='UA')
general.add_option('--referer',
dest='referer', help='specify a custom referer, use if the video access is restricted to one domain',
metavar='REF', default=None)
general.add_option('--list-extractors', general.add_option('--list-extractors',
action='store_true', dest='list_extractors', action='store_true', dest='list_extractors',
help='List all supported extractors and the URLs they would handle', default=False) help='List all supported extractors and the URLs they would handle', default=False)
@ -343,6 +346,10 @@ def _real_main(argv=None):
if opts.user_agent is not None: if opts.user_agent is not None:
std_headers['User-Agent'] = opts.user_agent std_headers['User-Agent'] = opts.user_agent
# Set referer
if opts.referer is not None:
std_headers['Referer'] = opts.referer
# Dump user agent # Dump user agent
if opts.dump_user_agent: if opts.dump_user_agent:
print(std_headers['User-Agent']) print(std_headers['User-Agent'])