|
@ -9,6 +9,7 @@ from ..utils import ( |
|
|
determine_ext, |
|
|
determine_ext, |
|
|
float_or_none, |
|
|
float_or_none, |
|
|
int_or_none, |
|
|
int_or_none, |
|
|
|
|
|
js_to_json, |
|
|
mimetype2ext, |
|
|
mimetype2ext, |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
@ -19,14 +20,15 @@ class JWPlatformBaseIE(InfoExtractor): |
|
|
# TODO: Merge this with JWPlayer-related codes in generic.py |
|
|
# TODO: Merge this with JWPlayer-related codes in generic.py |
|
|
|
|
|
|
|
|
mobj = re.search( |
|
|
mobj = re.search( |
|
|
'jwplayer\((?P<quote>[\'"])[^\'" ]+(?P=quote)\)\.setup\((?P<options>[^)]+)\)', |
|
|
|
|
|
|
|
|
r'jwplayer\((?P<quote>[\'"])[^\'" ]+(?P=quote)\)\.setup\s*\((?P<options>[^)]+)\)', |
|
|
webpage) |
|
|
webpage) |
|
|
if mobj: |
|
|
if mobj: |
|
|
return mobj.group('options') |
|
|
return mobj.group('options') |
|
|
|
|
|
|
|
|
def _extract_jwplayer_data(self, webpage, video_id, *args, **kwargs): |
|
|
def _extract_jwplayer_data(self, webpage, video_id, *args, **kwargs): |
|
|
jwplayer_data = self._parse_json( |
|
|
jwplayer_data = self._parse_json( |
|
|
self._find_jwplayer_data(webpage), video_id) |
|
|
|
|
|
|
|
|
self._find_jwplayer_data(webpage), video_id, |
|
|
|
|
|
transform_source=js_to_json) |
|
|
return self._parse_jwplayer_data( |
|
|
return self._parse_jwplayer_data( |
|
|
jwplayer_data, video_id, *args, **kwargs) |
|
|
jwplayer_data, video_id, *args, **kwargs) |
|
|
|
|
|
|
|
|