[generic] Support dynamic Kaltura embeds (#5016) (#5073)
authorNaglis Jonaitis <njonaitis@gmail.com>
Thu, 26 Feb 2015 22:34:19 +0000 (00:34 +0200)
committerNaglis Jonaitis <njonaitis@gmail.com>
Thu, 26 Feb 2015 22:34:19 +0000 (00:34 +0200)
youtube_dl/extractor/generic.py

index 3aff57e30302d3c33ce5e468f9df642cda0f6ff8..27e2bc3001c27750378cd790763d86b38442ffa7 100644 (file)
@@ -557,6 +557,18 @@ class GenericIE(InfoExtractor):
                 'title': 'EP3S5 - Bon Appétit - Baqueira Mi Corazon !',
             }
         },
+        # Kaltura embed
+        {
+            'url': 'http://www.monumentalnetwork.com/videos/john-carlson-postgame-2-25-15',
+            'info_dict': {
+                'id': '1_eergr3h1',
+                'ext': 'mp4',
+                'upload_date': '20150226',
+                'uploader_id': 'MonumentalSports-Kaltura@perfectsensedigital.com',
+                'timestamp': int,
+                'title': 'John Carlson Postgame 2/25/15',
+            },
+        },
     ]
 
     def report_following_redirect(self, new_url):
@@ -1113,6 +1125,12 @@ class GenericIE(InfoExtractor):
         if mobj is not None:
             return self.url_result(mobj.group('url'), 'Zapiks')
 
+        # Look for Kaltura embeds
+        mobj = re.search(
+            r"(?s)kWidget\.(?:thumb)?[Ee]mbed\(\{.*?'wid'\s*:\s*'_?(?P<partner_id>[^']+)',.*?'entry_id'\s*:\s*'(?P<id>[^']+)',", webpage)
+        if mobj is not None:
+            return self.url_result('kaltura:%(partner_id)s:%(id)s' % mobj.groupdict(), 'Kaltura')
+
         def check_video(vurl):
             if YoutubeIE.suitable(vurl):
                 return True