diff options
author | bashonly <88596187+bashonly@users.noreply.github.com> | 2025-04-24 14:10:34 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-24 19:10:34 +0000 |
commit | e7e3b7a55c456da4a5a812b4fefce4dce8e6a616 (patch) | |
tree | eb452908f813152a19086d26e6c63c6430681e57 | |
parent | dce82346245e35a46fda836ca2089805d2347935 (diff) |
[ie/dacast] Support tokenized URLs (#12979)
Authored by: bashonly
-rw-r--r-- | yt_dlp/extractor/dacast.py | 9 |
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, |