From bea7f991b4e5214b5fef1c2f6b2a624557533041 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ram=C3=B3n=20Sola?= Date: Thu, 26 Nov 2020 17:27:50 +0100 Subject: [PATCH] [atresplayer] fix extraction --- youtube_dl/extractor/atresplayer.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/youtube_dl/extractor/atresplayer.py b/youtube_dl/extractor/atresplayer.py index 026541ed3..82a9ad083 100644 --- a/youtube_dl/extractor/atresplayer.py +++ b/youtube_dl/extractor/atresplayer.py @@ -79,9 +79,19 @@ class AtresPlayerIE(InfoExtractor): def _real_extract(self, url): display_id, video_id = re.match(self._VALID_URL, url).groups() + page = self._download_webpage(url, video_id, 'Downloading video page') + preloaded_state_regex = r'window\.__PRELOADED_STATE__\s*=\s*(\{(.*?)\});' + preloaded_state_text = self._html_search_regex(preloaded_state_regex, page, 'preloaded state') + preloaded_state = self._parse_json(preloaded_state_text, video_id) + link_info = next(iter(preloaded_state['links'].values())) + try: - episode = self._download_json( - self._API_BASE + 'client/v1/player/episode/' + video_id, video_id) + metadata = self._download_json(link_info['href'], video_id) + except ExtractorError as e: + self._handle_error(e, 403) + + try: + episode = self._download_json(metadata['urlVideo'], video_id) except ExtractorError as e: self._handle_error(e, 403)