[outtmpl] Handle hard-coded file extension better

When we know that the user-provided extension is the correct final one,
replace it with intermediate extension during download
This commit is contained in:
pukkandan 2022-02-01 06:18:25 +05:30
parent dbcea0585f
commit 6a0546e313
No known key found for this signature in database
GPG Key ID: 0F00D95A001F4698
1 changed files with 10 additions and 3 deletions

View File

@ -1222,10 +1222,17 @@ class YoutubeDL(object):
try:
outtmpl = self._outtmpl_expandpath(self.outtmpl_dict.get(tmpl_type, self.outtmpl_dict['default']))
filename = self.evaluate_outtmpl(outtmpl, info_dict, True)
if not filename:
return None
force_ext = OUTTMPL_TYPES.get(tmpl_type)
if filename and force_ext is not None:
filename = replace_extension(filename, force_ext, info_dict.get('ext'))
if tmpl_type in ('default', 'temp'):
final_ext, ext = self.params.get('final_ext'), info_dict.get('ext')
if final_ext and ext and final_ext != ext and filename.endswith(f'.{final_ext}'):
filename = replace_extension(filename, ext, final_ext)
else:
force_ext = OUTTMPL_TYPES[tmpl_type]
if force_ext:
filename = replace_extension(filename, force_ext, info_dict.get('ext'))
# https://github.com/blackjack4494/youtube-dlc/issues/85
trim_file_name = self.params.get('trim_file_name', False)