Skip to content

Commit

Permalink
[bbc] Get all available formats (#1717)
Browse files Browse the repository at this point in the history
Authored by: nyuszika7h
  • Loading branch information
qtlunya committed Nov 19, 2021
1 parent 7333296 commit c45b874
Showing 1 changed file with 15 additions and 4 deletions.
19 changes: 15 additions & 4 deletions yt_dlp/extractor/bbc.py
Original file line number Diff line number Diff line change
Expand Up @@ -451,9 +451,10 @@ def _download_playlist(self, playlist_id):
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']
Expand All @@ -463,8 +464,18 @@ def _download_playlist(self, playlist_id):
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
Expand Down

0 comments on commit c45b874

Please sign in to comment.