diff --git a/tidal_dl_ng/download.py b/tidal_dl_ng/download.py index 2afdf20..a65e5f0 100644 --- a/tidal_dl_ng/download.py +++ b/tidal_dl_ng/download.py @@ -177,20 +177,21 @@ class Download: video_download: bool = True, download_delay: bool = False, ) -> (bool, str): - # If no media instance is provided, we need to create the media instance. - if media_id and media_type: - media = instantiate_media(self.session, media_type, media_id) - elif isinstance(media, Track): - media = self.session.track(media.id, with_album=True) - elif not media: - raise MediaMissing - - # Check if media is available not deactivated / removed from TIDAL. - if not media.available: - self.fn_logger.info( - f"This track is not available for listening anymore on TIDAL. Skipping: {name_builder_item(media)}" - ) - + try: + if media_id and media_type: + # If no media instance is provided, we need to create the media instance. + media = instantiate_media(self.session, media_type, media_id) + elif isinstance(media, Track): # Check if media is available not deactivated / removed from TIDAL. + if not media.available: + self.fn_logger.info( + f"This track is not available for listening anymore on TIDAL. Skipping: {name_builder_item(media)}" + ) + else: + # Re-create media instance with full album information + media = self.session.track(media.id, with_album=True) + elif not media: + raise MediaMissing + except: return False, "" # If video download is not allowed end here diff --git a/tidal_dl_ng/gui.py b/tidal_dl_ng/gui.py index 3ef600e..92627ca 100644 --- a/tidal_dl_ng/gui.py +++ b/tidal_dl_ng/gui.py @@ -6,7 +6,6 @@ from requests.exceptions import HTTPError from tidal_dl_ng import version from tidal_dl_ng.dialog import DialogLogin, DialogPreferences, DialogVersion -from tidal_dl_ng.helper.exceptions import MediaUnknown from tidal_dl_ng.helper.path import get_format_template from tidal_dl_ng.helper.tidal import ( get_tidal_media_id, @@ -367,7 +366,9 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): try: media = instantiate_media(self.tidal.session, media_type, item_id) - except MediaUnknown: + except: + logger_gui.error(f"Media not found (ID: {item_id}). Maybe it is not available anymore.") + media = None result_search = {"direct": [media]}