diff options
author | Robin Dunn <> | 2020-11-09 15:24:42 -0800 |
---|---|---|
committer | Robin Dunn <> | 2020-11-09 15:24:42 -0800 |
commit | 142f2c8e99e61054d3354bd915a9e46cbd80c8ea (patch) | |
tree | 0daee7e4f99858914a4387b2d4909fb3f682978b | |
parent | 651bae3d231640fa9389d4e8d24412ad75f01843 (diff) | |
download | hypervideo-pre-142f2c8e99e61054d3354bd915a9e46cbd80c8ea.tar.lz hypervideo-pre-142f2c8e99e61054d3354bd915a9e46cbd80c8ea.tar.xz hypervideo-pre-142f2c8e99e61054d3354bd915a9e46cbd80c8ea.zip |
fall-back to the old way to fetch subtitles, if needed
-rw-r--r-- | youtube_dlc/extractor/viki.py | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/youtube_dlc/extractor/viki.py b/youtube_dlc/extractor/viki.py index 0f188f84d..6bddf8be9 100644 --- a/youtube_dlc/extractor/viki.py +++ b/youtube_dlc/extractor/viki.py @@ -308,17 +308,26 @@ class VikiIE(VikiBaseIE): 'url': thumbnail.get('url'), }) - new_video = self._download_json( - 'https://www.viki.com/api/videos/%s' % video_id, video_id, - 'Downloading new video JSON to get subtitles', headers={'x-viki-app-ver': '2.2.5.1428709186'}, expected_status=[200, 400, 404]) - subtitles = {} - for sub in new_video.get('streamSubtitles').get('dash'): - subtitles[sub.get('srclang')] = [{ - 'ext': 'vtt', - 'url': sub.get('src'), - 'completion': sub.get('percentage'), - }] + try: + # New way to fetch subtitles + new_video = self._download_json( + 'https://www.viki.com/api/videos/%s' % video_id, video_id, + 'Downloading new video JSON to get subtitles', headers={'x-viki-app-ver': '2.2.5.1428709186'}, expected_status=[200, 400, 404]) + for sub in new_video.get('streamSubtitles').get('dash'): + subtitles[sub.get('srclang')] = [{ + 'ext': 'vtt', + 'url': sub.get('src'), + 'completion': sub.get('percentage'), + }] + except AttributeError: + # fall-back to the old way if there isn't a streamSubtitles attribute + for subtitle_lang, _ in video.get('subtitle_completions', {}).items(): + subtitles[subtitle_lang] = [{ + 'ext': subtitles_format, + 'url': self._prepare_call( + 'videos/%s/subtitles/%s.%s' % (video_id, subtitle_lang, subtitles_format)), + } for subtitles_format in ('srt', 'vtt')] result = { 'id': video_id, |