[extractor/youtube] Parse translated subtitles only when requested

Closes #4274
This commit is contained in:
pukkandan 2022-07-18 04:19:43 +05:30
parent 4f547d6d2c
commit 07b47084ba
No known key found for this signature in database
GPG key ID: 7EEE9E1E817D0A39

View file

@ -3621,6 +3621,9 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
'name': sub_name, 'name': sub_name,
}) })
# NB: Constructing the full subtitle dictionary is slow
get_translated_subs = 'translated_subs' not in self._configuration_arg('skip') and (
self.get_param('writeautomaticsub', False) or self.get_param('listsubtitles'))
subtitles, automatic_captions = {}, {} subtitles, automatic_captions = {}, {}
for lang_code, caption_track in captions.items(): for lang_code, caption_track in captions.items():
base_url = caption_track.get('baseUrl') base_url = caption_track.get('baseUrl')
@ -3640,7 +3643,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
continue continue
orig_trans_code = trans_code orig_trans_code = trans_code
if caption_track.get('kind') != 'asr': if caption_track.get('kind') != 'asr':
if 'translated_subs' in self._configuration_arg('skip'): if not get_translated_subs:
continue continue
trans_code += f'-{lang_code}' trans_code += f'-{lang_code}'
trans_name += format_field(lang_name, None, ' from %s') trans_name += format_field(lang_name, None, ' from %s')