Retry thumbnail download on network errors

This commit is contained in:
ClosedPort22 2023-09-21 17:05:49 +09:00
parent 9d6254069c
commit 2778499143
No known key found for this signature in database

View file

@ -4260,13 +4260,12 @@ def _write_thumbnails(self, label, info_dict, filename, thumb_filename_base=None
else: else:
self.to_screen(f'[info] Downloading {thumb_display_id} ...') self.to_screen(f'[info] Downloading {thumb_display_id} ...')
try: try:
uf = self.urlopen(Request(t['url'], headers=t.get('http_headers', {}))) thumb_copy = t.copy()
self.to_screen(f'[info] Writing {thumb_display_id} to: {thumb_filename}') self.to_screen(f'[info] Writing {thumb_display_id} to: {thumb_filename}')
with open(encodeFilename(thumb_filename), 'wb') as thumbf: self.dl(thumb_filename, thumb_copy)
shutil.copyfileobj(uf, thumbf)
ret.append((thumb_filename, thumb_filename_final)) ret.append((thumb_filename, thumb_filename_final))
t['filepath'] = thumb_filename t['filepath'] = thumb_filename
except network_exceptions as err: except (DownloadError, ExtractorError, IOError, OSError, ValueError) + network_exceptions as err:
if isinstance(err, HTTPError) and err.status == 404: if isinstance(err, HTTPError) and err.status == 404:
self.to_screen(f'[info] {thumb_display_id.title()} does not exist') self.to_screen(f'[info] {thumb_display_id.title()} does not exist')
else: else: