diff options
| -rw-r--r-- | youtube_dl/extractor/pluralsight.py | 34 | 
1 files changed, 21 insertions, 13 deletions
| diff --git a/youtube_dl/extractor/pluralsight.py b/youtube_dl/extractor/pluralsight.py index ec67381bb..daf172570 100644 --- a/youtube_dl/extractor/pluralsight.py +++ b/youtube_dl/extractor/pluralsight.py @@ -210,18 +210,26 @@ query viewClip {              raise ExtractorError('Unable to log in') -    def _get_subtitles(self, author, clip_idx, lang, name, duration, video_id): -        captions_post = { -            'a': author, -            'cn': int(clip_idx), -            'lc': lang, -            'm': name, -        } -        captions = self._download_json( -            '%s/player/retrieve-captions' % self._API_BASE, video_id, -            'Downloading captions JSON', 'Unable to download captions JSON', -            fatal=False, data=json.dumps(captions_post).encode('utf-8'), -            headers={'Content-Type': 'application/json;charset=utf-8'}) +    def _get_subtitles(self, author, clip_idx, clip_id, lang, name, duration, video_id): +        captions = None +        if clip_id: +            captions = self._download_json( +                '%s/transcript/api/v1/caption/json/%s/%s' +                % (self._API_BASE, clip_id, lang), video_id, +                'Downloading captions JSON', 'Unable to download captions JSON', +                fatal=False) +        if not captions: +            captions_post = { +                'a': author, +                'cn': int(clip_idx), +                'lc': lang, +                'm': name, +            } +            captions = self._download_json( +                '%s/player/retrieve-captions' % self._API_BASE, video_id, +                'Downloading captions JSON', 'Unable to download captions JSON', +                fatal=False, data=json.dumps(captions_post).encode('utf-8'), +                headers={'Content-Type': 'application/json;charset=utf-8'})          if captions:              return {                  lang: [{ @@ -413,7 +421,7 @@ query viewClip {          # TODO: other languages?          subtitles = self.extract_subtitles( -            author, clip_idx, 'en', name, duration, display_id) +            author, clip_idx, clip.get('clipId'), 'en', name, duration, display_id)          return {              'id': clip_id, | 
