mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-04 15:33:16 +00:00
[nexx] handle result list(closes #22666)
This commit is contained in:
parent
a1ee23e98f
commit
7e05df71b7
|
@ -295,13 +295,23 @@ def _real_extract(self, url):
|
||||||
|
|
||||||
video = None
|
video = None
|
||||||
|
|
||||||
|
def find_video(result):
|
||||||
|
if isinstance(result, dict):
|
||||||
|
return result
|
||||||
|
elif isinstance(result, list):
|
||||||
|
vid = int(video_id)
|
||||||
|
for v in result:
|
||||||
|
if try_get(v, lambda x: x['general']['ID'], int) == vid:
|
||||||
|
return v
|
||||||
|
return None
|
||||||
|
|
||||||
response = self._download_json(
|
response = self._download_json(
|
||||||
'https://arc.nexx.cloud/api/video/%s.json' % video_id,
|
'https://arc.nexx.cloud/api/video/%s.json' % video_id,
|
||||||
video_id, fatal=False)
|
video_id, fatal=False)
|
||||||
if response and isinstance(response, dict):
|
if response and isinstance(response, dict):
|
||||||
result = response.get('result')
|
result = response.get('result')
|
||||||
if result and isinstance(result, dict):
|
if result:
|
||||||
video = result
|
video = find_video(result)
|
||||||
|
|
||||||
# not all videos work via arc, e.g. nexx:741:1269984
|
# not all videos work via arc, e.g. nexx:741:1269984
|
||||||
if not video:
|
if not video:
|
||||||
|
@ -348,7 +358,7 @@ def _real_extract(self, url):
|
||||||
request_token = hashlib.md5(
|
request_token = hashlib.md5(
|
||||||
''.join((op, domain_id, secret)).encode('utf-8')).hexdigest()
|
''.join((op, domain_id, secret)).encode('utf-8')).hexdigest()
|
||||||
|
|
||||||
video = self._call_api(
|
result = self._call_api(
|
||||||
domain_id, 'videos/%s/%s' % (op, video_id), video_id, data={
|
domain_id, 'videos/%s/%s' % (op, video_id), video_id, data={
|
||||||
'additionalfields': 'language,channel,actors,studio,licenseby,slug,subtitle,teaser,description',
|
'additionalfields': 'language,channel,actors,studio,licenseby,slug,subtitle,teaser,description',
|
||||||
'addInteractionOptions': '1',
|
'addInteractionOptions': '1',
|
||||||
|
@ -363,6 +373,7 @@ def _real_extract(self, url):
|
||||||
'X-Request-CID': cid,
|
'X-Request-CID': cid,
|
||||||
'X-Request-Token': request_token,
|
'X-Request-Token': request_token,
|
||||||
})
|
})
|
||||||
|
video = find_video(result)
|
||||||
|
|
||||||
general = video['general']
|
general = video['general']
|
||||||
title = general['title']
|
title = general['title']
|
||||||
|
|
Loading…
Reference in a new issue