0
0
Fork 0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2024-11-04 23:35:04 +00:00

[vimeo] extract live archive source format(#19144)

This commit is contained in:
Remita Amine 2019-04-21 21:05:58 +01:00
parent c25720ef6a
commit 85b6335d55

View file

@ -110,7 +110,8 @@ def _vimeo_sort_formats(self, formats):
def _parse_config(self, config, video_id): def _parse_config(self, config, video_id):
video_data = config['video'] video_data = config['video']
video_title = video_data['title'] video_title = video_data['title']
is_live = try_get(video_data, lambda x: x['live_event']['status']) == 'started' live_event = video_data.get('live_event') or {}
is_live = live_event.get('status') == 'started'
formats = [] formats = []
config_files = video_data.get('files') or config['request'].get('files', {}) config_files = video_data.get('files') or config['request'].get('files', {})
@ -127,6 +128,7 @@ def _parse_config(self, config, video_id):
'tbr': int_or_none(f.get('bitrate')), 'tbr': int_or_none(f.get('bitrate')),
}) })
# TODO: fix handling of 308 status code returned for live archive manifest requests
for files_type in ('hls', 'dash'): for files_type in ('hls', 'dash'):
for cdn_name, cdn_data in config_files.get(files_type, {}).get('cdns', {}).items(): for cdn_name, cdn_data in config_files.get(files_type, {}).get('cdns', {}).items():
manifest_url = cdn_data.get('url') manifest_url = cdn_data.get('url')
@ -164,6 +166,15 @@ def _parse_config(self, config, video_id):
f['preference'] = -40 f['preference'] = -40
formats.extend(mpd_formats) formats.extend(mpd_formats)
live_archive = live_event.get('archive') or {}
live_archive_source_url = live_archive.get('source_url')
if live_archive_source_url and live_archive.get('status') == 'done':
formats.append({
'format_id': 'live-archive-source',
'url': live_archive_source_url,
'preference': 1,
})
subtitles = {} subtitles = {}
text_tracks = config['request'].get('text_tracks') text_tracks = config['request'].get('text_tracks')
if text_tracks: if text_tracks: