mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 06:35:12 +00:00 
			
		
		
		
	[ie/youtube] Add a PO Token Provider Framework (#12840)
https://github.com/yt-dlp/yt-dlp/tree/master/yt_dlp/extractor/youtube/pot/README.md Authored by: coletdjnz
This commit is contained in:
		| @@ -10,7 +10,8 @@ import urllib.request | ||||
| if typing.TYPE_CHECKING: | ||||
|     T = typing.TypeVar('T') | ||||
| 
 | ||||
| from ._utils import NO_DEFAULT, remove_start | ||||
| from ._utils import NO_DEFAULT, remove_start, format_field | ||||
| from .traversal import traverse_obj | ||||
| 
 | ||||
| 
 | ||||
| def random_user_agent(): | ||||
| @@ -278,3 +279,16 @@ def normalize_url(url): | ||||
|         query=escape_rfc3986(url_parsed.query), | ||||
|         fragment=escape_rfc3986(url_parsed.fragment), | ||||
|     ).geturl() | ||||
| 
 | ||||
| 
 | ||||
| def select_proxy(url, proxies): | ||||
|     """Unified proxy selector for all backends""" | ||||
|     url_components = urllib.parse.urlparse(url) | ||||
|     if 'no' in proxies: | ||||
|         hostport = url_components.hostname + format_field(url_components.port, None, ':%s') | ||||
|         if urllib.request.proxy_bypass_environment(hostport, {'no': proxies['no']}): | ||||
|             return | ||||
|         elif urllib.request.proxy_bypass(hostport):  # check system settings | ||||
|             return | ||||
| 
 | ||||
|     return traverse_obj(proxies, url_components.scheme or 'http', 'all') | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 coletdjnz
					coletdjnz