From 3d85135c023bfc064a2fbcd45f57666f30033599 Mon Sep 17 00:00:00 2001 From: Christian Groschupp Date: Fri, 24 Jan 2025 11:52:38 +0100 Subject: [PATCH] feat: add flag to suppress standard headers --- README.md | 1 + yt_dlp/YoutubeDL.py | 4 +++- yt_dlp/__init__.py | 1 + yt_dlp/options.py | 5 +++++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 56e4458dc1..eb77eaa604 100644 --- a/README.md +++ b/README.md @@ -778,6 +778,7 @@ ## Workarounds: --add-headers FIELD:VALUE Specify a custom HTTP header and its value, separated by a colon ":". You can use this option multiple times + --no-std-headers Suppress standard headers --bidi-workaround Work around terminals that lack bidirectional text support. Requires bidiv or fribidi executable in PATH diff --git a/yt_dlp/YoutubeDL.py b/yt_dlp/YoutubeDL.py index f6155dd2e9..7216351ee4 100644 --- a/yt_dlp/YoutubeDL.py +++ b/yt_dlp/YoutubeDL.py @@ -351,6 +351,7 @@ class YoutubeDL: (Only supported by some extractors) enable_file_urls: Enable file:// URLs. This is disabled by default for security reasons. http_headers: A dictionary of custom headers to be used for all requests + no_std_headers: Suppress standard headers proxy: URL of the proxy server to use geo_verification_proxy: URL of the proxy to use for IP address verification on geo-restricted sites. @@ -715,7 +716,8 @@ def process_color_policy(stream): raise self.params['compat_opts'] = set(self.params.get('compat_opts', ())) - self.params['http_headers'] = HTTPHeaderDict(std_headers, self.params.get('http_headers')) + headers = HTTPHeaderDict({}) if self.params.get('no_std_headers') else std_headers + self.params['http_headers'] = HTTPHeaderDict(headers, self.params.get('http_headers')) self._load_cookies(self.params['http_headers'].get('Cookie')) # compat self.params['http_headers'].pop('Cookie', None) diff --git a/yt_dlp/__init__.py b/yt_dlp/__init__.py index c76fe27483..e2c29ec70b 100644 --- a/yt_dlp/__init__.py +++ b/yt_dlp/__init__.py @@ -914,6 +914,7 @@ def parse_options(argv=None): 'prefer_insecure': opts.prefer_insecure, 'enable_file_urls': opts.enable_file_urls, 'http_headers': opts.headers, + 'no_std_headers': opts.no_std_headers, 'proxy': opts.proxy, 'socket_timeout': opts.socket_timeout, 'bidi_workaround': opts.bidi_workaround, diff --git a/yt_dlp/options.py b/yt_dlp/options.py index 06b65e0eac..2af019fde2 100644 --- a/yt_dlp/options.py +++ b/yt_dlp/options.py @@ -1115,6 +1115,11 @@ def _alias_callback(option, opt_str, value, parser, opts, nargs): callback_kwargs={'multiple_keys': False}, help='Specify a custom HTTP header and its value, separated by a colon ":". You can use this option multiple times', ) + workarounds.add_option( + '--no-std-headers', + action='store_true', dest='no_std_headers', default=False, + help='Suppress standard headers', + ) workarounds.add_option( '--bidi-workaround', dest='bidi_workaround', action='store_true',