From efc2549ab5a2c24d7f29a318d4860621b281b36b Mon Sep 17 00:00:00 2001 From: Robert Honz Date: Mon, 24 Mar 2025 08:57:47 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=B7=20Check=20if=20albums=20and=20vide?= =?UTF-8?q?os=20are=20available=20or=20not=20due=20to=20regional=20restric?= =?UTF-8?q?tions.=20Fixes=20#277?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tidal_dl_ng/download.py | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/tidal_dl_ng/download.py b/tidal_dl_ng/download.py index fae7b41..5e66f45 100644 --- a/tidal_dl_ng/download.py +++ b/tidal_dl_ng/download.py @@ -334,10 +334,10 @@ class Download: 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. + elif isinstance(media, Track) or isinstance(media, Video): # 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)}" + f"This item is not available for listening anymore on TIDAL. Skipping: {name_builder_item(media)}" ) return False, "" @@ -714,11 +714,22 @@ class Download: quality_audio: Quality | None = None, quality_video: QualityVideo | None = None, ): - # 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 not media: - raise MediaMissing + try: + if media_id and media_type: + # If no media instance is provided, we need to create the media instance. + # Throws `tidalapi.exceptions.ObjectNotFound` if item is not available anymore. + media = instantiate_media(self.session, media_type, media_id) + elif isinstance(media, Album): # Check if media is available not deactivated / removed from TIDAL. + if not media.available: + self.fn_logger.info( + f"This item is not available for listening anymore on TIDAL. Skipping: {name_builder_title(media)}" + ) + + return + elif not media: + raise MediaMissing + except: + return # Create file name and path file_name_relative: str = format_path_media(file_template, media, self.settings.data.album_track_num_pad_min)