From f36c8a726fe5ccc7b97e1b40dee7237fca35c847 Mon Sep 17 00:00:00 2001 From: Florentin Le Moal Date: Fri, 1 Nov 2024 12:10:29 +0100 Subject: [PATCH] Fixed AtresPlayer extractor --- yt_dlp/extractor/atresplayer.py | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/yt_dlp/extractor/atresplayer.py b/yt_dlp/extractor/atresplayer.py index 0fe95bec5c..9e3123ed76 100644 --- a/yt_dlp/extractor/atresplayer.py +++ b/yt_dlp/extractor/atresplayer.py @@ -34,31 +34,24 @@ class AtresPlayerIE(InfoExtractor): _API_BASE = 'https://api.atresplayer.com/' def _perform_login(self, username, password): - self._request_webpage( - self._API_BASE + 'login', None, 'Downloading login page') - try: - target_url = self._download_json( - 'https://account.atresmedia.com/api/login', None, - 'Logging in', headers={ - 'Content-Type': 'application/x-www-form-urlencoded', - }, data=urlencode_postdata({ + self._download_webpage( + 'https://account.atresplayer.com/auth/v1/login', None, + 'Logging in', data=urlencode_postdata({ 'username': username, 'password': password, - }))['targetUrl'] + })) except ExtractorError as e: if isinstance(e.cause, HTTPError) and e.cause.status == 400: raise ExtractorError('Invalid username and/or password', expected=True) raise - self._request_webpage(target_url, None, 'Following Target URL') - def _real_extract(self, url): display_id, video_id = self._match_valid_url(url).groups() try: episode = self._download_json( - self._API_BASE + 'client/v1/player/episode/' + video_id, video_id) + self._API_BASE + 'player/v1/episode/' + video_id, video_id) except ExtractorError as e: if isinstance(e.cause, HTTPError) and e.cause.status == 403: error = self._parse_json(e.cause.response.read(), None) @@ -77,11 +70,11 @@ def _real_extract(self, url): continue src_type = source.get('type') if src_type == 'application/vnd.apple.mpegurl': - formats, subtitles = self._extract_m3u8_formats( + formats = self._extract_m3u8_formats( src, video_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False) elif src_type == 'application/dash+xml': - formats, subtitles = self._extract_mpd_formats( + formats = self._extract_mpd_formats( src, video_id, mpd_id='dash', fatal=False) heartbeat = episode.get('heartbeat') or {}