aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRemita Amine <remitamine@gmail.com>2019-10-15 00:10:22 +0100
committerRemita Amine <remitamine@gmail.com>2019-10-15 00:10:22 +0100
commit7e05df71b7d8c0e1ea9beafff48275ef3c9e27d2 (patch)
treed8bad4c2d5e180dc847f9b1dc6f19685ae2aa97d
parenta1ee23e98fe2ec80b8726829927fcae1267e76b1 (diff)
downloadyoutube-dl-7e05df71b7d8c0e1ea9beafff48275ef3c9e27d2.tar.xz
[nexx] handle result list(closes #22666)
-rw-r--r--youtube_dl/extractor/nexx.py17
1 files changed, 14 insertions, 3 deletions
diff --git a/youtube_dl/extractor/nexx.py b/youtube_dl/extractor/nexx.py
index 82d526c22..f9aad83c4 100644
--- a/youtube_dl/extractor/nexx.py
+++ b/youtube_dl/extractor/nexx.py
@@ -295,13 +295,23 @@ class NexxIE(InfoExtractor):
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(
'https://arc.nexx.cloud/api/video/%s.json' % video_id,
video_id, fatal=False)
if response and isinstance(response, dict):
result = response.get('result')
- if result and isinstance(result, dict):
- video = result
+ if result:
+ video = find_video(result)
# not all videos work via arc, e.g. nexx:741:1269984
if not video:
@@ -348,7 +358,7 @@ class NexxIE(InfoExtractor):
request_token = hashlib.md5(
''.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={
'additionalfields': 'language,channel,actors,studio,licenseby,slug,subtitle,teaser,description',
'addInteractionOptions': '1',
@@ -363,6 +373,7 @@ class NexxIE(InfoExtractor):
'X-Request-CID': cid,
'X-Request-Token': request_token,
})
+ video = find_video(result)
general = video['general']
title = general['title']