youtube-dl

Another place where youtube-dl lives on
git clone git://git.oshgnacknak.de/youtube-dl.git
Log | Files | Refs | README | LICENSE

commit 3820df0106d6065f50cc1eb90823906410dc9543
parent fa70605db287fd74f7d32b966ecca56260c651a0
Author: Jaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>
Date:   Fri, 26 Apr 2013 19:25:17 +0200

Merge pull request #801 from expleo/add_referer_support

Diffstat:
MREADME.md | 2++
Myoutube_dl/InfoExtractors.py | 5++++-
Myoutube_dl/__init__.py | 7+++++++
3 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md @@ -27,6 +27,8 @@ which means you can modify it, redistribute it or use it however you like. from an initial value of SIZE. --dump-user-agent display the current browser identification --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 would handle diff --git a/youtube_dl/InfoExtractors.py b/youtube_dl/InfoExtractors.py @@ -1093,7 +1093,10 @@ class VimeoIE(InfoExtractor): config = webpage.split(' = {config:')[1].split(',assets:')[0] config = json.loads(config) except: - self._downloader.report_error(u'unable to extract info section') + 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') return # Extract title diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py @@ -140,6 +140,9 @@ def parseOpts(overrideArguments=None): help='display the current browser identification', default=False) general.add_option('--user-agent', 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', action='store_true', dest='list_extractors', help='List all supported extractors and the URLs they would handle', default=False) @@ -342,6 +345,10 @@ def _real_main(argv=None): # Set user agent if opts.user_agent is not None: std_headers['User-Agent'] = opts.user_agent + + # Set referer + if opts.referer is not None: + std_headers['Referer'] = opts.referer # Dump user agent if opts.dump_user_agent: