From 34d249d55b85515d4318a57b9c58e884991da602 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 14 Nov 2023 22:15:22 +0000 Subject: [PATCH] yt_dlp: 5d3a3cd4934853126a5d6b721dbec6946c9cd8ce --- lib/yt_dlp/extractor/generic.py | 11 ++++++----- lib/yt_dlp/networking/_requests.py | 3 ++- lib/yt_dlp/utils/networking.py | 1 + lib/yt_dlp/version.py | 6 +++--- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/lib/yt_dlp/extractor/generic.py b/lib/yt_dlp/extractor/generic.py index ac7cc67..1503e51 100644 --- a/lib/yt_dlp/extractor/generic.py +++ b/lib/yt_dlp/extractor/generic.py @@ -17,6 +17,7 @@ determine_protocol, dict_get, extract_basic_auth, + filter_dict, format_field, int_or_none, is_html, @@ -2435,10 +2436,10 @@ def _real_extract(self, url): # to accept raw bytes and being able to download only a chunk. # It may probably better to solve this by checking Content-Type for application/octet-stream # after a HEAD request, but not sure if we can rely on this. - full_response = self._request_webpage(url, video_id, headers={ + full_response = self._request_webpage(url, video_id, headers=filter_dict({ 'Accept-Encoding': 'identity', - **smuggled_data.get('http_headers', {}) - }) + 'Referer': smuggled_data.get('referer'), + })) new_url = full_response.url url = urllib.parse.urlparse(url)._replace(scheme=urllib.parse.urlparse(new_url).scheme).geturl() if new_url != extract_basic_auth(url)[0]: @@ -2458,7 +2459,7 @@ def _real_extract(self, url): m = re.match(r'^(?Paudio|video|application(?=/(?:ogg$|(?:vnd\.apple\.|x-)?mpegurl)))/(?P[^;\s]+)', content_type) if m: self.report_detected('direct video link') - headers = smuggled_data.get('http_headers', {}) + headers = filter_dict({'Referer': smuggled_data.get('referer')}) format_id = str(m.group('format_id')) ext = determine_ext(url, default_ext=None) or urlhandle_detect_ext(full_response) subtitles = {} @@ -2710,7 +2711,7 @@ def _extract_embeds(self, url, webpage, *, urlh=None, info_dict={}): 'url': smuggle_url(json_ld['url'], { 'force_videoid': video_id, 'to_generic': True, - 'http_headers': {'Referer': url}, + 'referer': url, }), }, json_ld)] diff --git a/lib/yt_dlp/networking/_requests.py b/lib/yt_dlp/networking/_requests.py index fe3f60b..9fb1d75 100644 --- a/lib/yt_dlp/networking/_requests.py +++ b/lib/yt_dlp/networking/_requests.py @@ -255,7 +255,8 @@ def __init__(self, *args, **kwargs): handler.setFormatter(logging.Formatter('requests: %(message)s')) handler.addFilter(Urllib3LoggingFilter()) logger.addHandler(handler) - logger.setLevel(logging.WARNING) + # TODO: Use a logger filter to suppress pool reuse warning instead + logger.setLevel(logging.ERROR) if self.verbose: # Setting this globally is not ideal, but is easier than hacking with urllib3. diff --git a/lib/yt_dlp/utils/networking.py b/lib/yt_dlp/utils/networking.py index ba0493c..ed02500 100644 --- a/lib/yt_dlp/utils/networking.py +++ b/lib/yt_dlp/utils/networking.py @@ -123,6 +123,7 @@ def clean_headers(headers: HTTPHeaderDict): if 'Youtubedl-No-Compression' in headers: # compat del headers['Youtubedl-No-Compression'] headers['Accept-Encoding'] = 'identity' + headers.pop('Ytdl-socks-proxy', None) def remove_dot_segments(path): diff --git a/lib/yt_dlp/version.py b/lib/yt_dlp/version.py index a4b4d41..6fd8e59 100644 --- a/lib/yt_dlp/version.py +++ b/lib/yt_dlp/version.py @@ -1,8 +1,8 @@ # Autogenerated by devscripts/update-version.py -__version__ = '2023.10.13' +__version__ = '2023.11.14' -RELEASE_GIT_HEAD = 'b634ba742d8f38ce9ecfa0546485728b0c6c59d1' +RELEASE_GIT_HEAD = 'a9d3f4b20a3533d2a40104c85bc2cc6c2564c800' VARIANT = None @@ -12,4 +12,4 @@ ORIGIN = 'yt-dlp/yt-dlp' -_pkg_version = '2023.10.13' +_pkg_version = '2023.11.14'