diff --git a/yt_dlp/YoutubeDL.py b/yt_dlp/YoutubeDL.py index 9f730d038..c03415418 100644 --- a/yt_dlp/YoutubeDL.py +++ b/yt_dlp/YoutubeDL.py @@ -3574,13 +3574,10 @@ class YoutubeDL: return self._download_retcode - def download_with_info_file(self, info_filename): - with contextlib.closing(fileinput.FileInput( - [info_filename], mode='r', - openhook=fileinput.hook_encoded('utf-8'))) as f: - # FileInput doesn't have a read method, we can't call json.load - infos = [self.sanitize_info(info, self.params.get('clean_infojson', True)) - for info in variadic(json.loads('\n'.join(f)))] + def download_with_info(self, *info_list): + """Download using already extracted info_dicts.""" + infos = [self.sanitize_info(info, self.params.get('clean_infojson', True)) + for info in info_list] for info in infos: try: self.__download_wrapper(self.process_ie_result)(info, download=True) @@ -3596,6 +3593,15 @@ class YoutubeDL: self.report_error(e) return self._download_retcode + def download_with_info_file(self, info_filename): + """Download using an info file.""" + with contextlib.closing(fileinput.FileInput( + [info_filename], mode='r', + openhook=fileinput.hook_encoded('utf-8'))) as f: + # FileInput doesn't have a read method, we can't call json.load + infos = [info for info in variadic(json.loads('\n'.join(f)))] + return self.download_with_info(infos) + @staticmethod def sanitize_info(info_dict, remove_private_keys=False): ''' Sanitize the infodict for converting to json '''