mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2025-08-15 00:48:28 +00:00
Merge f785cf07b9
into 1e0c77ddcc
This commit is contained in:
commit
d82c3a6e48
@ -285,7 +285,16 @@ def _get_cookiejar(self, request):
|
|||||||
return self.cookiejar if cookiejar is None else cookiejar
|
return self.cookiejar if cookiejar is None else cookiejar
|
||||||
|
|
||||||
def _get_proxies(self, request):
|
def _get_proxies(self, request):
|
||||||
return (request.proxies or self.proxies).copy()
|
if request.proxies:
|
||||||
|
return request.proxies.copy()
|
||||||
|
|
||||||
|
proxies = dict()
|
||||||
|
for proxy_key, proxy_url in self.proxies.items():
|
||||||
|
# Proxy url can be a callable
|
||||||
|
if isinstance(proxy_url, typing.Callable):
|
||||||
|
proxy_url = proxy_url()
|
||||||
|
proxies[proxy_key] = proxy_url
|
||||||
|
return proxies
|
||||||
|
|
||||||
def _check_url_scheme(self, request: Request):
|
def _check_url_scheme(self, request: Request):
|
||||||
scheme = urllib.parse.urlparse(request.url).scheme.lower()
|
scheme = urllib.parse.urlparse(request.url).scheme.lower()
|
||||||
@ -318,6 +327,8 @@ def _check_proxies(self, proxies):
|
|||||||
# Skip proxy scheme checks
|
# Skip proxy scheme checks
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
if isinstance(proxy_url, typing.Callable):
|
||||||
|
proxy_url = proxy_url()
|
||||||
try:
|
try:
|
||||||
if urllib.request._parse_proxy(proxy_url)[0] is None:
|
if urllib.request._parse_proxy(proxy_url)[0] is None:
|
||||||
# Scheme-less proxies are not supported
|
# Scheme-less proxies are not supported
|
||||||
|
@ -178,6 +178,8 @@ def clean_proxies(proxies: dict, headers: HTTPHeaderDict):
|
|||||||
if proxy_key == 'no': # special case
|
if proxy_key == 'no': # special case
|
||||||
continue
|
continue
|
||||||
if proxy_url is not None:
|
if proxy_url is not None:
|
||||||
|
if isinstance(proxy_url, typing.Callable):
|
||||||
|
proxy_url = proxy_url()
|
||||||
# Ensure proxies without a scheme are http.
|
# Ensure proxies without a scheme are http.
|
||||||
try:
|
try:
|
||||||
proxy_scheme = urllib.request._parse_proxy(proxy_url)[0]
|
proxy_scheme = urllib.request._parse_proxy(proxy_url)[0]
|
||||||
|
Loading…
Reference in New Issue
Block a user