Compare commits

...

3 Commits

Author SHA1 Message Date
bashonly
50e452fd7d [ie/twitch:vod] Fix live_status detection (#14457)
Closes #14455
Authored by: bashonly
2025-09-26 18:27:17 +00:00
sepro
94c5622be9 [ie/youtube] Player client maintenance (#14448)
Authored by: seproDev
2025-09-26 18:13:20 +00:00
sepro
7df5acc546 [ie/youtube] Improve PO token logging (#14447)
Authored by: seproDev
2025-09-26 18:12:16 +00:00
3 changed files with 15 additions and 12 deletions

View File

@@ -514,7 +514,10 @@ class TwitchVodIE(TwitchBaseIE):
is_live = None
if thumbnail:
if re.findall(r'/404_processing_[^.?#]+\.png', thumbnail):
is_live, thumbnail = True, None
# False positive for is_live if info.get('broadcastType') == 'HIGHLIGHT'
# See https://github.com/yt-dlp/yt-dlp/issues/14455
is_live = info.get('broadcastType') == 'ARCHIVE'
thumbnail = None
else:
is_live = False

View File

@@ -99,7 +99,7 @@ INNERTUBE_CLIENTS = {
'INNERTUBE_CONTEXT': {
'client': {
'clientName': 'WEB',
'clientVersion': '2.20250312.04.00',
'clientVersion': '2.20250925.01.00',
},
},
'INNERTUBE_CONTEXT_CLIENT_NAME': 1,
@@ -111,7 +111,7 @@ INNERTUBE_CLIENTS = {
'INNERTUBE_CONTEXT': {
'client': {
'clientName': 'WEB',
'clientVersion': '2.20250312.04.00',
'clientVersion': '2.20250925.01.00',
'userAgent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15,gzip(gfe)',
},
},
@@ -123,7 +123,7 @@ INNERTUBE_CLIENTS = {
'INNERTUBE_CONTEXT': {
'client': {
'clientName': 'WEB_EMBEDDED_PLAYER',
'clientVersion': '1.20250310.01.00',
'clientVersion': '1.20250923.21.00',
},
},
'INNERTUBE_CONTEXT_CLIENT_NAME': 56,
@@ -134,7 +134,7 @@ INNERTUBE_CLIENTS = {
'INNERTUBE_CONTEXT': {
'client': {
'clientName': 'WEB_REMIX',
'clientVersion': '1.20250310.01.00',
'clientVersion': '1.20250922.03.00',
},
},
'INNERTUBE_CONTEXT_CLIENT_NAME': 67,
@@ -163,7 +163,7 @@ INNERTUBE_CLIENTS = {
'INNERTUBE_CONTEXT': {
'client': {
'clientName': 'WEB_CREATOR',
'clientVersion': '1.20250312.03.01',
'clientVersion': '1.20250922.03.00',
},
},
'INNERTUBE_CONTEXT_CLIENT_NAME': 62,
@@ -225,11 +225,11 @@ INNERTUBE_CLIENTS = {
'INNERTUBE_CONTEXT': {
'client': {
'clientName': 'ANDROID_VR',
'clientVersion': '1.62.27',
'clientVersion': '1.65.10',
'deviceMake': 'Oculus',
'deviceModel': 'Quest 3',
'androidSdkVersion': 32,
'userAgent': 'com.google.android.apps.youtube.vr.oculus/1.62.27 (Linux; U; Android 12L; eureka-user Build/SQ3A.220605.009.A1) gzip',
'userAgent': 'com.google.android.apps.youtube.vr.oculus/1.65.10 (Linux; U; Android 12L; eureka-user Build/SQ3A.220605.009.A1) gzip',
'osName': 'Android',
'osVersion': '12L',
},
@@ -274,7 +274,7 @@ INNERTUBE_CLIENTS = {
'INNERTUBE_CONTEXT': {
'client': {
'clientName': 'MWEB',
'clientVersion': '2.20250311.03.00',
'clientVersion': '2.20250925.01.00',
# mweb previously did not require PO Token with this UA
'userAgent': 'Mozilla/5.0 (iPad; CPU OS 16_7_10 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1,gzip(gfe)',
},
@@ -304,7 +304,7 @@ INNERTUBE_CLIENTS = {
'INNERTUBE_CONTEXT': {
'client': {
'clientName': 'TVHTML5',
'clientVersion': '7.20250312.16.00',
'clientVersion': '7.20250923.13.00',
'userAgent': 'Mozilla/5.0 (ChromiumStylePlatform) Cobalt/Version',
},
},

View File

@@ -2920,7 +2920,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
if player_url and context == _PoTokenContext.GVS and not visitor_data and not self.is_authenticated:
self.report_warning(
f'Unable to fetch GVS PO Token for {client} client: Missing required Visitor Data. '
f'You may need to pass Visitor Data with --extractor-args "youtube:visitor_data=XXX"')
f'You may need to pass Visitor Data with --extractor-args "youtube:visitor_data=XXX"', only_once=True)
return
if context == _PoTokenContext.PLAYER and not video_id:
@@ -2943,7 +2943,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
if player_url and context == _PoTokenContext.GVS and not data_sync_id and self.is_authenticated:
self.report_warning(
f'Unable to fetch GVS PO Token for {client} client: Missing required Data Sync ID for account. '
f'You may need to pass a Data Sync ID with --extractor-args "youtube:data_sync_id=XXX"')
f'You may need to pass a Data Sync ID with --extractor-args "youtube:data_sync_id=XXX"', only_once=True)
return
po_token = self._fetch_po_token(