|
|
@ -113,9 +113,14 @@ class KalturaIE(InfoExtractor):
|
|
|
|
|
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
@staticmethod
|
|
|
|
def _extract_url(webpage):
|
|
|
|
def _extract_url(webpage):
|
|
|
|
|
|
|
|
urls = KalturaIE._extract_urls(webpage)
|
|
|
|
|
|
|
|
return urls[0] if urls else None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
|
|
|
|
def _extract_urls(webpage):
|
|
|
|
# Embed codes: https://knowledge.kaltura.com/embedding-kaltura-media-players-your-site
|
|
|
|
# Embed codes: https://knowledge.kaltura.com/embedding-kaltura-media-players-your-site
|
|
|
|
mobj = (
|
|
|
|
finditer = (
|
|
|
|
re.search(
|
|
|
|
re.finditer(
|
|
|
|
r"""(?xs)
|
|
|
|
r"""(?xs)
|
|
|
|
kWidget\.(?:thumb)?[Ee]mbed\(
|
|
|
|
kWidget\.(?:thumb)?[Ee]mbed\(
|
|
|
|
\{.*?
|
|
|
|
\{.*?
|
|
|
@ -124,7 +129,7 @@ class KalturaIE(InfoExtractor):
|
|
|
|
(?P<q3>['"])entry_?[Ii]d(?P=q3)\s*:\s*
|
|
|
|
(?P<q3>['"])entry_?[Ii]d(?P=q3)\s*:\s*
|
|
|
|
(?P<q4>['"])(?P<id>(?:(?!(?P=q4)).)+)(?P=q4)(?:,|\s*\})
|
|
|
|
(?P<q4>['"])(?P<id>(?:(?!(?P=q4)).)+)(?P=q4)(?:,|\s*\})
|
|
|
|
""", webpage)
|
|
|
|
""", webpage)
|
|
|
|
or re.search(
|
|
|
|
or re.finditer(
|
|
|
|
r'''(?xs)
|
|
|
|
r'''(?xs)
|
|
|
|
(?P<q1>["'])
|
|
|
|
(?P<q1>["'])
|
|
|
|
(?:https?:)?//cdnapi(?:sec)?\.kaltura\.com(?::\d+)?/(?:(?!(?P=q1)).)*\b(?:p|partner_id)/(?P<partner_id>\d+)(?:(?!(?P=q1)).)*
|
|
|
|
(?:https?:)?//cdnapi(?:sec)?\.kaltura\.com(?::\d+)?/(?:(?!(?P=q1)).)*\b(?:p|partner_id)/(?P<partner_id>\d+)(?:(?!(?P=q1)).)*
|
|
|
@ -138,7 +143,7 @@ class KalturaIE(InfoExtractor):
|
|
|
|
)
|
|
|
|
)
|
|
|
|
(?P<q3>["'])(?P<id>(?:(?!(?P=q3)).)+)(?P=q3)
|
|
|
|
(?P<q3>["'])(?P<id>(?:(?!(?P=q3)).)+)(?P=q3)
|
|
|
|
''', webpage)
|
|
|
|
''', webpage)
|
|
|
|
or re.search(
|
|
|
|
or re.finditer(
|
|
|
|
r'''(?xs)
|
|
|
|
r'''(?xs)
|
|
|
|
<(?:iframe[^>]+src|meta[^>]+\bcontent)=(?P<q1>["'])
|
|
|
|
<(?:iframe[^>]+src|meta[^>]+\bcontent)=(?P<q1>["'])
|
|
|
|
(?:https?:)?//(?:(?:www|cdnapi(?:sec)?)\.)?kaltura\.com/(?:(?!(?P=q1)).)*\b(?:p|partner_id)/(?P<partner_id>\d+)
|
|
|
|
(?:https?:)?//(?:(?:www|cdnapi(?:sec)?)\.)?kaltura\.com/(?:(?!(?P=q1)).)*\b(?:p|partner_id)/(?P<partner_id>\d+)
|
|
|
@ -148,7 +153,8 @@ class KalturaIE(InfoExtractor):
|
|
|
|
(?P=q1)
|
|
|
|
(?P=q1)
|
|
|
|
''', webpage)
|
|
|
|
''', webpage)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
if mobj:
|
|
|
|
urls = []
|
|
|
|
|
|
|
|
for mobj in finditer:
|
|
|
|
embed_info = mobj.groupdict()
|
|
|
|
embed_info = mobj.groupdict()
|
|
|
|
for k, v in embed_info.items():
|
|
|
|
for k, v in embed_info.items():
|
|
|
|
if v:
|
|
|
|
if v:
|
|
|
@ -160,7 +166,8 @@ class KalturaIE(InfoExtractor):
|
|
|
|
webpage)
|
|
|
|
webpage)
|
|
|
|
if service_mobj:
|
|
|
|
if service_mobj:
|
|
|
|
url = smuggle_url(url, {'service_url': service_mobj.group('id')})
|
|
|
|
url = smuggle_url(url, {'service_url': service_mobj.group('id')})
|
|
|
|
return url
|
|
|
|
urls.append(url)
|
|
|
|
|
|
|
|
return urls
|
|
|
|
|
|
|
|
|
|
|
|
def _kaltura_api_call(self, video_id, actions, service_url=None, *args, **kwargs):
|
|
|
|
def _kaltura_api_call(self, video_id, actions, service_url=None, *args, **kwargs):
|
|
|
|
params = actions[0]
|
|
|
|
params = actions[0]
|
|
|
|