mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	[rh:requests] Add handler for requests HTTP library (#3668)
				
					
				
			Adds support for HTTPS proxies and persistent connections (keep-alive) Closes https://github.com/yt-dlp/yt-dlp/issues/1890 Resolves https://github.com/yt-dlp/yt-dlp/issues/4070 Resolves https://github.com/ytdl-org/youtube-dl/issues/32549 Resolves https://github.com/ytdl-org/youtube-dl/issues/14523 Resolves https://github.com/ytdl-org/youtube-dl/issues/13734 Authored by: coletdjnz, Grub4K, bashonly
This commit is contained in:
		| @@ -11,7 +11,7 @@ import urllib.request | ||||
| 
 | ||||
| from .exceptions import RequestError, UnsupportedRequest | ||||
| from ..dependencies import certifi | ||||
| from ..socks import ProxyType | ||||
| from ..socks import ProxyType, sockssocket | ||||
| from ..utils import format_field, traverse_obj | ||||
| 
 | ||||
| if typing.TYPE_CHECKING: | ||||
| @@ -224,6 +224,24 @@ def _socket_connect(ip_addr, timeout, source_address): | ||||
|         raise | ||||
| 
 | ||||
| 
 | ||||
| def create_socks_proxy_socket(dest_addr, proxy_args, proxy_ip_addr, timeout, source_address): | ||||
|     af, socktype, proto, canonname, sa = proxy_ip_addr | ||||
|     sock = sockssocket(af, socktype, proto) | ||||
|     try: | ||||
|         connect_proxy_args = proxy_args.copy() | ||||
|         connect_proxy_args.update({'addr': sa[0], 'port': sa[1]}) | ||||
|         sock.setproxy(**connect_proxy_args) | ||||
|         if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:  # noqa: E721 | ||||
|             sock.settimeout(timeout) | ||||
|         if source_address: | ||||
|             sock.bind(source_address) | ||||
|         sock.connect(dest_addr) | ||||
|         return sock | ||||
|     except socket.error: | ||||
|         sock.close() | ||||
|         raise | ||||
| 
 | ||||
| 
 | ||||
| def create_connection( | ||||
|     address, | ||||
|     timeout=socket._GLOBAL_DEFAULT_TIMEOUT, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 coletdjnz
					coletdjnz