mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:20:45 +00:00 
			
		
		
		
	[arte.tv:+7] Use original format ids to avoid duplicates
This commit is contained in:
		| @@ -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'] | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Sergey M․
					Sergey M․