[rh:requests] Apply remove_dot_segments to absolute redirect locations

Fixes https://github.com/yt-dlp/yt-dlp/issues/9020

Authored by: coletdjnz
This commit is contained in:
coletdjnz
2024-01-21 10:03:33 +13:00
committed by GitHub
parent f24e44e8cb
commit 35f4f764a7
2 changed files with 21 additions and 9 deletions

View File

@@ -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