mirror of
https://github.com/yt-dlp/yt-dlp
synced 2025-01-19 07:13:05 +01:00
fix for --trim-file-names bug (#5526)
This commit is contained in:
parent
7cccab79e7
commit
fcafc42927
3 changed files with 16 additions and 7 deletions
|
@ -844,6 +844,15 @@ class TestYoutubeDL(unittest.TestCase):
|
||||||
# test('%(foo|)s.%(ext)s', ('.mp4', '_.mp4')) # fixme
|
# test('%(foo|)s.%(ext)s', ('.mp4', '_.mp4')) # fixme
|
||||||
# test('%(foo|)s', ('', '_')) # fixme
|
# test('%(foo|)s', ('', '_')) # fixme
|
||||||
|
|
||||||
|
# Trim filename
|
||||||
|
test('%(id)s.%(filesize)s.%(ext)s', ('1234.1024.mp4', '123.mp4'), trim_file_name=3)
|
||||||
|
test(
|
||||||
|
'%(id)s.%(filesize)s.%(ext)s',
|
||||||
|
('1234.1024.info.json', '123.info.json'),
|
||||||
|
info=dict(self.outtmpl_info, ext='info.json'), trim_file_name=3
|
||||||
|
)
|
||||||
|
test('12 34.%(filesize)s.%(ext)s', ('12 34.1024.mp4', '12.mp4'), trim_file_name=3)
|
||||||
|
|
||||||
# Environment variable expansion for prepare_filename
|
# Environment variable expansion for prepare_filename
|
||||||
os.environ['__yt_dlp_var'] = 'expanded'
|
os.environ['__yt_dlp_var'] = 'expanded'
|
||||||
envvar = '%__yt_dlp_var%' if compat_os_name == 'nt' else '$__yt_dlp_var'
|
envvar = '%__yt_dlp_var%' if compat_os_name == 'nt' else '$__yt_dlp_var'
|
||||||
|
|
|
@ -1379,6 +1379,12 @@ class YoutubeDL:
|
||||||
if not filename:
|
if not filename:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
trim_file_name = self.params.get('trim_file_name', False)
|
||||||
|
if trim_file_name:
|
||||||
|
# https://github.com/yt-dlp/yt-dlp/issues/5526#issuecomment-1312783517
|
||||||
|
no_ext, *ext = filename.rsplit('.', info_dict.get('ext', '').count('.') + 1)
|
||||||
|
filename = join_nonempty(no_ext[:trim_file_name], *ext, delim='.')
|
||||||
|
|
||||||
if tmpl_type in ('', 'temp'):
|
if tmpl_type in ('', 'temp'):
|
||||||
final_ext, ext = self.params.get('final_ext'), info_dict.get('ext')
|
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}'):
|
if final_ext and ext and final_ext != ext and filename.endswith(f'.{final_ext}'):
|
||||||
|
@ -1388,12 +1394,6 @@ class YoutubeDL:
|
||||||
if force_ext:
|
if force_ext:
|
||||||
filename = replace_extension(filename, force_ext, info_dict.get('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)
|
|
||||||
if trim_file_name:
|
|
||||||
no_ext, *ext = filename.rsplit('.', 2)
|
|
||||||
filename = join_nonempty(no_ext[:trim_file_name], *ext, delim='.')
|
|
||||||
|
|
||||||
return filename
|
return filename
|
||||||
except ValueError as err:
|
except ValueError as err:
|
||||||
self.report_error('Error in output template: ' + str(err) + ' (encoding: ' + repr(preferredencoding()) + ')')
|
self.report_error('Error in output template: ' + str(err) + ' (encoding: ' + repr(preferredencoding()) + ')')
|
||||||
|
|
|
@ -4733,7 +4733,7 @@ def number_of_digits(number):
|
||||||
def join_nonempty(*values, delim='-', from_dict=None):
|
def join_nonempty(*values, delim='-', from_dict=None):
|
||||||
if from_dict is not None:
|
if from_dict is not None:
|
||||||
values = (traversal.traverse_obj(from_dict, variadic(v)) for v in values)
|
values = (traversal.traverse_obj(from_dict, variadic(v)) for v in values)
|
||||||
return delim.join(map(str, filter(None, values)))
|
return delim.join(str(v).strip() for v in values if v)
|
||||||
|
|
||||||
|
|
||||||
def scale_thumbnails_to_max_format_width(formats, thumbnails, url_width_re):
|
def scale_thumbnails_to_max_format_width(formats, thumbnails, url_width_re):
|
||||||
|
|
Loading…
Add table
Reference in a new issue