This commit is contained in:
josergdev 2020-10-22 23:55:06 +08:00 committed by GitHub
commit 531b2e3d9b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 6 deletions

View File

@ -13,7 +13,7 @@ from ..utils import (
class AtresPlayerIE(InfoExtractor): class AtresPlayerIE(InfoExtractor):
_VALID_URL = r'https?://(?:www\.)?atresplayer\.com/[^/]+/[^/]+/[^/]+/[^/]+/(?P<display_id>.+?)_(?P<id>[0-9a-f]{24})' _VALID_URL = r'https?://(?:www\.)?atresplayer\.com/[^/]+/[^/]+/[^/]+/(?P<type>.+?)/(?P<display_id>.+?)_(?P<id>[0-9a-f]{24})'
_NETRC_MACHINE = 'atresplayer' _NETRC_MACHINE = 'atresplayer'
_TESTS = [ _TESTS = [
{ {
@ -61,25 +61,29 @@ class AtresPlayerIE(InfoExtractor):
self._API_BASE + 'login', None, 'Downloading login page') self._API_BASE + 'login', None, 'Downloading login page')
try: try:
target_url = self._download_json( response = self._download_json(
'https://account.atresmedia.com/api/login', None, 'https://account.atresmedia.com/api/login', None,
'Logging in', headers={ 'Logging in', headers={
'Content-Type': 'application/x-www-form-urlencoded' 'Content-Type': 'application/x-www-form-urlencoded'
}, data=urlencode_postdata({ }, data=urlencode_postdata({
'username': username, 'username': username,
'password': password, 'password': password,
}))['targetUrl'] }))
target_url = "https://account.atresmedia.com" + response['targetUrl']
except ExtractorError as e: except ExtractorError as e:
self._handle_error(e, 400) self._handle_error(e, 400)
self._request_webpage(target_url, None, 'Following Target URL') self._request_webpage(target_url, None, 'Following Target URL')
def _real_extract(self, url): def _real_extract(self, url):
display_id, video_id = re.match(self._VALID_URL, url).groups() vod_type, display_id, video_id = re.match(self._VALID_URL, url).groups()
if vod_type == 'clips':
vod_url_step = 'player/v1/video/'
else:
vod_url_step = "player/v1/episode/"
try: try:
episode = self._download_json( episode = self._download_json(
self._API_BASE + 'client/v1/player/episode/' + video_id, video_id) self._API_BASE + vod_url_step + video_id, video_id)
except ExtractorError as e: except ExtractorError as e:
self._handle_error(e, 403) self._handle_error(e, 403)