From e3875127af878d99ff075b746ec2be25b55dfb3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Mon, 8 Dec 2025 18:39:30 +0100 Subject: [PATCH] [dl:ytdl] fix 'AttributeError' when ytdl returns None (#8660) fixes regression introduced in 402f53616b149a04a9fed0b5274c4701e78521e7 --- gallery_dl/downloader/ytdl.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/gallery_dl/downloader/ytdl.py b/gallery_dl/downloader/ytdl.py index 9c27aae0..3844a40e 100644 --- a/gallery_dl/downloader/ytdl.py +++ b/gallery_dl/downloader/ytdl.py @@ -81,6 +81,7 @@ class YoutubeDLDownloader(DownloaderBase): url = url[5:] manifest = kwdict.get("_ytdl_manifest") while True: + tries += 1 try: if manifest is None: info_dict = self._extract_url( @@ -88,15 +89,18 @@ class YoutubeDLDownloader(DownloaderBase): else: info_dict = self._extract_manifest( ytdl_instance, url, kwdict) - break + if info_dict: + break except Exception as exc: - tries += 1 self.log.traceback(exc) self.log.error("%s: %s (%s/%s)", exc.__class__.__name__, exc, tries, self.retries+1) - if tries > self.retries: - return False + else: + self.log.error("Empty 'info_dict' data (%s/%s)", + tries, self.retries+1) + if tries > self.retries: + return False if "__gdl_initialize" in ytdl_instance.params: del ytdl_instance.params["__gdl_initialize"]