aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>2013-10-11 16:33:31 +0200
committerJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>2013-10-11 16:33:31 +0200
commit3823342d9d0a2c50327aa3e1f85a7e8e1221b0bc (patch)
tree05e70ef2de0badbbadaab507643a33ca5ee3e9b7
parent91dbaef40692a68a53aa74858f538a5699bae9ea (diff)
downloadyoutube-dl-3823342d9d0a2c50327aa3e1f85a7e8e1221b0bc.tar.xz
[arte] Prepare for generic format support (#980)
-rw-r--r--youtube_dl/extractor/arte.py22
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