[vk] Add support for finished live streams (#10799)
authorSergey M․ <dstftw@gmail.com>
Thu, 29 Sep 2016 16:04:10 +0000 (23:04 +0700)
committerSergey M․ <dstftw@gmail.com>
Thu, 29 Sep 2016 16:04:10 +0000 (23:04 +0700)
youtube_dl/extractor/vk.py

index f26e0732c2b0693456acec3e9fb2390b36016d97..1d089c9d71ae57bebbf130755f8b28bdf7fe4289 100644 (file)
@@ -226,7 +226,7 @@ class VKIE(VKBaseIE):
             },
             'params': {
                 'skip_download': True,
-            }
+            },
         },
         {
             # video key is extra_data not url\d+
@@ -241,6 +241,18 @@ class VKIE(VKBaseIE):
                 'view_count': int,
             },
         },
+        {
+            # finished live stream, live_mp4
+            'url': 'https://vk.com/videos-387766?z=video-387766_456242764%2Fpl_-387766_-2',
+            'md5': '90d22d051fccbbe9becfccc615be6791',
+            'info_dict': {
+                'id': '456242764',
+                'ext': 'mp4',
+                'title': 'ИгроМир 2016 — день 1',
+                'uploader': 'Игромания',
+                'duration': 5239,
+            },
+        },
         {
             # removed video, just testing that we match the pattern
             'url': 'http://vk.com/feed?z=video-43215063_166094326%2Fbb50cacd3177146d7a',
@@ -366,7 +378,10 @@ class VKIE(VKBaseIE):
 
         formats = []
         for k, v in data.items():
-            if not k.startswith('url') and not k.startswith('cache') and k != 'extra_data' or not v:
+            if (not k.startswith('url') and not k.startswith('cache')
+                    and k not in ('extra_data', 'live_mp4')):
+                continue
+            if not isinstance(v, compat_str) or not v.startswith('http'):
                 continue
             height = int_or_none(self._search_regex(
                 r'^(?:url|cache)(\d+)', k, 'height', default=None))