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 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: