From c7685bdfc775cb8e40f53e91215032ecaf6c00d9 Mon Sep 17 00:00:00 2001 From: CasualYT31 <21147925+CasualYT31@users.noreply.github.com> Date: Mon, 17 Mar 2025 11:00:52 +0000 Subject: [PATCH] [tiktok] Incorporate --retries and --http-timeout into rehydration data extraction --- gallery_dl/extractor/tiktok.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/gallery_dl/extractor/tiktok.py b/gallery_dl/extractor/tiktok.py index eaf942d1..ddbb7d07 100644 --- a/gallery_dl/extractor/tiktok.py +++ b/gallery_dl/extractor/tiktok.py @@ -144,7 +144,9 @@ class TiktokExtractor(Extractor): def _sanitize_url(self, url): return text.ensure_http_scheme(url.replace("/photo/", "/video/", 1)) - def _extract_rehydration_data(self, url, *, retries=1): + def _extract_rehydration_data(self, url, *, retries=None): + if retries is None: + retries = self._retries try: html = self.request(url).text data = text.extr( @@ -153,10 +155,12 @@ class TiktokExtractor(Extractor): return util.json_loads(data)["__DEFAULT_SCOPE__"] except JSONDecodeError: # We failed to retrieve rehydration data. This happens relatively - # frequently, so retry if we're told to do so. + # frequently when making many requests, so retry. self.log.warning("%s: Failed to retrieve rehydration data, trying " - "%d more time%s", url, retries, - "" if retries == 1 else "s") + "%d more time%s and delaying for %d second(s)", + url, retries, "" if retries == 1 else "s", + self._timeout) + self.sleep(self._timeout, "retry") if retries > 0: return self._extract_rehydration_data(url, retries=retries-1) raise