diff options
author | bashonly <88596187+bashonly@users.noreply.github.com> | 2024-05-04 17:19:42 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-04 22:19:42 +0000 |
commit | bec9a59e8ec82c18e3bf9268eaa436793dd52e35 (patch) | |
tree | 181c9801cd2ae5edda75c59cde2ab9d86d89312b /yt_dlp/networking/_curlcffi.py | |
parent | 036e0d92c6052465673d459678322ea03e61483d (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.py | 10 |
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( |