From 48c8424bd9e03fdfd5c4c4495de233e896eb1f16 Mon Sep 17 00:00:00 2001 From: pukkandan Date: Tue, 6 Sep 2022 19:56:56 +0530 Subject: [PATCH] Fix bug in 07a1250e0e90515ff8142161536f9dafa6eaba1b --- yt_dlp/YoutubeDL.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/yt_dlp/YoutubeDL.py b/yt_dlp/YoutubeDL.py index 58c5c47501..99db8be923 100644 --- a/yt_dlp/YoutubeDL.py +++ b/yt_dlp/YoutubeDL.py @@ -2813,13 +2813,16 @@ def _forceprint(self, key, info_dict): info_copy['automatic_captions_table'] = self.render_subtitles_table(info_dict.get('id'), info_dict.get('automatic_captions')) def format_tmpl(tmpl): - mobj = re.fullmatch(r'([\w.:,-]|(?P{[\w.:,-]+}))+=', tmpl) + mobj = re.fullmatch(r'([\w.:,]|-\d|(?P{([\w.:,]|-\d)+}))+=?', tmpl) if not mobj: return tmpl - elif not mobj.group('dict'): - return '\n'.join(f'{f} = %({f})r' for f in tmpl[:-1].split(',')) - tmpl = f'.{tmpl[:-1]}' if tmpl.startswith('{') else tmpl[:-1] - return f'{tmpl} = %({tmpl})#j' + + fmt = '%({})s' + if tmpl.startswith('{'): + tmpl = f'.{tmpl}' + if tmpl.endswith('='): + tmpl, fmt = tmpl[:-1], '{0} = %({0})#j' + return '\n'.join(map(fmt.format, [tmpl] if mobj.group('dict') else tmpl.split(','))) for tmpl in self.params['forceprint'].get(key, []): self.to_stdout(self.evaluate_outtmpl(format_tmpl(tmpl), info_copy))