mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2025-06-27 17:08:32 +00:00
Merge 8ec164054e
into 06c1a8cdff
This commit is contained in:
commit
1a2bac358f
@ -315,6 +315,7 @@ def test_prepend_extension(self):
|
|||||||
self.assertEqual(prepend_extension('abc', 'temp'), 'abc.temp')
|
self.assertEqual(prepend_extension('abc', 'temp'), 'abc.temp')
|
||||||
self.assertEqual(prepend_extension('.abc', 'temp'), '.abc.temp')
|
self.assertEqual(prepend_extension('.abc', 'temp'), '.abc.temp')
|
||||||
self.assertEqual(prepend_extension('.abc.ext', 'temp'), '.abc.temp.ext')
|
self.assertEqual(prepend_extension('.abc.ext', 'temp'), '.abc.temp.ext')
|
||||||
|
self.assertEqual(prepend_extension('..ext', 'temp', 'temp', True), '..ext.temp.temp')
|
||||||
|
|
||||||
# Test uncommon extensions
|
# Test uncommon extensions
|
||||||
self.assertEqual(prepend_extension('abc.ext', 'bin'), 'abc.bin.ext')
|
self.assertEqual(prepend_extension('abc.ext', 'bin'), 'abc.bin.ext')
|
||||||
|
@ -3406,7 +3406,8 @@ def existing_video_file(*filepaths):
|
|||||||
file = self.existing_file(itertools.chain(*zip(map(converted, filepaths), filepaths)),
|
file = self.existing_file(itertools.chain(*zip(map(converted, filepaths), filepaths)),
|
||||||
default_overwrite=False)
|
default_overwrite=False)
|
||||||
if file:
|
if file:
|
||||||
info_dict['ext'] = os.path.splitext(file)[1][1:]
|
real_ext = os.path.splitext(file)[1][1:]
|
||||||
|
info_dict['ext'] = real_ext if real_ext else info_dict['ext']
|
||||||
return file
|
return file
|
||||||
|
|
||||||
fd, success = None, True
|
fd, success = None, True
|
||||||
|
@ -706,7 +706,7 @@ def run(self, info):
|
|||||||
self.to_screen('There isn\'t any metadata to add')
|
self.to_screen('There isn\'t any metadata to add')
|
||||||
return [], info
|
return [], info
|
||||||
|
|
||||||
temp_filename = prepend_extension(filename, 'temp')
|
temp_filename = prepend_extension(filename, 'temp', info['ext'], True)
|
||||||
self.to_screen(f'Adding metadata to "{filename}"')
|
self.to_screen(f'Adding metadata to "{filename}"')
|
||||||
self.run_ffmpeg_multiple_files(
|
self.run_ffmpeg_multiple_files(
|
||||||
(filename, metadata_filename), temp_filename,
|
(filename, metadata_filename), temp_filename,
|
||||||
|
@ -2122,7 +2122,7 @@ def parse_duration(s):
|
|||||||
(days, 86400), (hours, 3600), (mins, 60), (secs, 1), (ms, 1)))
|
(days, 86400), (hours, 3600), (mins, 60), (secs, 1), (ms, 1)))
|
||||||
|
|
||||||
|
|
||||||
def _change_extension(prepend, filename, ext, expected_real_ext=None):
|
def _change_extension(prepend, filename, ext, expected_real_ext=None, must_have_ext=False):
|
||||||
name, real_ext = os.path.splitext(filename)
|
name, real_ext = os.path.splitext(filename)
|
||||||
|
|
||||||
if not expected_real_ext or real_ext[1:] == expected_real_ext:
|
if not expected_real_ext or real_ext[1:] == expected_real_ext:
|
||||||
@ -2131,6 +2131,11 @@ def _change_extension(prepend, filename, ext, expected_real_ext=None):
|
|||||||
_UnsafeExtensionError.sanitize_extension(ext, prepend=True)
|
_UnsafeExtensionError.sanitize_extension(ext, prepend=True)
|
||||||
return f'{filename}.{ext}{real_ext}'
|
return f'{filename}.{ext}{real_ext}'
|
||||||
|
|
||||||
|
if not real_ext and must_have_ext and expected_real_ext and prepend:
|
||||||
|
_UnsafeExtensionError.sanitize_extension(ext, prepend=True)
|
||||||
|
_UnsafeExtensionError.sanitize_extension(expected_real_ext)
|
||||||
|
return f'{filename}.{ext}.{expected_real_ext}'
|
||||||
|
|
||||||
return f'{filename}.{_UnsafeExtensionError.sanitize_extension(ext)}'
|
return f'{filename}.{_UnsafeExtensionError.sanitize_extension(ext)}'
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user