aboutsummaryrefslogtreecommitdiffstats
path: root/yt_dlp/extractor/bbc.py
diff options
context:
space:
mode:
authorJesús <heckyel@hyperbola.info>2021-11-27 13:25:01 -0500
committerJesús <heckyel@hyperbola.info>2021-11-27 13:25:01 -0500
commitc6df1db4745c9d399204876bbe04e8a311c01df1 (patch)
treea9f4ffa1db45e367aba1de858ac536b761f192fb /yt_dlp/extractor/bbc.py
parent5bb25093eb718346ab8a723d2c04f0066fc3958a (diff)
parent93e597ba287539643851f0ad5c5ff04760380268 (diff)
downloadhypervideo-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.py19
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