Merge remote-tracking branch 'jaimeMF/load-info'
[youtube-dl] / youtube_dl / YoutubeDL.py
index 17b3827f26a6ad966a70d41896b7a9b782889c1b..79d5c7e5eb76087c77dbe523450c0da653868ea8 100644 (file)
@@ -882,6 +882,21 @@ class YoutubeDL(object):
 
         return self._download_retcode
 
+    def download_with_info_file(self, info_filename):
+        with open(info_filename, 'r') as f:
+            # TODO: Check for errors
+            info = json.load(f)
+        try:
+            self.process_ie_result(info, download=True)
+        except DownloadError:
+            webpage_url = info.get('webpage_url')
+            if webpage_url is not None:
+                self.report_warning(u'The info failed to download, trying with "%s"' % webpage_url)
+                return self.download([webpage_url])
+            else:
+                raise
+        return self._download_retcode
+
     def post_process(self, filename, ie_info):
         """Run all the postprocessors on the given file."""
         info = dict(ie_info)