[bbc] reduce requests and improve format_id

This commit is contained in:
Remita Amine 2016-08-06 19:24:59 +01:00
parent d16b3c6677
commit b0af12154e

View file

@ -294,6 +294,7 @@ def _download_media_selector_url(self, url, programme_id=None):
def _process_media_selector(self, media_selection, programme_id): def _process_media_selector(self, media_selection, programme_id):
formats = [] formats = []
subtitles = None subtitles = None
urls = []
for media in self._extract_medias(media_selection): for media in self._extract_medias(media_selection):
kind = media.get('kind') kind = media.get('kind')
@ -305,10 +306,14 @@ def _process_media_selector(self, media_selection, programme_id):
height = int_or_none(media.get('height')) height = int_or_none(media.get('height'))
file_size = int_or_none(media.get('media_file_size')) file_size = int_or_none(media.get('media_file_size'))
for connection in self._extract_connections(media): 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') conn_kind = connection.get('kind')
protocol = connection.get('protocol') protocol = connection.get('protocol')
supplier = connection.get('supplier') supplier = connection.get('supplier')
href = connection.get('href')
transfer_format = connection.get('transferFormat') transfer_format = connection.get('transferFormat')
format_id = supplier or conn_kind or protocol format_id = supplier or conn_kind or protocol
if service: if service:
@ -331,6 +336,8 @@ def _process_media_selector(self, media_selection, programme_id):
formats.extend(self._extract_f4m_formats( formats.extend(self._extract_f4m_formats(
href, programme_id, f4m_id=format_id, fatal=False)) href, programme_id, f4m_id=format_id, fatal=False))
else: else:
if bitrate:
format_id += '-%d' % bitrate
fmt = { fmt = {
'format_id': format_id, 'format_id': format_id,
'filesize': file_size, 'filesize': file_size,