diff options
author | Remita Amine <remitamine@gmail.com> | 2019-04-21 21:05:58 +0100 |
---|---|---|
committer | Remita Amine <remitamine@gmail.com> | 2019-04-21 21:05:58 +0100 |
commit | 85b6335d55c7b0ed7f6815f7b8b9a365b0a28c37 (patch) | |
tree | d6f3a0bb4c560cc5128c875b4b217a839afb942b /youtube_dl/extractor/vimeo.py | |
parent | c25720ef6ab7e100d107df64efb3a1e1776fd66a (diff) |
[vimeo] extract live archive source format(#19144)
Diffstat (limited to 'youtube_dl/extractor/vimeo.py')
-rw-r--r-- | youtube_dl/extractor/vimeo.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/youtube_dl/extractor/vimeo.py b/youtube_dl/extractor/vimeo.py index d404498aa..a41178bab 100644 --- a/youtube_dl/extractor/vimeo.py +++ b/youtube_dl/extractor/vimeo.py @@ -110,7 +110,8 @@ class VimeoBaseInfoExtractor(InfoExtractor): def _parse_config(self, config, video_id): video_data = config['video'] 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 = [] config_files = video_data.get('files') or config['request'].get('files', {}) @@ -127,6 +128,7 @@ class VimeoBaseInfoExtractor(InfoExtractor): '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 cdn_name, cdn_data in config_files.get(files_type, {}).get('cdns', {}).items(): manifest_url = cdn_data.get('url') @@ -164,6 +166,15 @@ class VimeoBaseInfoExtractor(InfoExtractor): f['preference'] = -40 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 = {} text_tracks = config['request'].get('text_tracks') if text_tracks: |