From b6dd380f24d75036a7d401650526da37c6c77307 Mon Sep 17 00:00:00 2001 From: dundua Date: Thu, 12 Nov 2015 15:39:13 -0800 Subject: [PATCH] Make sure process_info completes successfully Makes sure that the checks and operations in process_info are completed successfully before adding video to download archive --- youtube_dl/YoutubeDL.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index 0df13be4e..494294fee 100755 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -1330,11 +1330,15 @@ 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))) + download_success = 0 for format in formats_to_download: new_info = dict(info_dict) new_info.update(format) - self.process_info(new_info) - self.record_download_archive(info_dict) + success = self.process_info(new_info) + if success: + download_success += 1 + if download_success == len(formats_to_download): + self.record_download_archive(info_dict) # We update the info dict with the best quality format (backwards compatibility) info_dict.update(formats_to_download[-1]) return info_dict @@ -1650,6 +1654,8 @@ class YoutubeDL(object): except (PostProcessingError) as err: self.report_error('postprocessing: %s' % str(err)) return + + return success def download(self, url_list): """Download a given list of URLs."""