about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2016-06-27 22:44:17 +0700
committerSergey M․ <dstftw@gmail.com>2016-06-27 22:44:17 +0700
commit9ea5c04c0d16f5519079ae04fdad62fc28c884b0 (patch)
treef7eb4ce144b976800ecdf3225342845297e86b5a
parentfd7a7498a47c5d79663ec8d86a87325aa634c652 (diff)
downloadyoutube-dl-9ea5c04c0d16f5519079ae04fdad62fc28c884b0.tar.gz
youtube-dl-9ea5c04c0d16f5519079ae04fdad62fc28c884b0.tar.xz
youtube-dl-9ea5c04c0d16f5519079ae04fdad62fc28c884b0.zip
[kaltura] Add _extract_url with fixed regex
-rw-r--r--youtube_dl/extractor/kaltura.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/youtube_dl/extractor/kaltura.py b/youtube_dl/extractor/kaltura.py
index a65697ff5..c75a958ba 100644
--- a/youtube_dl/extractor/kaltura.py
+++ b/youtube_dl/extractor/kaltura.py
@@ -64,6 +64,32 @@ class KalturaIE(InfoExtractor):
         }
     ]
 
+    @staticmethod
+    def _extract_url(webpage):
+        mobj = (
+            re.search(
+                r"""(?xs)
+                    kWidget\.(?:thumb)?[Ee]mbed\(
+                    \{.*?
+                        (?P<q1>['\"])wid(?P=q1)\s*:\s*
+                        (?P<q2>['\"])_?(?P<partner_id>[^'\"]+)(?P=q2),.*?
+                        (?P<q3>['\"])entry_?[Ii]d(?P=q3)\s*:\s*
+                        (?P<q4>['\"])(?P<id>[^'\"]+)(?P=q4),
+                """, webpage) or
+            re.search(
+                r'''(?xs)
+                    (?P<q1>["\'])
+                        (?:https?:)?//cdnapi(?:sec)?\.kaltura\.com/.*?(?:p|partner_id)/(?P<partner_id>\d+).*?
+                    (?P=q1).*?
+                    (?:
+                        entry_?[Ii]d|
+                        (?P<q2>["\'])entry_?[Ii]d(?P=q2)
+                    )\s*:\s*
+                    (?P<q3>["\'])(?P<id>.+?)(?P=q3)
+                ''', webpage))
+        if mobj:
+            return 'kaltura:%(partner_id)s:%(id)s' % mobj.groupdict()
+
     def _kaltura_api_call(self, video_id, actions, *args, **kwargs):
         params = actions[0]
         if len(actions) > 1: