Option '--load-info': if the download fails, try extracting the info with the 'webpage_url' field of the info dict

The video url may have expired.
This commit is contained in:
Jaime Marquínez Ferrándiz 2013-12-03 20:16:52 +01:00
parent 1dcc4c0cad
commit d494389821

View File

@ -816,7 +816,16 @@ class YoutubeDL(object):
with open(info_filename, 'r') as f: with open(info_filename, 'r') as f:
# TODO: Check for errors # TODO: Check for errors
info = json.load(f) info = json.load(f)
self.process_ie_result(info, download=True) 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."""