summary refs log tree commit diff
diff options
context:
space:
mode:
authorAnisse Astier <anisse@astier.eu>2014-03-11 16:34:05 +0100
committerAnisse Astier <anisse@astier.eu>2014-03-17 16:40:41 +0100
commit410afb2003f48df92720da7d4ea37560692138a4 (patch)
treeff10516c410adf9635dc983033f14f36a85d8f8a
parent9d840c43b535be0e70f7f9a35bf5787ffdb7ecf6 (diff)
downloadyoutube-dl-410afb2003f48df92720da7d4ea37560692138a4.tar.gz
youtube-dl-410afb2003f48df92720da7d4ea37560692138a4.tar.xz
youtube-dl-410afb2003f48df92720da7d4ea37560692138a4.zip
Add an option to specify custom HTTP headers
-rw-r--r--youtube_dl/__init__.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py
index 0e9504c14..470acf3ef 100644
--- a/youtube_dl/__init__.py
+++ b/youtube_dl/__init__.py
@@ -227,6 +227,9 @@ def parseOpts(overrideArguments=None):
     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('--add-header',
+            dest='headers', help='specify a custom HTTP header and its value, separated by a colon \':\'. You can use this option multiple times', action="append",
+            metavar='FIELD:VALUE')
     general.add_option('--list-extractors',
             action='store_true', dest='list_extractors',
             help='List all supported extractors and the URLs they would handle', default=False)
@@ -554,6 +557,16 @@ def _real_main(argv=None):
     if opts.referer is not None:
         std_headers['Referer'] = opts.referer
 
+    # Custom HTTP headers
+    if opts.headers is not None:
+        for h in opts.headers:
+            if h.find(':', 1) < 0:
+                parser.error(u'wrong header formatting, it should be key:value, not "%s"'%h)
+            key, value = h.split(':', 2)
+            if opts.verbose:
+                write_string(u'[debug] Adding header from command line option %s:%s\n'%(key, value))
+            std_headers[key] = value
+
     # Dump user agent
     if opts.dump_user_agent:
         compat_print(std_headers['User-Agent'])