aboutsummaryrefslogtreecommitdiff
path: root/yt_dlp/networking/_curlcffi.py
diff options
context:
space:
mode:
authorbashonly <88596187+bashonly@users.noreply.github.com>2024-05-04 17:19:42 -0500
committerGitHub <noreply@github.com>2024-05-04 22:19:42 +0000
commitbec9a59e8ec82c18e3bf9268eaa436793dd52e35 (patch)
tree181c9801cd2ae5edda75c59cde2ab9d86d89312b /yt_dlp/networking/_curlcffi.py
parent036e0d92c6052465673d459678322ea03e61483d (diff)
[networking] Add `extensions` attribute to `Response` (#9756)
CurlCFFIRH now provides an `impersonate` field in its responses' extensions Authored by: bashonly
Diffstat (limited to 'yt_dlp/networking/_curlcffi.py')
-rw-r--r--yt_dlp/networking/_curlcffi.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/yt_dlp/networking/_curlcffi.py b/yt_dlp/networking/_curlcffi.py
index 39d1f70fb..10751a105 100644
--- a/yt_dlp/networking/_curlcffi.py
+++ b/yt_dlp/networking/_curlcffi.py
@@ -132,6 +132,16 @@ class CurlCFFIRH(ImpersonateRequestHandler, InstanceStoreMixin):
extensions.pop('cookiejar', None)
extensions.pop('timeout', None)
+ def send(self, request: Request) -> Response:
+ target = self._get_request_target(request)
+ try:
+ response = super().send(request)
+ except HTTPError as e:
+ e.response.extensions['impersonate'] = target
+ raise
+ response.extensions['impersonate'] = target
+ return response
+
def _send(self, request: Request):
max_redirects_exceeded = False
session: curl_cffi.requests.Session = self._get_instance(