1
0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2025-07-17 18:58:35 +00:00

[ie/dlive] Fix extractor

This commit is contained in:
barelyprofessional 2025-07-12 23:27:01 -05:00
parent 3ae61e0f31
commit 7d98de4c0a
No known key found for this signature in database
GPG Key ID: 2EBD83C2271A5C30

View File

@ -8,17 +8,20 @@ class DLiveVODIE(InfoExtractor):
IE_NAME = 'dlive:vod'
_VALID_URL = r'https?://(?:www\.)?dlive\.tv/p/(?P<uploader_id>.+?)\+(?P<id>[^/?#&]+)'
_TESTS = [{
'url': 'https://dlive.tv/p/pdp+3mTzOl4WR',
'url': 'https://dlive.tv/p/planesfan+wDeWRZ8HR',
'info_dict': {
'id': '3mTzOl4WR',
'id': 'wDeWRZ8HR',
'ext': 'mp4',
'title': 'Minecraft with james charles epic',
'upload_date': '20190701',
'timestamp': 1562011015,
'uploader_id': 'pdp',
'title': 'Money\'s in, guys!',
'upload_date': '20250712',
'timestamp': 1752354913,
'uploader_id': 'planesfan',
'description': '',
'thumbnail': 'https://images.prd.dlivecdn.com/thumbnail/34c9c404-5f67-11f0-a812-52ea47803baf',
'view_count': int,
},
}, {
'url': 'https://dlive.tv/p/pdpreplay+D-RD-xSZg',
'url': 'https://dlive.tv/p/planesfan+wDeWRZ8HR',
'only_matching': True,
}]
@ -36,7 +39,7 @@ def _real_extract(self, url):
thumbnailUrl
viewCount
}
}''' % (uploader_id, vod_id)}).encode())['data']['pastBroadcast'] # noqa: UP031
}''' % (uploader_id, vod_id)}).encode(), headers={'content-type': 'application/json'})['data']['pastBroadcast'] # noqa: UP031
title = broadcast['title']
formats = self._extract_m3u8_formats(
broadcast['playbackUrl'], vod_id, 'mp4', 'm3u8_native')
@ -71,13 +74,20 @@ def _real_extract(self, url):
}
username
}
}''' % display_name}).encode())['data']['userByDisplayName'] # noqa: UP031
}''' % display_name}).encode(), headers={'content-type': 'application/json'})['data']['userByDisplayName'] # noqa: UP031
livestream = user['livestream']
title = livestream['title']
username = user['username']
formats = self._extract_m3u8_formats(
f'https://live.prd.dlive.tv/hls/live/{username}.m3u8',
display_name, 'mp4')
for unsigned_format in formats:
signed_url = self._download_webpage(
'https://live.prd.dlive.tv/hls/sign/url', display_name,
data=json.dumps({'playlisturi': unsigned_format['url']}).encode())
unsigned_format['url'] = signed_url
return {
'id': display_name,
'title': title,