mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-27 03:03:01 +00:00
[arte] Download the 'Originalversion' version if it's the only one available (fixes #1682)
This commit is contained in:
parent
e54fd4b23b
commit
21c924f406
1 changed files with 12 additions and 5 deletions
|
@ -158,7 +158,9 @@ def _extract_from_webpage(self, webpage, video_id, lang):
|
||||||
'thumbnail': player_info.get('programImage') or player_info.get('VTU', {}).get('IUR'),
|
'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):
|
def _match_lang(f):
|
||||||
if f.get('versionCode') is None:
|
if f.get('versionCode') is None:
|
||||||
return True
|
return True
|
||||||
|
@ -170,11 +172,16 @@ def _match_lang(f):
|
||||||
regexes = [r'VO?%s' % l, r'VO?.-ST%s' % l]
|
regexes = [r'VO?%s' % l, r'VO?.-ST%s' % l]
|
||||||
return any(re.match(r, f['versionCode']) for r in regexes)
|
return any(re.match(r, f['versionCode']) for r in regexes)
|
||||||
# Some formats may not be in the same language as the url
|
# Some formats may not be in the same language as the url
|
||||||
formats = filter(_match_lang, formats)
|
formats = filter(_match_lang, all_formats)
|
||||||
# Some formats use the m3u8 protocol
|
|
||||||
formats = filter(lambda f: f.get('videoFormat') != 'M3U8', formats)
|
|
||||||
# We order the formats by quality
|
|
||||||
formats = list(formats) # in python3 filter returns an iterator
|
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:
|
if re.match(r'[A-Z]Q', formats[0]['quality']) is not None:
|
||||||
sort_key = lambda f: ['HQ', 'MQ', 'EQ', 'SQ'].index(f['quality'])
|
sort_key = lambda f: ['HQ', 'MQ', 'EQ', 'SQ'].index(f['quality'])
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in a new issue