[arte] Download the 'Originalversion' version if it's the only one available (fixes #1682)
This commit is contained in:
		@@ -158,7 +158,9 @@ class ArteTVPlus7IE(InfoExtractor):
 | 
			
		||||
            'thumbnail': player_info.get('programImage') or player_info.get('VTU', {}).get('IUR'),
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        formats = player_info['VSR'].values()
 | 
			
		||||
        all_formats = player_info['VSR'].values()
 | 
			
		||||
        # Some formats use the m3u8 protocol
 | 
			
		||||
        all_formats = list(filter(lambda f: f.get('videoFormat') != 'M3U8', all_formats))
 | 
			
		||||
        def _match_lang(f):
 | 
			
		||||
            if f.get('versionCode') is None:
 | 
			
		||||
                return True
 | 
			
		||||
@@ -170,11 +172,16 @@ class ArteTVPlus7IE(InfoExtractor):
 | 
			
		||||
            regexes = [r'VO?%s' % l, r'VO?.-ST%s' % l]
 | 
			
		||||
            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.get('videoFormat') != 'M3U8', formats)
 | 
			
		||||
        # We order the formats by quality
 | 
			
		||||
        formats = filter(_match_lang, all_formats)
 | 
			
		||||
        formats = list(formats) # in python3 filter returns an iterator
 | 
			
		||||
        if not formats:
 | 
			
		||||
            # Some videos are only available in the 'Originalversion'
 | 
			
		||||
            # they aren't tagged as being in French or German
 | 
			
		||||
            if all(f['versionCode'] == 'VO' for f in all_formats):
 | 
			
		||||
                formats = all_formats
 | 
			
		||||
            else:
 | 
			
		||||
                raise ExtractorError(u'The formats list is empty')
 | 
			
		||||
        # We order the formats by quality
 | 
			
		||||
        if re.match(r'[A-Z]Q', formats[0]['quality']) is not None:
 | 
			
		||||
            sort_key = lambda f: ['HQ', 'MQ', 'EQ', 'SQ'].index(f['quality'])
 | 
			
		||||
        else:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user