aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbashonly <88596187+bashonly@users.noreply.github.com>2025-04-24 14:10:34 -0500
committerGitHub <noreply@github.com>2025-04-24 19:10:34 +0000
commite7e3b7a55c456da4a5a812b4fefce4dce8e6a616 (patch)
treeeb452908f813152a19086d26e6c63c6430681e57
parentdce82346245e35a46fda836ca2089805d2347935 (diff)
[ie/dacast] Support tokenized URLs (#12979)
Authored by: bashonly
-rw-r--r--yt_dlp/extractor/dacast.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/yt_dlp/extractor/dacast.py b/yt_dlp/extractor/dacast.py
index 537352e5f..ffc7ca824 100644
--- a/yt_dlp/extractor/dacast.py
+++ b/yt_dlp/extractor/dacast.py
@@ -9,6 +9,7 @@ from ..utils import (
ExtractorError,
classproperty,
float_or_none,
+ parse_qs,
traverse_obj,
url_or_none,
)
@@ -91,11 +92,15 @@ class DacastVODIE(DacastBaseIE):
# Rotates every so often, but hardcode a fallback in case of JS change/breakage before rotation
return self._search_regex(
r'\bUSP_SIGNING_SECRET\s*=\s*(["\'])(?P<secret>(?:(?!\1).)+)', player_js,
- 'usp signing secret', group='secret', fatal=False) or 'odnInCGqhvtyRTtIiddxtuRtawYYICZP'
+ 'usp signing secret', group='secret', fatal=False) or 'hGDtqMKYVeFdofrAfFmBcrsakaZELajI'
def _real_extract(self, url):
user_id, video_id = self._match_valid_url(url).group('user_id', 'id')
- query = {'contentId': f'{user_id}-vod-{video_id}', 'provider': 'universe'}
+ query = {
+ 'contentId': f'{user_id}-vod-{video_id}',
+ 'provider': 'universe',
+ **traverse_obj(url, ({parse_qs}, 'uss_token', {'signedKey': -1})),
+ }
info = self._download_json(self._API_INFO_URL, video_id, query=query, fatal=False)
access = self._download_json(
'https://playback.dacast.com/content/access', video_id,