diff options
Diffstat (limited to 'youtube_dl/extractor')
-rw-r--r-- | youtube_dl/extractor/bbc.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/youtube_dl/extractor/bbc.py b/youtube_dl/extractor/bbc.py index 45c562bd8..35d042e4d 100644 --- a/youtube_dl/extractor/bbc.py +++ b/youtube_dl/extractor/bbc.py @@ -294,6 +294,7 @@ class BBCCoUkIE(InfoExtractor): def _process_media_selector(self, media_selection, programme_id): formats = [] subtitles = None + urls = [] for media in self._extract_medias(media_selection): kind = media.get('kind') @@ -305,10 +306,14 @@ class BBCCoUkIE(InfoExtractor): height = int_or_none(media.get('height')) file_size = int_or_none(media.get('media_file_size')) for connection in self._extract_connections(media): + href = connection.get('href') + if href in urls: + continue + if href: + urls.append(href) conn_kind = connection.get('kind') protocol = connection.get('protocol') supplier = connection.get('supplier') - href = connection.get('href') transfer_format = connection.get('transferFormat') format_id = supplier or conn_kind or protocol if service: @@ -331,6 +336,8 @@ class BBCCoUkIE(InfoExtractor): formats.extend(self._extract_f4m_formats( href, programme_id, f4m_id=format_id, fatal=False)) else: + if bitrate: + format_id += '-%d' % bitrate fmt = { 'format_id': format_id, 'filesize': file_size, |