mirror of
https://github.com/l1ving/youtube-dl
synced 2025-02-10 12:32:51 +08:00
[kaltura] Be rigorous on iframe
Per @dstftw, don't pull out just any kaltura.com iframes, make sure they have /p/{PARTNER_ID} and &entry_id={ENTRY_ID} and return a kaltura: URL. Go back to specifying the IE is Kaltura in url_result().
This commit is contained in:
parent
07970f3ae2
commit
4905e589d7
@ -2305,7 +2305,7 @@ class GenericIE(InfoExtractor):
|
|||||||
# Look for Kaltura embeds
|
# Look for Kaltura embeds
|
||||||
kaltura_url = KalturaIE._extract_url(webpage)
|
kaltura_url = KalturaIE._extract_url(webpage)
|
||||||
if kaltura_url:
|
if kaltura_url:
|
||||||
return self.url_result(smuggle_url(kaltura_url, {'source_url': url}))
|
return self.url_result(smuggle_url(kaltura_url, {'source_url': url}), KalturaIE.ie_key())
|
||||||
|
|
||||||
# Look for Eagle.Platform embeds
|
# Look for Eagle.Platform embeds
|
||||||
eagleplatform_url = EaglePlatformIE._extract_url(webpage)
|
eagleplatform_url = EaglePlatformIE._extract_url(webpage)
|
||||||
|
@ -128,7 +128,17 @@ class KalturaIE(InfoExtractor):
|
|||||||
(?P<q2>["\'])entry_?[Ii]d(?P=q2)
|
(?P<q2>["\'])entry_?[Ii]d(?P=q2)
|
||||||
)\s*:\s*
|
)\s*:\s*
|
||||||
(?P<q3>["\'])(?P<id>(?:(?!(?P=q3)).)+)(?P=q3)
|
(?P<q3>["\'])(?P<id>(?:(?!(?P=q3)).)+)(?P=q3)
|
||||||
''', webpage))
|
''', webpage) or
|
||||||
|
re.search(
|
||||||
|
# <iframe src="http://www.kaltura.com/p/{PARTNER_ID}/sp/{PARTNER_ID}00/embedIframeJs/uiconf_id/{UICONF_ID}/partner_id/{PARTNER_ID}?iframeembed=true&playerId={UNIQUE_OBJ_ID}&entry_id={ENTRY_ID}" width="400" height="330" allowfullscreen webkitallowfullscreen mozAllowFullScreen frameborder="0"></iframe>
|
||||||
|
r'''(?xs)
|
||||||
|
(?P<q1>["\'])
|
||||||
|
(?:https?:)?//(?:www\.)?kaltura\.com/p/(?P<partner_id>\d+)/
|
||||||
|
(?:(?!(?P=q1)).)*
|
||||||
|
[\?&]entry_id=(?P<id>(?:(?!(?P=q1))[^&])+)
|
||||||
|
(?P=q1)
|
||||||
|
''', webpage)
|
||||||
|
)
|
||||||
if mobj:
|
if mobj:
|
||||||
embed_info = mobj.groupdict()
|
embed_info = mobj.groupdict()
|
||||||
url = 'kaltura:%(partner_id)s:%(id)s' % embed_info
|
url = 'kaltura:%(partner_id)s:%(id)s' % embed_info
|
||||||
@ -140,13 +150,6 @@ class KalturaIE(InfoExtractor):
|
|||||||
url = smuggle_url(url, {'service_url': service_url.group(1)})
|
url = smuggle_url(url, {'service_url': service_url.group(1)})
|
||||||
return url
|
return url
|
||||||
|
|
||||||
# Check for an iframe, which may require redirection.
|
|
||||||
mobj = re.search(
|
|
||||||
r"<iframe[^>]+src=['\"](?P<url>(https?:)?//www\.kaltura\.com/[^'\"]+)['\"]",
|
|
||||||
webpage)
|
|
||||||
if mobj:
|
|
||||||
return mobj.group('url')
|
|
||||||
|
|
||||||
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]
|
||||||
if len(actions) > 1:
|
if len(actions) > 1:
|
||||||
|
Loading…
Reference in New Issue
Block a user