aboutsummaryrefslogtreecommitdiff
path: root/yt_dlp/extractor/litv.py
diff options
context:
space:
mode:
authorbashonly <88596187+bashonly@users.noreply.github.com>2023-12-24 10:33:16 -0600
committerGitHub <noreply@github.com>2023-12-24 16:33:16 +0000
commitf45c4efcd928a173e1300a8f1ce4258e70c969b1 (patch)
treece473c3d9d7ab22822ce6d65139ff4f95251f62d /yt_dlp/extractor/litv.py
parent13b3cb3c2b7169a1e17d6fc62593bf744170521c (diff)
[ie/litv] Fix premium content extraction (#8842)
Closes #8654 Authored by: bashonly
Diffstat (limited to 'yt_dlp/extractor/litv.py')
-rw-r--r--yt_dlp/extractor/litv.py22
1 files changed, 16 insertions, 6 deletions
diff --git a/yt_dlp/extractor/litv.py b/yt_dlp/extractor/litv.py
index 2c7c7175e..1003fb2fd 100644
--- a/yt_dlp/extractor/litv.py
+++ b/yt_dlp/extractor/litv.py
@@ -6,6 +6,7 @@ from ..utils import (
int_or_none,
smuggle_url,
traverse_obj,
+ try_call,
unsmuggle_url,
)
@@ -96,13 +97,22 @@ class LiTVIE(InfoExtractor):
r'uiHlsUrl\s*=\s*testBackendData\(([^;]+)\);',
webpage, 'video data', default='{}'), video_id)
if not video_data:
- payload = {
- 'assetId': program_info['assetId'],
- 'watchDevices': program_info['watchDevices'],
- 'contentType': program_info['contentType'],
- }
+ payload = {'assetId': program_info['assetId']}
+ puid = try_call(lambda: self._get_cookies('https://www.litv.tv/')['PUID'].value)
+ if puid:
+ payload.update({
+ 'type': 'auth',
+ 'puid': puid,
+ })
+ endpoint = 'getUrl'
+ else:
+ payload.update({
+ 'watchDevices': program_info['watchDevices'],
+ 'contentType': program_info['contentType'],
+ })
+ endpoint = 'getMainUrlNoAuth'
video_data = self._download_json(
- 'https://www.litv.tv/vod/ajax/getMainUrlNoAuth', video_id,
+ f'https://www.litv.tv/vod/ajax/{endpoint}', video_id,
data=json.dumps(payload).encode('utf-8'),
headers={'Content-Type': 'application/json'})