|
@ -10,6 +10,7 @@ from ..compat import compat_urlparse |
|
|
from ..utils import ( |
|
|
from ..utils import ( |
|
|
float_or_none, |
|
|
float_or_none, |
|
|
remove_end, |
|
|
remove_end, |
|
|
|
|
|
std_headers, |
|
|
struct_unpack, |
|
|
struct_unpack, |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
@ -84,13 +85,20 @@ class RTVEALaCartaIE(InfoExtractor): |
|
|
'only_matching': True, |
|
|
'only_matching': True, |
|
|
}] |
|
|
}] |
|
|
|
|
|
|
|
|
|
|
|
def _real_initialize(self): |
|
|
|
|
|
user_agent_b64 = base64.b64encode(std_headers['User-Agent'].encode('utf-8')).decode('utf-8') |
|
|
|
|
|
manager_info = self._download_json( |
|
|
|
|
|
'http://www.rtve.es/odin/loki/' + user_agent_b64, |
|
|
|
|
|
None, 'Fetching manager info') |
|
|
|
|
|
self._manager = manager_info['manager'] |
|
|
|
|
|
|
|
|
def _real_extract(self, url): |
|
|
def _real_extract(self, url): |
|
|
mobj = re.match(self._VALID_URL, url) |
|
|
mobj = re.match(self._VALID_URL, url) |
|
|
video_id = mobj.group('id') |
|
|
video_id = mobj.group('id') |
|
|
info = self._download_json( |
|
|
info = self._download_json( |
|
|
'http://www.rtve.es/api/videos/%s/config/alacarta_videos.json' % video_id, |
|
|
'http://www.rtve.es/api/videos/%s/config/alacarta_videos.json' % video_id, |
|
|
video_id)['page']['items'][0] |
|
|
video_id)['page']['items'][0] |
|
|
png_url = 'http://www.rtve.es/ztnr/movil/thumbnail/default/videos/%s.png' % video_id |
|
|
|
|
|
|
|
|
png_url = 'http://www.rtve.es/ztnr/movil/thumbnail/%s/videos/%s.png' % (self._manager, video_id) |
|
|
png = self._download_webpage(png_url, video_id, 'Downloading url information') |
|
|
png = self._download_webpage(png_url, video_id, 'Downloading url information') |
|
|
video_url = _decrypt_url(png) |
|
|
video_url = _decrypt_url(png) |
|
|
if not video_url.endswith('.f4m'): |
|
|
if not video_url.endswith('.f4m'): |
|
|