diff options
author | Jesús <heckyel@hyperbola.info> | 2021-11-27 13:25:01 -0500 |
---|---|---|
committer | Jesús <heckyel@hyperbola.info> | 2021-11-27 13:25:01 -0500 |
commit | c6df1db4745c9d399204876bbe04e8a311c01df1 (patch) | |
tree | a9f4ffa1db45e367aba1de858ac536b761f192fb /yt_dlp/extractor/bbc.py | |
parent | 5bb25093eb718346ab8a723d2c04f0066fc3958a (diff) | |
parent | 93e597ba287539643851f0ad5c5ff04760380268 (diff) | |
download | hypervideo-pre-c6df1db4745c9d399204876bbe04e8a311c01df1.tar.lz hypervideo-pre-c6df1db4745c9d399204876bbe04e8a311c01df1.tar.xz hypervideo-pre-c6df1db4745c9d399204876bbe04e8a311c01df1.zip |
updated from upstream | 27/11/2021 at 13:25
Diffstat (limited to 'yt_dlp/extractor/bbc.py')
-rw-r--r-- | yt_dlp/extractor/bbc.py | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/yt_dlp/extractor/bbc.py b/yt_dlp/extractor/bbc.py index 4e2dcd76b..672ed1ffe 100644 --- a/yt_dlp/extractor/bbc.py +++ b/yt_dlp/extractor/bbc.py @@ -451,9 +451,10 @@ class BBCCoUkIE(InfoExtractor): playlist = self._download_json( 'http://www.bbc.co.uk/programmes/%s/playlist.json' % playlist_id, playlist_id, 'Downloading playlist JSON') + formats = [] + subtitles = {} - version = playlist.get('defaultAvailableVersion') - if version: + for version in playlist.get('allAvailableVersions', []): smp_config = version['smpConfig'] title = smp_config['title'] description = smp_config['summary'] @@ -463,8 +464,18 @@ class BBCCoUkIE(InfoExtractor): continue programme_id = item.get('vpid') duration = int_or_none(item.get('duration')) - formats, subtitles = self._download_media_selector(programme_id) - return programme_id, title, description, duration, formats, subtitles + version_formats, version_subtitles = self._download_media_selector(programme_id) + types = version['types'] + for f in version_formats: + f['format_note'] = ', '.join(types) + if any('AudioDescribed' in x for x in types): + f['language_preference'] = -10 + formats += version_formats + for tag, subformats in (version_subtitles or {}).items(): + subtitles.setdefault(tag, []) + subtitles[tag] += subformats + + return programme_id, title, description, duration, formats, subtitles except ExtractorError as ee: if not (isinstance(ee.cause, compat_HTTPError) and ee.cause.code == 404): raise |