[pluralsight] Fix subtitles extraction (closes #17726, closes #17728)

master-ytdl-org
Sergey M․ 6 years ago
parent 85fa80d5f9
commit 365343131d
No known key found for this signature in database
GPG Key ID: 2C393E0F18A9236D

@ -210,18 +210,26 @@ query viewClip {
raise ExtractorError('Unable to log in') raise ExtractorError('Unable to log in')
def _get_subtitles(self, author, clip_idx, lang, name, duration, video_id): def _get_subtitles(self, author, clip_idx, clip_id, lang, name, duration, video_id):
captions_post = { captions = None
'a': author, if clip_id:
'cn': int(clip_idx), captions = self._download_json(
'lc': lang, '%s/transcript/api/v1/caption/json/%s/%s'
'm': name, % (self._API_BASE, clip_id, lang), video_id,
} 'Downloading captions JSON', 'Unable to download captions JSON',
captions = self._download_json( fatal=False)
'%s/player/retrieve-captions' % self._API_BASE, video_id, if not captions:
'Downloading captions JSON', 'Unable to download captions JSON', captions_post = {
fatal=False, data=json.dumps(captions_post).encode('utf-8'), 'a': author,
headers={'Content-Type': 'application/json;charset=utf-8'}) '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: if captions:
return { return {
lang: [{ lang: [{
@ -413,7 +421,7 @@ query viewClip {
# TODO: other languages? # TODO: other languages?
subtitles = self.extract_subtitles( subtitles = self.extract_subtitles(
author, clip_idx, 'en', name, duration, display_id) author, clip_idx, clip.get('clipId'), 'en', name, duration, display_id)
return { return {
'id': clip_id, 'id': clip_id,

Loading…
Cancel
Save