[hitbox] Extract all formats (Closes #5494)
authorSergey M․ <dstftw@gmail.com>
Wed, 22 Apr 2015 15:01:25 +0000 (21:01 +0600)
committerSergey M․ <dstftw@gmail.com>
Wed, 22 Apr 2015 15:01:25 +0000 (21:01 +0600)
youtube_dl/extractor/hitbox.py

index d606429ca88a51138f3108594e7933f74638de34..d7cd8bb7e6928c74786f20f3957eff0f94eb7a5c 100644 (file)
@@ -96,13 +96,33 @@ class HitboxIE(InfoExtractor):
             'https://www.hitbox.tv/api/player/config/video/%s' % video_id,
             video_id)
 
-        clip = player_config.get('clip')
-        video_url = clip.get('url')
-        res = clip.get('bitrates', [])[0].get('label')
+        formats = []
+        for video in player_config['clip']['bitrates']:
+            label = video.get('label')
+            if label == 'Auto':
+                continue
+            video_url = video.get('url')
+            if not video_url:
+                continue
+            bitrate = int_or_none(video.get('bitrate'))
+            if determine_ext(video_url) == 'm3u8':
+                if not video_url.startswith('http'):
+                    continue
+                formats.append({
+                    'url': video_url,
+                    'ext': 'mp4',
+                    'tbr': bitrate,
+                    'format_note': label,
+                    'protocol': 'm3u8_native',
+                })
+            else:
+                formats.append({
+                    'url': video_url,
+                    'tbr': bitrate,
+                    'format_note': label,
+                })
 
-        metadata['resolution'] = res
-        metadata['url'] = video_url
-        metadata['protocol'] = 'm3u8'
+        metadata['formats'] = formats
 
         return metadata