mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2025-03-01 08:11:18 +01:00
[ie/youtube] Warn on missing formats due to SSAP (#12483)
See https://github.com/yt-dlp/yt-dlp/issues/12482 Authored by: coletdjnz
This commit is contained in:
parent
3042afb5fe
commit
79ec2fdff7
@ -4266,6 +4266,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
|||||||
} for range_start in range(0, f['filesize'], CHUNK_SIZE))
|
} for range_start in range(0, f['filesize'], CHUNK_SIZE))
|
||||||
|
|
||||||
for fmt in streaming_formats:
|
for fmt in streaming_formats:
|
||||||
|
client_name = fmt[STREAMING_DATA_CLIENT_NAME]
|
||||||
if fmt.get('targetDurationSec'):
|
if fmt.get('targetDurationSec'):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@ -4310,6 +4311,12 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
|||||||
fmt_url = url_or_none(try_get(sc, lambda x: x['url'][0]))
|
fmt_url = url_or_none(try_get(sc, lambda x: x['url'][0]))
|
||||||
encrypted_sig = try_get(sc, lambda x: x['s'][0])
|
encrypted_sig = try_get(sc, lambda x: x['s'][0])
|
||||||
if not all((sc, fmt_url, player_url, encrypted_sig)):
|
if not all((sc, fmt_url, player_url, encrypted_sig)):
|
||||||
|
self.report_warning(
|
||||||
|
f'Some {client_name} client formats have been skipped as they are missing a url. '
|
||||||
|
f'{"Your account" if self.is_authenticated else "The current session"} may have '
|
||||||
|
f'the SSAP (server-side ads) experiment which may be interfering with yt-dlp. '
|
||||||
|
f'Please see https://github.com/yt-dlp/yt-dlp/issues/12482 for more details.',
|
||||||
|
only_once=True)
|
||||||
continue
|
continue
|
||||||
try:
|
try:
|
||||||
fmt_url += '&{}={}'.format(
|
fmt_url += '&{}={}'.format(
|
||||||
@ -4356,7 +4363,6 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
|||||||
self.report_warning(
|
self.report_warning(
|
||||||
f'{video_id}: Some formats are possibly damaged. They will be deprioritized', only_once=True)
|
f'{video_id}: Some formats are possibly damaged. They will be deprioritized', only_once=True)
|
||||||
|
|
||||||
client_name = fmt[STREAMING_DATA_CLIENT_NAME]
|
|
||||||
po_token = fmt.get(STREAMING_DATA_INITIAL_PO_TOKEN)
|
po_token = fmt.get(STREAMING_DATA_INITIAL_PO_TOKEN)
|
||||||
|
|
||||||
if po_token:
|
if po_token:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user