[arte.tv:+7] Use original format ids to avoid duplicates
This commit is contained in:
parent
cc98a3f096
commit
d24a2b20b4
|
@ -12,6 +12,7 @@ from ..utils import (
|
||||||
get_element_by_id,
|
get_element_by_id,
|
||||||
compat_str,
|
compat_str,
|
||||||
get_element_by_attribute,
|
get_element_by_attribute,
|
||||||
|
int_or_none,
|
||||||
)
|
)
|
||||||
|
|
||||||
# There are different sources of video in arte.tv, the extraction process
|
# There are different sources of video in arte.tv, the extraction process
|
||||||
|
@ -98,7 +99,11 @@ class ArteTVPlus7IE(InfoExtractor):
|
||||||
'thumbnail': player_info.get('programImage') or player_info.get('VTU', {}).get('IUR'),
|
'thumbnail': player_info.get('programImage') or player_info.get('VTU', {}).get('IUR'),
|
||||||
}
|
}
|
||||||
|
|
||||||
all_formats = player_info['VSR'].values()
|
all_formats = []
|
||||||
|
for format_id, format_dict in player_info['VSR'].items():
|
||||||
|
fmt = dict(format_dict)
|
||||||
|
fmt['format_id'] = format_id
|
||||||
|
all_formats.append(fmt)
|
||||||
# Some formats use the m3u8 protocol
|
# Some formats use the m3u8 protocol
|
||||||
all_formats = list(filter(lambda f: f.get('videoFormat') != 'M3U8', all_formats))
|
all_formats = list(filter(lambda f: f.get('videoFormat') != 'M3U8', all_formats))
|
||||||
def _match_lang(f):
|
def _match_lang(f):
|
||||||
|
@ -149,25 +154,12 @@ class ArteTVPlus7IE(InfoExtractor):
|
||||||
)
|
)
|
||||||
formats = sorted(formats, key=sort_key)
|
formats = sorted(formats, key=sort_key)
|
||||||
def _format(format_info):
|
def _format(format_info):
|
||||||
quality = ''
|
|
||||||
height = format_info.get('height')
|
|
||||||
if height is not None:
|
|
||||||
quality = compat_str(height)
|
|
||||||
bitrate = format_info.get('bitrate')
|
|
||||||
if bitrate is not None:
|
|
||||||
quality += '-%d' % bitrate
|
|
||||||
if format_info.get('versionCode') is not None:
|
|
||||||
format_id = '%s-%s' % (quality, format_info['versionCode'])
|
|
||||||
else:
|
|
||||||
format_id = quality
|
|
||||||
media_type = format_info.get('mediaType')
|
|
||||||
if media_type is not None:
|
|
||||||
format_id += '-%s' % media_type
|
|
||||||
info = {
|
info = {
|
||||||
'format_id': format_id,
|
'format_id': format_info['format_id'],
|
||||||
'format_note': format_info.get('versionLibelle'),
|
'format_note': '%s, %s' % (format_info.get('versionCode'), format_info.get('versionLibelle')),
|
||||||
'width': format_info.get('width'),
|
'width': int_or_none(format_info.get('width')),
|
||||||
'height': height,
|
'height': int_or_none(format_info.get('height')),
|
||||||
|
'tbr': int_or_none(format_info.get('bitrate')),
|
||||||
}
|
}
|
||||||
if format_info['mediaType'] == 'rtmp':
|
if format_info['mediaType'] == 'rtmp':
|
||||||
info['url'] = format_info['streamer']
|
info['url'] = format_info['streamer']
|
||||||
|
|
Loading…
Reference in New Issue