diff options
author | Jaime Marquínez Ferrándiz <[email protected]> | 2013-10-11 16:33:31 +0200 |
---|---|---|
committer | Jaime Marquínez Ferrándiz <[email protected]> | 2013-10-11 16:33:31 +0200 |
commit | 3823342d9d0a2c50327aa3e1f85a7e8e1221b0bc (patch) | |
tree | 05e70ef2de0badbbadaab507643a33ca5ee3e9b7 /youtube_dl/extractor/arte.py | |
parent | 91dbaef40692a68a53aa74858f538a5699bae9ea (diff) | |
download | youtube-dl-3823342d9d0a2c50327aa3e1f85a7e8e1221b0bc.tar.gz youtube-dl-3823342d9d0a2c50327aa3e1f85a7e8e1221b0bc.zip |
[arte] Prepare for generic format support (#980)
Diffstat (limited to 'youtube_dl/extractor/arte.py')
-rw-r--r-- | youtube_dl/extractor/arte.py | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/youtube_dl/extractor/arte.py b/youtube_dl/extractor/arte.py index 69b3b0ad7..4707d7cca 100644 --- a/youtube_dl/extractor/arte.py +++ b/youtube_dl/extractor/arte.py @@ -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] - if format_info['mediaType'] == u'rtmp': - info_dict['url'] = format_info['streamer'] - info_dict['play_path'] = 'mp4:' + format_info['url'] - else: - info_dict['url'] = format_info['url'] + def _format(format_info): + info = {'ext': 'flv', + 'width': format_info.get('width'), + 'height': format_info.get('height'), + } + if format_info['mediaType'] == u'rtmp': + 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 |