diff --git a/yt_dlp/extractor/redgifs.py b/yt_dlp/extractor/redgifs.py index f688d1e63..098fb8185 100644 --- a/yt_dlp/extractor/redgifs.py +++ b/yt_dlp/extractor/redgifs.py @@ -72,7 +72,7 @@ def _fetch_oauth_token(self, video_id): self._API_HEADERS['authorization'] = f'Bearer {auth["token"]}' def _call_api(self, ep, video_id, *args, **kwargs): - for attempt in range(2): + for first_attempt in True, False: if 'authorization' not in self._API_HEADERS: self._fetch_oauth_token(video_id) try: @@ -82,8 +82,9 @@ def _call_api(self, ep, video_id, *args, **kwargs): f'https://api.redgifs.com/v2/{ep}', video_id, headers=headers, *args, **kwargs) break except ExtractorError as e: - if not attempt and isinstance(e.cause, urllib.error.HTTPError) and e.cause.code == 401: + if first_attempt and isinstance(e.cause, urllib.error.HTTPError) and e.cause.code == 401: del self._API_HEADERS['authorization'] # refresh the token + continue raise if 'error' in data: