mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-04 05:37:07 -05:00 
			
		
		
		
	[arte] Prepare for generic format support (#980)
This commit is contained in:
		@@ -109,17 +109,27 @@ class ArteTvIE(InfoExtractor):
 | 
			
		||||
            return any(re.match(r, f['versionCode']) for r in regexes)
 | 
			
		||||
        # Some formats may not be in the same language as the url
 | 
			
		||||
        formats = filter(_match_lang, formats)
 | 
			
		||||
        # Some formats use the m3u8 protocol
 | 
			
		||||
        formats = filter(lambda f: f['videoFormat'] != 'M3U8', formats)
 | 
			
		||||
        # We order the formats by quality
 | 
			
		||||
        formats = sorted(formats, key=lambda f: int(f['height']))
 | 
			
		||||
        # Prefer videos without subtitles in the same language
 | 
			
		||||
        formats = sorted(formats, key=lambda f: re.match(r'VO(F|A)-STM\1', f['versionCode']) is None)
 | 
			
		||||
        # Pick the best quality
 | 
			
		||||
        format_info = formats[-1]
 | 
			
		||||
        def _format(format_info):
 | 
			
		||||
            info = {'ext': 'flv',
 | 
			
		||||
                    'width': format_info.get('width'),
 | 
			
		||||
                    'height': format_info.get('height'),
 | 
			
		||||
                    }
 | 
			
		||||
            if format_info['mediaType'] == u'rtmp':
 | 
			
		||||
            info_dict['url'] = format_info['streamer']
 | 
			
		||||
            info_dict['play_path'] = 'mp4:' + format_info['url']
 | 
			
		||||
                info['url'] = format_info['streamer']
 | 
			
		||||
                info['play_path'] = 'mp4:' + format_info['url']
 | 
			
		||||
            else:
 | 
			
		||||
                info_dict['url'] = format_info['url']
 | 
			
		||||
            return info
 | 
			
		||||
        info_dict['formats'] = [_format(f) for f in formats]
 | 
			
		||||
        # TODO: Remove when #980 has been merged 
 | 
			
		||||
        info_dict.update(info_dict['formats'][-1])
 | 
			
		||||
 | 
			
		||||
        return info_dict
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user