|
|
|
@ -10,8 +10,8 @@ class CloudflareStreamIE(InfoExtractor):
|
|
|
|
|
_VALID_URL = r'''(?x)
|
|
|
|
|
https?://
|
|
|
|
|
(?:
|
|
|
|
|
(?:watch\.)?cloudflarestream\.com/|
|
|
|
|
|
embed\.cloudflarestream\.com/embed/[^/]+\.js\?.*?\bvideo=
|
|
|
|
|
(?:watch\.)?(?:cloudflarestream\.com|videodelivery\.net)/|
|
|
|
|
|
embed\.(?:cloudflarestream\.com|videodelivery\.net)/embed/[^/]+\.js\?.*?\bvideo=
|
|
|
|
|
)
|
|
|
|
|
(?P<id>[\da-f]+)
|
|
|
|
|
'''
|
|
|
|
@ -31,6 +31,9 @@ class CloudflareStreamIE(InfoExtractor):
|
|
|
|
|
}, {
|
|
|
|
|
'url': 'https://cloudflarestream.com/31c9291ab41fac05471db4e73aa11717/manifest/video.mpd',
|
|
|
|
|
'only_matching': True,
|
|
|
|
|
}, {
|
|
|
|
|
'url': 'https://embed.videodelivery.net/embed/r4xu.fla9.latest.js?video=81d80727f3022488598f68d323c1ad5e',
|
|
|
|
|
'only_matching': True,
|
|
|
|
|
}]
|
|
|
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
@ -38,7 +41,7 @@ class CloudflareStreamIE(InfoExtractor):
|
|
|
|
|
return [
|
|
|
|
|
mobj.group('url')
|
|
|
|
|
for mobj in re.finditer(
|
|
|
|
|
r'<script[^>]+\bsrc=(["\'])(?P<url>(?:https?:)?//embed\.cloudflarestream\.com/embed/[^/]+\.js\?.*?\bvideo=[\da-f]+?.*?)\1',
|
|
|
|
|
r'<script[^>]+\bsrc=(["\'])(?P<url>(?:https?:)?//embed\.(?:cloudflarestream\.com|videodelivery\.net)/embed/[^/]+\.js\?.*?\bvideo=[\da-f]+?.*?)\1',
|
|
|
|
|
webpage)]
|
|
|
|
|
|
|
|
|
|
def _real_extract(self, url):
|
|
|
|
|