aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpukkandan <pukkandan.ytdlp@gmail.com>2022-06-25 19:41:22 +0530
committerpukkandan <pukkandan.ytdlp@gmail.com>2022-06-25 19:41:22 +0530
commitc043c246251da815c99f8c779194fcdef9ef7a58 (patch)
tree3cb9e0c4357f0e0d979ef3de7dcdb42807dbbaca
parent74900105be772df0d38a5fac48ab339ace63381d (diff)
downloadhypervideo-pre-c043c246251da815c99f8c779194fcdef9ef7a58.tar.lz
hypervideo-pre-c043c246251da815c99f8c779194fcdef9ef7a58.tar.xz
hypervideo-pre-c043c246251da815c99f8c779194fcdef9ef7a58.zip
[extractor] Fix `_create_request` when headers is None
Closes #4164
-rw-r--r--yt_dlp/extractor/common.py10
-rw-r--r--yt_dlp/utils.py4
2 files changed, 7 insertions, 7 deletions
diff --git a/yt_dlp/extractor/common.py b/yt_dlp/extractor/common.py
index aceb1052a..4fbcfe203 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 fd6c20682..46a6c9fce 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()