diff options
| -rw-r--r-- | youtube_dl/extractor/youtube.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index ce23b39bb..3d89d5319 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -90,6 +90,21 @@ class YoutubeBaseInfoExtractor(InfoExtractor): # priority order for now _INNERTUBE_CLIENTS = o_dict(( + # Doesn't require a PoToken for some reason: thx yt-dlp/yt-dlp#14693 + ('android_sdkless', { + 'INNERTUBE_CONTEXT': { + 'client': { + 'clientName': 'ANDROID', + 'clientVersion': '20.10.38', + 'userAgent': 'com.google.android.youtube/20.10.38 (Linux; U; Android 11) gzip', + 'osName': 'Android', + 'osVersion': '11', + }, + }, + 'INNERTUBE_CONTEXT_CLIENT_NAME': 3, + 'REQUIRE_JS_PLAYER': False, + 'WITH_COOKIES': False, + }), ('ios', { 'INNERTUBE_CONTEXT': { 'client': { @@ -120,6 +135,16 @@ class YoutubeBaseInfoExtractor(InfoExtractor): }, 'INNERTUBE_CONTEXT_CLIENT_NAME': 2, 'REQUIRE_PO_TOKEN': True, + }), + ('tv_downgraded', { + 'INNERTUBE_CONTEXT': { + 'client': { + 'clientName': 'TVHTML5', + 'clientVersion': '4', # avoids SABR formats, thx yt-dlp/yt-dlp#14887 + 'userAgent': 'Mozilla/5.0 (ChromiumStylePlatform) Cobalt/Version', + }, + }, + 'INNERTUBE_CONTEXT_CLIENT_NAME': 7, 'SUPPORTS_COOKIES': True, }), ('tv', { @@ -168,6 +193,19 @@ class YoutubeBaseInfoExtractor(InfoExtractor): 'SUPPORTS_COOKIES': True, 'REQUIRE_PO': True, }), + # This client now requires sign-in for every video + ('web_creator', { + 'INNERTUBE_CONTEXT': { + 'client': { + 'clientName': 'WEB_CREATOR', + 'clientVersion': '1.20250922.03.00', + }, + }, + 'INNERTUBE_CONTEXT_CLIENT_NAME': 62, + 'REQUIRE_AUTH': True, + 'SUPPORTS_COOKIES': True, + 'WITH_COOKIES': True, + }), )) def _login(self): |
