From 1e82fe3bfed438732c8735f8612a1e3e34b5f596 Mon Sep 17 00:00:00 2001 From: 7x11x13 Date: Tue, 7 Jan 2025 14:50:44 -0500 Subject: [PATCH] Allow --trim-filenames=0 and update tests --- test/test_YoutubeDL.py | 4 ++-- yt_dlp/YoutubeDL.py | 10 ++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/test/test_YoutubeDL.py b/test/test_YoutubeDL.py index 6b022a7eaa..48164a7b5a 100644 --- a/test/test_YoutubeDL.py +++ b/test/test_YoutubeDL.py @@ -717,7 +717,7 @@ class TestYoutubeDL(unittest.TestCase): ydl._num_downloads = 1 self.assertEqual(ydl.validate_outtmpl(tmpl), None) - out = ydl.evaluate_outtmpl(tmpl, info or self.outtmpl_info) + out = ydl.evaluate_outtmpl_for_filename(tmpl, info or self.outtmpl_info) fname = ydl.prepare_filename(info or self.outtmpl_info) if not isinstance(expected, (list, tuple)): @@ -791,7 +791,7 @@ class TestYoutubeDL(unittest.TestCase): self.assertEqual(got_dict.get(info_field), expected, info_field) return True - test('%()j', (expect_same_infodict, None)) + test('%()j', (expect_same_infodict, None), trim_file_name=0) # NA placeholder NA_TEST_OUTTMPL = '%(uploader_date)s-%(width)d-%(x|def)s-%(id)s.%(ext)s' diff --git a/yt_dlp/YoutubeDL.py b/yt_dlp/YoutubeDL.py index 9b58d80395..54cd2b66ab 100644 --- a/yt_dlp/YoutubeDL.py +++ b/yt_dlp/YoutubeDL.py @@ -1458,10 +1458,16 @@ class YoutubeDL: else: raise ValueError("--trim-filenames must end with 'b' or 'c'") - max_file_name = self.params.get('trim_file_name') or DEFAULT_MAX_FILE_NAME + max_file_name = self.params.get('trim_file_name') + if max_file_name is None: + max_file_name = DEFAULT_MAX_FILE_NAME mode, max_file_name = parse_max_file_name(max_file_name) - if max_file_name < 1: + if max_file_name < 0: raise ValueError('Invalid --trim-filenames specified') + if max_file_name == 0: + # no maximum + return filename + suffix + encoding = self.params.get('filesystem_encoding') or sys.getfilesystemencoding() def trim_filename(name: str, length: int):