From 6d1e9c975f063dbc69a37aeb6a6578fab6eb31a5 Mon Sep 17 00:00:00 2001 From: oskvr37 Date: Tue, 14 Jan 2025 16:44:36 +0100 Subject: [PATCH 1/3] =?UTF-8?q?=F0=9F=90=9B=20fix=20#66?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tiddl/__init__.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tiddl/__init__.py b/tiddl/__init__.py index edb23a8..7f76146 100644 --- a/tiddl/__init__.py +++ b/tiddl/__init__.py @@ -143,6 +143,11 @@ def downloadTrack( if track.get("status") == 404: raise ValueError(track) + if not track["allowStreaming"]: + logger.warning( + f"The track is not streamable: {track["title"]} ({track["id"]})" + ) + file_dir, file_name = formatFilename(file_template, track, playlist) file_path = f"{download_path}/{file_dir}/{file_name}" @@ -191,7 +196,7 @@ def downloadTrack( with open(file_path, "wb+") as f: f.write(track_data) - if not cover_data: + if not cover_data and track["album"]["cover"]: cover = Cover(track["album"]["cover"]) cover_data = cover.content From 8eaf49cfc1f8fae59c3f2ce857af7a83200d27b7 Mon Sep 17 00:00:00 2001 From: oskvr37 Date: Tue, 14 Jan 2025 16:44:58 +0100 Subject: [PATCH 2/3] =?UTF-8?q?=F0=9F=9A=80=20bump=20to=20`1.9.4`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index f28754e..efdc632 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ setup( name="tiddl", - version="1.9.3", + version="1.9.4", description="TIDDL (Tidal Downloader) is a Python CLI application that allows downloading Tidal tracks.", long_description=open("README.md", encoding="utf-8").read(), long_description_content_type="text/markdown", From 9602b293fc61b49099c07968cba16004740232d4 Mon Sep 17 00:00:00 2001 From: oskvr37 Date: Wed, 15 Jan 2025 19:55:33 +0100 Subject: [PATCH 3/3] fix #66 --- tiddl/__init__.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/tiddl/__init__.py b/tiddl/__init__.py index 7f76146..46f02d7 100644 --- a/tiddl/__init__.py +++ b/tiddl/__init__.py @@ -140,11 +140,8 @@ def downloadTrack( playlist="", cover_data=b"", ) -> tuple[str, str]: - if track.get("status") == 404: - raise ValueError(track) - - if not track["allowStreaming"]: - logger.warning( + if track.get("status", 200) != 200 or not track["allowStreaming"]: + raise ValueError( f"The track is not streamable: {track["title"]} ({track["id"]})" ) @@ -240,8 +237,8 @@ def downloadAlbum(album_id: str | int, skip_existing: bool): if SAVE_COVER: album_cover.save(f"{download_path}/{file_dir}") - except ValueError: - logger.warning(f"track unavailable") + except ValueError as e: + logger.error(e) skip_existing = not args.no_skip failed_input = [] @@ -269,11 +266,14 @@ def downloadAlbum(album_id: str | int, skip_existing: bool): logger.warning(f"{e.error['userMessage']} ({e.error['status']})") continue - downloadTrack( - track, - file_template=track_template, - skip_existing=skip_existing, - ) + try: + downloadTrack( + track, + file_template=track_template, + skip_existing=skip_existing, + ) + except ValueError as e: + logger.error(e) continue