|
@@ -12,6 +12,7 @@ from ..utils import (
|
|
|
get_element_by_id,
|
|
|
compat_str,
|
|
|
get_element_by_attribute,
|
|
|
+ int_or_none,
|
|
|
)
|
|
|
|
|
|
# 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'),
|
|
|
}
|
|
|
|
|
|
- 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
|
|
|
all_formats = list(filter(lambda f: f.get('videoFormat') != 'M3U8', all_formats))
|
|
|
def _match_lang(f):
|
|
@@ -149,25 +154,12 @@ class ArteTVPlus7IE(InfoExtractor):
|
|
|
)
|
|
|
formats = sorted(formats, key=sort_key)
|
|
|
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 = {
|
|
|
- 'format_id': format_id,
|
|
|
- 'format_note': format_info.get('versionLibelle'),
|
|
|
- 'width': format_info.get('width'),
|
|
|
- 'height': height,
|
|
|
+ 'format_id': format_info['format_id'],
|
|
|
+ 'format_note': '%s, %s' % (format_info.get('versionCode'), format_info.get('versionLibelle')),
|
|
|
+ 'width': int_or_none(format_info.get('width')),
|
|
|
+ 'height': int_or_none(format_info.get('height')),
|
|
|
+ 'tbr': int_or_none(format_info.get('bitrate')),
|
|
|
}
|
|
|
if format_info['mediaType'] == 'rtmp':
|
|
|
info['url'] = format_info['streamer']
|