Compare commits

...

3 Commits

Author SHA1 Message Date
Zil0 d59258cb95
Merge 0948f25c26 into 40bd5c1815 2024-02-23 15:46:44 +00:00
Zil0 0948f25c26 Save transitional filenames if keepvideo is set 2017-07-23 22:52:49 +02:00
Zil0 c5a0627b96 [YoutubeDL] Add filenames key in info_dict 2017-07-23 14:25:35 +02:00
1 changed files with 18 additions and 8 deletions

View File

@ -1829,10 +1829,13 @@ class YoutubeDL(object):
if download:
if len(formats_to_download) > 1:
self.to_screen('[info] %s: downloading video in %s formats' % (info_dict['id'], len(formats_to_download)))
filenames = []
for format in formats_to_download:
new_info = dict(info_dict)
new_info.update(format)
self.process_info(new_info)
filenames.append(new_info.get('_filename'))
info_dict['filenames'] = filenames
# We update the info dict with the best quality format (backwards compatibility)
info_dict.update(formats_to_download[-1])
return info_dict
@ -2099,7 +2102,7 @@ class YoutubeDL(object):
self.report_warning(
'Requested formats are incompatible for merge and will be merged into mkv.')
# Ensure filename always has a correct extension for successful merge
filename = '%s.%s' % (filename_wo_ext, info_dict['ext'])
info_dict['_filename'] = filename = '%s.%s' % (filename_wo_ext, info_dict['ext'])
if os.path.exists(encodeFilename(filename)):
self.to_screen(
'[download] %s has already been downloaded and '
@ -2282,19 +2285,26 @@ class YoutubeDL(object):
if ie_info.get('__postprocessors') is not None:
pps_chain.extend(ie_info['__postprocessors'])
pps_chain.extend(self._pps)
filepaths = []
for pp in pps_chain:
files_to_delete = []
try:
files_to_delete, info = pp.run(info)
except PostProcessingError as e:
self.report_error(e.msg)
if files_to_delete and not self.params.get('keepvideo', False):
for old_filename in files_to_delete:
self.to_screen('Deleting original file %s (pass -k to keep)' % old_filename)
try:
os.remove(encodeFilename(old_filename))
except (IOError, OSError):
self.report_warning('Unable to remove downloaded original file')
if files_to_delete:
if self.params.get('keepvideo'):
filepaths.extend(files_to_delete)
else:
for old_filename in files_to_delete:
self.to_screen('Deleting original file %s (pass -k to keep)' % old_filename)
try:
os.remove(encodeFilename(old_filename))
except (IOError, OSError):
self.report_warning('Unable to remove downloaded original file')
if info.get('filepath'):
filepaths.append(info['filepath'])
ie_info['_filename'] = filepaths or filename
def _make_archive_id(self, info_dict):
video_id = info_dict.get('id')