From 23dbe2d07bd2edd41bbe1fd16e691252f1311728 Mon Sep 17 00:00:00 2001 From: Mort Yao Date: Sat, 8 Jul 2017 01:35:16 +0200 Subject: [PATCH] [youtube] fix caption tracks extraction (close #2123) --- src/you_get/extractors/youtube.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/you_get/extractors/youtube.py b/src/you_get/extractors/youtube.py index 8335da9e..986906d6 100644 --- a/src/you_get/extractors/youtube.py +++ b/src/you_get/extractors/youtube.py @@ -224,14 +224,10 @@ class YouTube(VideoExtractor): # Prepare caption tracks try: - caption_tracks = ytplayer_config['args']['caption_tracks'].split(',') + caption_tracks = json.loads(ytplayer_config['args']['player_response'])['captions']['playerCaptionsTracklistRenderer']['captionTracks'] for ct in caption_tracks: - lang = None - for i in ct.split('&'): - [k, v] = i.split('=') - if k == 'lc' and lang is None: lang = v - if k == 'v' and v[0] != '.': lang = v # auto-generated - if k == 'u': ttsurl = parse.unquote_plus(v) + ttsurl, lang = ct['baseUrl'], ct['languageCode'] + tts_xml = parseString(get_content(ttsurl)) transcript = tts_xml.getElementsByTagName('transcript')[0] texts = transcript.getElementsByTagName('text')