From 2eb01a6db2fa890c98719748c5ea60f1866b827d Mon Sep 17 00:00:00 2001 From: tcely Date: Tue, 16 Dec 2025 00:58:32 -0500 Subject: [PATCH 1/2] Handle exceptions during refresh_formats --- tubesync/sync/models/media__tasks.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tubesync/sync/models/media__tasks.py b/tubesync/sync/models/media__tasks.py index 1c6d63835..ea99b884e 100644 --- a/tubesync/sync/models/media__tasks.py +++ b/tubesync/sync/models/media__tasks.py @@ -10,6 +10,7 @@ from django.conf import settings from django.utils import timezone from django.utils.translation import gettext_lazy as _ +from yt_dlp.utils import DownloadError from ..choices import Val, SourceResolution from ..utils import filter_response, write_text_file @@ -167,9 +168,13 @@ def refresh_formats(self): last_attempt = round((now - self.posix_epoch).total_seconds()) self.save_to_metadata(attempted_key, last_attempt) self.skip = False - metadata = self.index_metadata() - if self.skip: + try: + metadata = self.index_metadata() + except DownloadError: return (False, True, 'found no formats; trying again') + else: + if self.skip: + return (False, True, 'found no formats; trying again') fmt_dict = defaultdict(str) response = metadata From f0f26b09adb883fe4e6a197fbe8b876570f0b7c0 Mon Sep 17 00:00:00 2001 From: tcely Date: Tue, 16 Dec 2025 01:01:55 -0500 Subject: [PATCH 2/2] Log the response that was unexpected --- tubesync/sync/youtube.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tubesync/sync/youtube.py b/tubesync/sync/youtube.py index 5b8ab1a48..bb03c2b5c 100644 --- a/tubesync/sync/youtube.py +++ b/tubesync/sync/youtube.py @@ -267,6 +267,7 @@ class NoDefaultValue: pass # a unique Singleton, that may be checked for later raise YouTubeError(f'Failed (again) to extract_info for "{url}": {ee}') from ee # validate the response is what we expected if not _subscriber_only(response=response): + log.debug(f'get_media_info: response: {response}') response = {} if not response: