1
0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2025-08-15 08:58:28 +00:00

Some code optimizations and add 'duration' key to output dict

This commit is contained in:
Nikolay Fedorov 2025-08-02 00:52:02 +03:00 committed by GitHub
parent 72003004bf
commit 6d01405d9f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -103,18 +103,19 @@ def _real_extract(self, url):
raise ExtractorError(str(e), expected=True) raise ExtractorError(str(e), expected=True)
if json_info.get('status') != 200: if json_info.get('status') != 200:
raise ExtractorError('Json download error. Status code: %s' % str(json_info.get('status')), expected=True) raise ExtractorError('Json download error. Status code: %s' % str(json_info.get('status')), expected=True)
m3u8_url = json_info['data']['playlist']['medialist'][0]['sources']['m3u8'][ media_info = json_info['data']['playlist']['medialist'][0]
'auto'
]
formats, subtitles = self._extract_m3u8_formats_and_subtitles( formats, subtitles = self._extract_m3u8_formats_and_subtitles(
m3u8_url, video_id, 'mp4', m3u8_id='hls', media_info['sources']['m3u8']['auto'], video_id, 'mp4', m3u8_id='hls',
) )
res = {
return {
'id': video_id, 'id': video_id,
'title': json_info['data']['playlist']['medialist'][0]['title'], 'title': media_info['title'],
'thumbnail': json_info['data']['playlist']['medialist'][0]['pictures']['16:9'], 'thumbnail': media_info['pictures']['16:9'],
'formats': formats, 'formats': formats,
'subtitles': subtitles, 'subtitles': subtitles,
'is_live': json_info['data']['playlist']['type'] == 'live', 'is_live': json_info['data']['playlist']['type'] == 'live',
} }
if not res['is_live'] and 'duration' in media_info:
res['duration'] = media_info['duration']
return res