Merge pull request #8513 from remitamine/dash-sort
[youtube-dl] / youtube_dl / extractor / crackle.py
index a478333a2f5859c2ff2142ace680c29a03ff3180..79238cce7a22d040e70c977219a86438bea4dfc7 100644 (file)
@@ -49,12 +49,15 @@ class CrackleIE(InfoExtractor):
     def _real_extract(self, url):
         video_id = self._match_id(url)
         item = self._download_xml(
-            'http://legacyweb-us.crackle.com/app/revamp/vidwallcache.aspx?flags=-1&fm=%s' % video_id, video_id).find('i')
+            'http://legacyweb-us.crackle.com/app/revamp/vidwallcache.aspx?flags=-1&fm=%s' % video_id,
+            video_id).find('i')
         title = item.attrib['t']
 
         thumbnail = None
         subtitles = {}
-        formats = self._extract_m3u8_formats('http://content.uplynk.com/ext/%s/%s.m3u8' % (self._UPLYNK_OWNER_ID, video_id), video_id, 'mp4', fatal=None)
+        formats = self._extract_m3u8_formats(
+            'http://content.uplynk.com/ext/%s/%s.m3u8' % (self._UPLYNK_OWNER_ID, video_id),
+            video_id, 'mp4', m3u8_id='hls', fatal=None)
         path = item.attrib.get('p')
         if path:
             thumbnail = self._THUMBNAIL_TEMPLATE % path
@@ -62,7 +65,7 @@ class CrackleIE(InfoExtractor):
             for mfs_path, mfs_info in self._MEDIA_FILE_SLOTS.items():
                 formats.append({
                     'url': http_base_url + mfs_path,
-                    'format_id': mfs_path.split('.')[0],
+                    'format_id': 'http-' + mfs_path.split('.')[0],
                     'width': mfs_info['width'],
                     'height': mfs_info['height'],
                 })
@@ -76,7 +79,7 @@ class CrackleIE(InfoExtractor):
                         'url': '%s/%s%s_%s.xml' % (self._SUBTITLE_SERVER, path, locale, v),
                         'ext': 'ttml',
                     }]
-        self._sort_formats(formats, ('width', 'height', 'tbr'))
+        self._sort_formats(formats, ('width', 'height', 'tbr', 'format_id'))
 
         return {
             'id': video_id,