aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpukkandan <pukkandan.ytdlp@gmail.com>2023-03-10 14:12:08 +0530
committerpukkandan <pukkandan.ytdlp@gmail.com>2023-03-10 14:15:13 +0530
commitab1de9cb1e39cf421c2b7dc6756c6ff1955bb313 (patch)
tree2d275cae8bd66af029af80586f42c126de826893
parent871c907454693940cb56906ed9ea49fcb7154829 (diff)
downloadhypervideo-pre-ab1de9cb1e39cf421c2b7dc6756c6ff1955bb313.tar.lz
hypervideo-pre-ab1de9cb1e39cf421c2b7dc6756c6ff1955bb313.tar.xz
hypervideo-pre-ab1de9cb1e39cf421c2b7dc6756c6ff1955bb313.zip
Support loading info.json with a list at it's root
-rw-r--r--yt_dlp/YoutubeDL.py23
-rw-r--r--yt_dlp/__init__.py2
2 files changed, 14 insertions, 11 deletions
diff --git a/yt_dlp/YoutubeDL.py b/yt_dlp/YoutubeDL.py
index f701738c9..a7dced8e8 100644
--- a/yt_dlp/YoutubeDL.py
+++ b/yt_dlp/YoutubeDL.py
@@ -3376,18 +3376,19 @@ class YoutubeDL:
[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
- info = self.sanitize_info(json.loads('\n'.join(f)), self.params.get('clean_infojson', True))
- try:
- self.__download_wrapper(self.process_ie_result)(info, download=True)
- except (DownloadError, EntryNotInPlaylist, ReExtractInfo) as e:
- if not isinstance(e, EntryNotInPlaylist):
- self.to_stderr('\r')
- webpage_url = info.get('webpage_url')
- if webpage_url is not None:
+ infos = [self.sanitize_info(info, self.params.get('clean_infojson', True))
+ for info in variadic(json.loads('\n'.join(f)))]
+ for info in infos:
+ try:
+ self.__download_wrapper(self.process_ie_result)(info, download=True)
+ except (DownloadError, EntryNotInPlaylist, ReExtractInfo) as e:
+ if not isinstance(e, EntryNotInPlaylist):
+ self.to_stderr('\r')
+ webpage_url = info.get('webpage_url')
+ if webpage_url is None:
+ raise
self.report_warning(f'The info failed to download: {e}; trying with URL {webpage_url}')
- return self.download([webpage_url])
- else:
- raise
+ self.download([webpage_url])
return self._download_retcode
@staticmethod
diff --git a/yt_dlp/__init__.py b/yt_dlp/__init__.py
index 9ef31601c..bdac1212c 100644
--- a/yt_dlp/__init__.py
+++ b/yt_dlp/__init__.py
@@ -952,6 +952,8 @@ def _real_main(argv=None):
parser.destroy()
try:
if opts.load_info_filename is not None:
+ if all_urls:
+ ydl.report_warning('URLs are ignored due to --load-info-json')
return ydl.download_with_info_file(expand_path(opts.load_info_filename))
else:
return ydl.download(all_urls)