aboutsummaryrefslogtreecommitdiff
path: root/yt_dlp/networking/_requests.py
diff options
context:
space:
mode:
authorcoletdjnz <coletdjnz@protonmail.com>2024-01-21 10:03:33 +1300
committerGitHub <noreply@github.com>2024-01-21 10:03:33 +1300
commit35f4f764a786685ea45d84abe1cf1ad3847f4c97 (patch)
treecffb9c438ec2d277da43ff0a5aba9274085b5282 /yt_dlp/networking/_requests.py
parentf24e44e8cbd88ce338d52f594a19330f64d38b50 (diff)
[rh:requests] Apply `remove_dot_segments` to absolute redirect locations
Fixes https://github.com/yt-dlp/yt-dlp/issues/9020 Authored by: coletdjnz
Diffstat (limited to 'yt_dlp/networking/_requests.py')
-rw-r--r--yt_dlp/networking/_requests.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/yt_dlp/networking/_requests.py b/yt_dlp/networking/_requests.py
index e129110ca..00e4bdb49 100644
--- a/yt_dlp/networking/_requests.py
+++ b/yt_dlp/networking/_requests.py
@@ -8,6 +8,7 @@ import warnings
from ..dependencies import brotli, requests, urllib3
from ..utils import bug_reports_message, int_or_none, variadic
+from ..utils.networking import normalize_url
if requests is None:
raise ImportError('requests module is not installed')
@@ -199,6 +200,10 @@ class RequestsSession(requests.sessions.Session):
prepared_request.method = new_method
+ # Requests fails to resolve dot segments on absolute redirect locations
+ # See: https://github.com/yt-dlp/yt-dlp/issues/9020
+ prepared_request.url = normalize_url(prepared_request.url)
+
def rebuild_auth(self, prepared_request, response):
# HACK: undo status code change from rebuild_method, if applicable.
# rebuild_auth runs after requests would remove headers/body based on status code