aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--yt_dlp/utils.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/yt_dlp/utils.py b/yt_dlp/utils.py
index 461f64db0..40d956808 100644
--- a/yt_dlp/utils.py
+++ b/yt_dlp/utils.py
@@ -2921,7 +2921,15 @@ class YoutubeDLCookieProcessor(compat_urllib_request.HTTPCookieProcessor):
# response.headers[set_cookie_header] = set_cookie_escaped
return compat_urllib_request.HTTPCookieProcessor.http_response(self, request, response)
- https_request = compat_urllib_request.HTTPCookieProcessor.http_request
+ def http_request(self, request):
+ # If the URL contains non-ASCII characters, the cookies
+ # are lost before the request reaches YoutubeDLHandler.
+ # So we percent encode the url before adding cookies
+ # See: https://github.com/yt-dlp/yt-dlp/issues/263
+ request = update_Request(request, url=escape_url(request.get_full_url()))
+ return compat_urllib_request.HTTPCookieProcessor.http_request(self, request)
+
+ https_request = http_request
https_response = http_response