[youtube] Fix automatic captions

Closes #2956
This commit is contained in:
pukkandan 2022-03-05 09:38:03 +05:30
parent bed30106f5
commit d49669acad
No known key found for this signature in database
GPG key ID: 7EEE9E1E817D0A39

View file

@ -3410,11 +3410,16 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
if caption_track.get('kind') != 'asr': if caption_track.get('kind') != 'asr':
trans_code += f'-{lang_code}' trans_code += f'-{lang_code}'
trans_name += format_field(lang_name, template=' from %s') trans_name += format_field(lang_name, template=' from %s')
process_language( # Add an "-orig" label to the original language so that it can be distinguished.
automatic_captions, base_url, trans_code, trans_name, {'tlang': trans_code}) # The subs are returned without "-orig" as well for compatibility
if lang_code == f'a-{trans_code}': if lang_code == f'a-{trans_code}':
process_language( process_language(
automatic_captions, base_url, f'{trans_code}-orig', f'{trans_name} (Original)', {'tlang': trans_code}) automatic_captions, base_url, f'{trans_code}-orig', f'{trans_name} (Original)', {})
# Setting tlang=lang returns damaged subtitles.
# Not using lang_code == f'a-{trans_code}' here for future-proofing
orig_lang = parse_qs(base_url).get('lang', [None])[-1]
process_language(automatic_captions, base_url, trans_code, trans_name,
{} if orig_lang == trans_code else {'tlang': trans_code})
info['automatic_captions'] = automatic_captions info['automatic_captions'] = automatic_captions
info['subtitles'] = subtitles info['subtitles'] = subtitles