[ie/youtube] Detect experiment binding GVS PO Token to video id (#14471)

Fixes https://github.com/yt-dlp/yt-dlp/issues/14421

Authored by: coletdjnz
This commit is contained in:
coletdjnz
2025-09-29 16:25:09 +13:00
committed by GitHub
parent 88e2a2de8e
commit bd5ed90419
4 changed files with 28 additions and 2 deletions

View File

@@ -58,6 +58,8 @@ class PoTokenRequest:
visitor_data: str | None = None
data_sync_id: str | None = None
video_id: str | None = None
# Internal, YouTube experiment on whether to bind GVS PO Token to video_id.
_gvs_bind_to_video_id: bool = False
# Networking parameters
request_cookiejar: YoutubeDLCookieJar = dataclasses.field(default_factory=YoutubeDLCookieJar)

View File

@@ -42,6 +42,9 @@ def get_webpo_content_binding(
if not client_name or client_name not in webpo_clients:
return None, None
if request.context == PoTokenContext.GVS and request._gvs_bind_to_video_id:
return request.video_id, ContentBindingType.VIDEO_ID
if request.context == PoTokenContext.GVS or client_name in ('WEB_REMIX', ):
if request.is_authenticated:
return request.data_sync_id, ContentBindingType.DATASYNC_ID