summary refs log tree commit diff
diff options
context:
space:
mode:
authorJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>2013-04-26 19:25:17 +0200
committerJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>2013-04-26 19:34:32 +0200
commit3820df0106d6065f50cc1eb90823906410dc9543 (patch)
tree71e3da6ac02dfc3e48aa206aa09ce886ed8c6a47
parentfa70605db287fd74f7d32b966ecca56260c651a0 (diff)
parent59cc5d9380ee6ffc9032c9a3873b006a824ae934 (diff)
downloadyoutube-dl-3820df0106d6065f50cc1eb90823906410dc9543.tar.gz
youtube-dl-3820df0106d6065f50cc1eb90823906410dc9543.tar.xz
youtube-dl-3820df0106d6065f50cc1eb90823906410dc9543.zip
Merge pull request #801 from expleo/add_referer_support
-rw-r--r--README.md2
-rwxr-xr-xyoutube_dl/InfoExtractors.py5
-rw-r--r--youtube_dl/__init__.py7
3 files changed, 13 insertions, 1 deletions
diff --git a/README.md b/README.md
index 0ab4b660c..d3073e641 100644
--- 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
index 4d145dfa1..3450f0d17 100755
--- 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
index 74375175d..d491402c6 100644
--- 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: