[kaltura] Strictify _VALID_URL
authorSergey M․ <dstftw@gmail.com>
Sat, 29 Aug 2015 14:21:59 +0000 (20:21 +0600)
committerSergey M․ <dstftw@gmail.com>
Sat, 29 Aug 2015 14:21:59 +0000 (20:21 +0600)
youtube_dl/extractor/kaltura.py

index 1f64df4d5ce04329a571816fabeeba168c65ebb0..c57f33ece2fd6aa0df1cb7c494e1a3bf44e475da 100644 (file)
@@ -13,13 +13,25 @@ from ..utils import (
 
 class KalturaIE(InfoExtractor):
     _VALID_URL = r'''(?x)
-    (?:kaltura:|
-        https?://(:?(?:www|cdnapisec)\.)?kaltura\.com/(?:
-            (?:index\.php/kwidget/(?:[^/]+/)*?wid/_)|
-            (?:html5/html5lib/v(?:[\d.]+)/mwEmbedFrame.php/p/\d+)
-        )
-    )(?P<partner_id>\d+)?(?::|/(?:[^/]+/)*?entry_id/)(?P<id>[0-9a-z_]+)
-    (?:\?wid=_(?P<partner_id_html5>\d+))?'''
+                (?:
+                    kaltura:(?P<partner_id_s>\d+):(?P<id_s>[0-9a-z_]+)|
+                    https?://
+                    (:?
+                        (?:www|cdnapisec)\.)?kaltura\.com/
+                        (?:
+                            (?:
+                                # flash player
+                                index\.php/kwidget/
+                                (?:[^/]+/)*?wid/_(?P<partner_id>\d+)/
+                                (?:[^/]+/)*?entry_id/(?P<id>[0-9a-z_]+)|
+                                # html player
+                                html5/html5lib/
+                                (?:[^/]+/)*?entry_id/(?P<id_html5>[0-9a-z_]+)
+                                .*\?.*\bwid=_(?P<partner_id_html5>\d+)
+                        )
+                    )
+                )
+                '''
     _API_BASE = 'http://cdnapi.kaltura.com/api_v3/index.php?'
     _TESTS = [
         {
@@ -110,9 +122,9 @@ class KalturaIE(InfoExtractor):
             video_id, actions, note='Downloading video info JSON')
 
     def _real_extract(self, url):
-        video_id = self._match_id(url)
         mobj = re.match(self._VALID_URL, url)
-        partner_id, entry_id = mobj.group('partner_id') or mobj.group('partner_id_html5'), mobj.group('id')
+        partner_id = mobj.group('partner_id_s') or mobj.group('partner_id') or mobj.group('partner_id_html5')
+        entry_id = mobj.group('id_s') or mobj.group('id') or mobj.group('id_html5')
 
         info, source_data = self._get_video_info(entry_id, partner_id)
 
@@ -131,7 +143,7 @@ class KalturaIE(InfoExtractor):
         self._sort_formats(formats)
 
         return {
-            'id': video_id,
+            'id': entry_id,
             'title': info['name'],
             'formats': formats,
             'description': info.get('description'),