aboutsummaryrefslogtreecommitdiffstats
path: root/yt_dlp/networking/common.py
diff options
context:
space:
mode:
authorcoletdjnz <coletdjnz@protonmail.com>2023-07-28 02:56:02 +1200
committerGitHub <noreply@github.com>2023-07-27 20:26:02 +0530
commitbbeacff7fcaa3b521066088a5ccbf34ef5070d1d (patch)
tree7cb66eb3b93374fe7e2629f94900cb2a183fdd8b /yt_dlp/networking/common.py
parentdae349da97cafe7357106a8f3187fd48a2ad1210 (diff)
downloadhypervideo-pre-bbeacff7fcaa3b521066088a5ccbf34ef5070d1d.tar.lz
hypervideo-pre-bbeacff7fcaa3b521066088a5ccbf34ef5070d1d.tar.xz
hypervideo-pre-bbeacff7fcaa3b521066088a5ccbf34ef5070d1d.zip
[networking] Ignore invalid proxies in env (#7704)
Authored by: coletdjnz
Diffstat (limited to 'yt_dlp/networking/common.py')
-rw-r--r--yt_dlp/networking/common.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/yt_dlp/networking/common.py b/yt_dlp/networking/common.py
index ab26a0628..3164df49b 100644
--- a/yt_dlp/networking/common.py
+++ b/yt_dlp/networking/common.py
@@ -262,9 +262,13 @@ class RequestHandler(abc.ABC):
# Skip proxy scheme checks
continue
- # Scheme-less proxies are not supported
- if urllib.request._parse_proxy(proxy_url)[0] is None:
- raise UnsupportedRequest(f'Proxy "{proxy_url}" missing scheme')
+ try:
+ if urllib.request._parse_proxy(proxy_url)[0] is None:
+ # Scheme-less proxies are not supported
+ raise UnsupportedRequest(f'Proxy "{proxy_url}" missing scheme')
+ except ValueError as e:
+ # parse_proxy may raise on some invalid proxy urls such as "/a/b/c"
+ raise UnsupportedRequest(f'Invalid proxy url "{proxy_url}": {e}')
scheme = urllib.parse.urlparse(proxy_url).scheme.lower()
if scheme not in self._SUPPORTED_PROXY_SCHEMES: