[generic] Add support for single format Video.js embeds (closes #14371)
authorSergey M․ <dstftw@gmail.com>
Sun, 1 Oct 2017 00:01:21 +0000 (07:01 +0700)
committerSergey M․ <dstftw@gmail.com>
Sun, 1 Oct 2017 00:01:42 +0000 (07:01 +0700)
youtube_dl/extractor/generic.py

index a3d09a036a03761ababe08cb0bbe0a166d9faf0a..1721a3dbd02a73e5afb685ead0f0a6bdd87a5dd4 100644 (file)
@@ -1133,7 +1133,7 @@ class GenericIE(InfoExtractor):
             }
         },
         {
-            # Video.js embed
+            # Video.js embed, multiple formats
             'url': 'http://ortcam.com/solidworks-урок-6-настройка-чертежа_33f9b7351.html',
             'info_dict': {
                 'id': 'yygqldloqIk',
@@ -1148,6 +1148,19 @@ class GenericIE(InfoExtractor):
                 'skip_download': True,
             },
         },
+        {
+            # Video.js embed, single format
+            'url': 'https://www.vooplayer.com/v3/watch/watch.php?v=NzgwNTg=',
+            'info_dict': {
+                'id': 'watch',
+                'ext': 'mp4',
+                'title': 'Step 1 -  Good Foundation',
+                'description': 'md5:d1e7ff33a29fc3eb1673d6c270d344f4',
+            },
+            'params': {
+                'skip_download': True,
+            },
+        },
         # rtl.nl embed
         {
             'url': 'http://www.rtlnieuws.nl/nieuws/buitenland/aanslagen-kopenhagen',
@@ -2900,12 +2913,14 @@ class GenericIE(InfoExtractor):
 
         # Video.js embed
         mobj = re.search(
-            r'(?s)\bvideojs\s*\(.+?\bplayer\.src\s*\(\s*(\[.+?\])\s*\)\s*;',
+            r'(?s)\bvideojs\s*\(.+?\.src\s*\(\s*((?:\[.+?\]|{.+?}))\s*\)\s*;',
             webpage)
         if mobj is not None:
             sources = self._parse_json(
                 mobj.group(1), video_id, transform_source=js_to_json,
                 fatal=False) or []
+            if not isinstance(sources, list):
+                sources = [sources]
             formats = []
             for source in sources:
                 src = source.get('src')