1
0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2025-12-20 23:18:57 +00:00

Add option --wait-retries

This commit is contained in:
Paul Storkman
2024-10-29 14:25:52 +01:00
parent f101e5d34c
commit c6cc3a8ab2
4 changed files with 19 additions and 0 deletions

View File

@@ -1620,17 +1620,26 @@ class YoutubeDL:
def _handle_extraction_exceptions(func):
@functools.wraps(func)
def wrapper(self, *args, **kwargs):
wait_retries = 1
max_wait_retries = self.params.get('wait_retries')
while True:
try:
return func(self, *args, **kwargs)
except (CookieLoadError, DownloadCancelled, LazyList.IndexError, PagedList.IndexError):
raise
except ReExtractInfo as e:
if wait_retries > max_wait_retries:
if max_wait_retries > 0:
self.report_error(f'Giving up after {wait_retries - 1} {"retries" if wait_retries > 2 else "retry"} while waiting.')
else:
self.report_error(f'Video is still unavailable after waiting.')
raise UserNotLive('Maximum number of retries exceeded while waiting for stream')
if e.expected:
self.to_screen(f'{e}; Re-extracting data')
else:
self.to_stderr('\r')
self.report_warning(f'{e}; Re-extracting data')
wait_retries += 1
continue
except GeoRestrictedError as e:
msg = e.msg