[francetv] Improve formats extraction
authorSergey M․ <dstftw@gmail.com>
Sat, 4 Apr 2015 17:02:04 +0000 (23:02 +0600)
committerSergey M․ <dstftw@gmail.com>
Sat, 4 Apr 2015 17:02:04 +0000 (23:02 +0600)
youtube_dl/extractor/francetv.py

index 0d92ef9c4533ee87a392d3db34ed801d2140da25..fd3e7aa7b50035f02fd463c5629bfe859c20ec8b 100644 (file)
@@ -16,6 +16,7 @@ from ..utils import (
     int_or_none,
     float_or_none,
     parse_duration,
+    determine_ext,
 )
 
 
@@ -51,7 +52,8 @@ class FranceTVBaseInfoExtractor(InfoExtractor):
             if not video_url:
                 continue
             format_id = video['format']
-            if video_url.endswith('.f4m'):
+            ext = determine_ext(video_url)
+            if ext == 'f4m':
                 if georestricted:
                     # See https://github.com/rg3/youtube-dl/issues/3963
                     # m3u8 urls work fine
@@ -61,12 +63,9 @@ class FranceTVBaseInfoExtractor(InfoExtractor):
                     'http://hdfauth.francetv.fr/esi/urltokengen2.html?url=%s' % video_url_parsed.path,
                     video_id, 'Downloading f4m manifest token', fatal=False)
                 if f4m_url:
-                    f4m_formats = self._extract_f4m_formats(f4m_url, video_id)
-                    for f4m_format in f4m_formats:
-                        f4m_format['preference'] = 1
-                    formats.extend(f4m_formats)
-            elif video_url.endswith('.m3u8'):
-                formats.extend(self._extract_m3u8_formats(video_url, video_id, 'mp4'))
+                    formats.extend(self._extract_f4m_formats(f4m_url, video_id, 1, format_id))
+            elif ext == 'm3u8':
+                formats.extend(self._extract_m3u8_formats(video_url, video_id, 'mp4', m3u8_id=format_id))
             elif video_url.startswith('rtmp'):
                 formats.append({
                     'url': video_url,