From c043c246251da815c99f8c779194fcdef9ef7a58 Mon Sep 17 00:00:00 2001 From: pukkandan Date: Sat, 25 Jun 2022 19:41:22 +0530 Subject: [PATCH] [extractor] Fix `_create_request` when headers is None Closes #4164 --- yt_dlp/extractor/common.py | 10 +++++----- yt_dlp/utils.py | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/yt_dlp/extractor/common.py b/yt_dlp/extractor/common.py index aceb1052ad..4fbcfe2039 100644 --- a/yt_dlp/extractor/common.py +++ b/yt_dlp/extractor/common.py @@ -730,14 +730,14 @@ class InfoExtractor: else: return err.code in variadic(expected_status) - def _create_request(self, url_or_request, data=None, headers={}, query={}): + def _create_request(self, url_or_request, data=None, headers=None, query=None): if isinstance(url_or_request, urllib.request.Request): return update_Request(url_or_request, data=data, headers=headers, query=query) if query: url_or_request = update_url_query(url_or_request, query) - return sanitized_Request(url_or_request, data, headers) + return sanitized_Request(url_or_request, data, headers or {}) - def _request_webpage(self, url_or_request, video_id, note=None, errnote=None, fatal=True, data=None, headers={}, query={}, expected_status=None): + def _request_webpage(self, url_or_request, video_id, note=None, errnote=None, fatal=True, data=None, headers=None, query=None, expected_status=None): """ Return the response handle. @@ -765,8 +765,8 @@ class InfoExtractor: # geo unrestricted country. We will do so once we encounter any # geo restriction error. if self._x_forwarded_for_ip: - if 'X-Forwarded-For' not in headers: - headers['X-Forwarded-For'] = self._x_forwarded_for_ip + headers = (headers or {}).copy() + headers.setdefault('X-Forwarded-For', self._x_forwarded_for_ip) try: return self._downloader.urlopen(self._create_request(url_or_request, data, headers, query)) diff --git a/yt_dlp/utils.py b/yt_dlp/utils.py index fd6c206823..46a6c9fce8 100644 --- a/yt_dlp/utils.py +++ b/yt_dlp/utils.py @@ -3015,9 +3015,9 @@ def update_url_query(url, query): query=urllib.parse.urlencode(qs, True))) -def update_Request(req, url=None, data=None, headers={}, query={}): +def update_Request(req, url=None, data=None, headers=None, query=None): req_headers = req.headers.copy() - req_headers.update(headers) + req_headers.update(headers or {}) req_data = data or req.data req_url = update_url_query(url or req.get_full_url(), query) req_get_method = req.get_method()