|
@ -61,6 +61,13 @@ from .socks import ( |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def register_socks_protocols(): |
|
|
|
|
|
# "Register" SOCKS protocols |
|
|
|
|
|
for scheme in ('socks', 'socks4', 'socks4a', 'socks5'): |
|
|
|
|
|
if scheme not in compat_urlparse.uses_netloc: |
|
|
|
|
|
compat_urlparse.uses_netloc.append(scheme) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# This is not clearly defined otherwise |
|
|
# This is not clearly defined otherwise |
|
|
compiled_regex_type = type(re.compile('')) |
|
|
compiled_regex_type = type(re.compile('')) |
|
|
|
|
|
|
|
@ -870,6 +877,8 @@ def make_socks_conn_class(base_class, socks_proxy): |
|
|
socks_type = ProxyType.SOCKS5 |
|
|
socks_type = ProxyType.SOCKS5 |
|
|
elif url_components.scheme.lower() in ('socks', 'socks4'): |
|
|
elif url_components.scheme.lower() in ('socks', 'socks4'): |
|
|
socks_type = ProxyType.SOCKS4 |
|
|
socks_type = ProxyType.SOCKS4 |
|
|
|
|
|
elif url_components.scheme.lower() == 'socks4a': |
|
|
|
|
|
socks_type = ProxyType.SOCKS4A |
|
|
|
|
|
|
|
|
proxy_args = ( |
|
|
proxy_args = ( |
|
|
socks_type, |
|
|
socks_type, |
|
@ -2738,7 +2747,7 @@ class PerRequestProxyHandler(compat_urllib_request.ProxyHandler): |
|
|
|
|
|
|
|
|
if proxy == '__noproxy__': |
|
|
if proxy == '__noproxy__': |
|
|
return None # No Proxy |
|
|
return None # No Proxy |
|
|
if compat_urlparse.urlparse(proxy).scheme.lower() in ('socks', 'socks4', 'socks5'): |
|
|
|
|
|
|
|
|
if compat_urlparse.urlparse(proxy).scheme.lower() in ('socks', 'socks4', 'socks4a', 'socks5'): |
|
|
req.add_header('Ytdl-socks-proxy', proxy) |
|
|
req.add_header('Ytdl-socks-proxy', proxy) |
|
|
# youtube-dl's http/https handlers do wrapping the socket with socks |
|
|
# youtube-dl's http/https handlers do wrapping the socket with socks |
|
|
return None |
|
|
return None |
|
|