|
|
|
@ -3291,11 +3291,9 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
|
|
|
|
f'{video_id}: {client_name} client {proto} formats require a GVS PO Token which was not provided. '
|
|
|
|
|
'They will be skipped as they may yield HTTP Error 403. '
|
|
|
|
|
f'You can manually pass a GVS PO Token for this client with --extractor-args "youtube:po_token={client_name}.gvs+XXX". '
|
|
|
|
|
f'For more information, refer to {PO_TOKEN_GUIDE_URL} . '
|
|
|
|
|
'To enable these broken formats anyway, pass --extractor-args "youtube:formats=missing_pot"')
|
|
|
|
|
f'For more information, refer to {PO_TOKEN_GUIDE_URL} . ')
|
|
|
|
|
|
|
|
|
|
# Only raise a warning for non-default clients, to not confuse users.
|
|
|
|
|
# iOS HLS formats still work without PO Token, so we don't need to warn about them.
|
|
|
|
|
if client_name in (*self._DEFAULT_CLIENTS, *self._DEFAULT_AUTHED_CLIENTS):
|
|
|
|
|
self.write_debug(msg, only_once=True)
|
|
|
|
|
else:
|
|
|
|
@ -3584,11 +3582,6 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
|
|
|
|
f['format_note'] = join_nonempty(f.get('format_note'), 'MISSING POT', delim=' ')
|
|
|
|
|
f['source_preference'] -= 20
|
|
|
|
|
|
|
|
|
|
# XXX: Check if IOS HLS formats are affected by PO token enforcement; temporary
|
|
|
|
|
# See https://github.com/yt-dlp/yt-dlp/issues/13511
|
|
|
|
|
if proto == 'hls' and client_name == 'ios':
|
|
|
|
|
f['__needs_testing'] = True
|
|
|
|
|
|
|
|
|
|
itags[itag].add(key)
|
|
|
|
|
|
|
|
|
|
if itag and all_formats:
|
|
|
|
|