mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-04 08:47:06 -05:00 
			
		
		
		
	Merge remote-tracking branch 'jaimeMF/load-info'
This commit is contained in:
		@@ -882,6 +882,21 @@ class YoutubeDL(object):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        return self._download_retcode
 | 
					        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):
 | 
					    def post_process(self, filename, ie_info):
 | 
				
			||||||
        """Run all the postprocessors on the given file."""
 | 
					        """Run all the postprocessors on the given file."""
 | 
				
			||||||
        info = dict(ie_info)
 | 
					        info = dict(ie_info)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -363,6 +363,9 @@ def parseOpts(overrideArguments=None):
 | 
				
			|||||||
            help='Restrict filenames to only ASCII characters, and avoid "&" and spaces in filenames', default=False)
 | 
					            help='Restrict filenames to only ASCII characters, and avoid "&" and spaces in filenames', default=False)
 | 
				
			||||||
    filesystem.add_option('-a', '--batch-file',
 | 
					    filesystem.add_option('-a', '--batch-file',
 | 
				
			||||||
            dest='batchfile', metavar='FILE', help='file containing URLs to download (\'-\' for stdin)')
 | 
					            dest='batchfile', metavar='FILE', help='file containing URLs to download (\'-\' for stdin)')
 | 
				
			||||||
 | 
					    filesystem.add_option('--load-info',
 | 
				
			||||||
 | 
					            dest='load_info_filename', metavar='FILE',
 | 
				
			||||||
 | 
					            help='json file containing the video information (created with the "--write-json" option')
 | 
				
			||||||
    filesystem.add_option('-w', '--no-overwrites',
 | 
					    filesystem.add_option('-w', '--no-overwrites',
 | 
				
			||||||
            action='store_true', dest='nooverwrites', help='do not overwrite files', default=False)
 | 
					            action='store_true', dest='nooverwrites', help='do not overwrite files', default=False)
 | 
				
			||||||
    filesystem.add_option('-c', '--continue',
 | 
					    filesystem.add_option('-c', '--continue',
 | 
				
			||||||
@@ -710,14 +713,17 @@ def _real_main(argv=None):
 | 
				
			|||||||
            update_self(ydl.to_screen, opts.verbose)
 | 
					            update_self(ydl.to_screen, opts.verbose)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Maybe do nothing
 | 
					        # Maybe do nothing
 | 
				
			||||||
        if len(all_urls) < 1:
 | 
					        if (len(all_urls) < 1) and (opts.load_info_filename is None):
 | 
				
			||||||
            if not opts.update_self:
 | 
					            if not opts.update_self:
 | 
				
			||||||
                parser.error(u'you must provide at least one URL')
 | 
					                parser.error(u'you must provide at least one URL')
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                sys.exit()
 | 
					                sys.exit()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            retcode = ydl.download(all_urls)
 | 
					            if opts.load_info_filename is not None:
 | 
				
			||||||
 | 
					                retcode = ydl.download_with_info_file(opts.load_info_filename)
 | 
				
			||||||
 | 
					            else:
 | 
				
			||||||
 | 
					                retcode = ydl.download(all_urls)
 | 
				
			||||||
        except MaxDownloadsReached:
 | 
					        except MaxDownloadsReached:
 | 
				
			||||||
            ydl.to_screen(u'--max-download limit reached, aborting.')
 | 
					            ydl.to_screen(u'--max-download limit reached, aborting.')
 | 
				
			||||||
            retcode = 101
 | 
					            retcode = 101
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user