diff --git a/tidal_scrape.py b/tidal_scrape.py index d6859bc..078d890 100755 --- a/tidal_scrape.py +++ b/tidal_scrape.py @@ -70,21 +70,24 @@ def set_metadata(track: tidalapi.Track, file: str) -> None: if tagger.totaldisc <= 1: tagger.totaltrack = track.album.num_tracks # type: ignore[reportOptionalMemberAccess] - tagger.save() + coverpath = track.album.cover(1280) # type: ignore[reportOptionalMemberAccess] + tagger.save(coverpath) def download_track( track: tidalapi.Track, partSize: int = 1048576, ) -> Tuple[bool, str]: + print(f"Downloading {track.name} - {track.artist.name}") # type: ignore[reportOptionalMemberAccess] try: - album_name = re.sub('/', ' ', track.album.name) # type: ignore[reportOptionalMemberAccess] - track_name = re.sub('/', ' ', track.name) # type: ignore[reportOptionalMemberAccess] + album_name = re.sub("/", " ", track.album.name) # type: ignore[reportOptionalMemberAccess] + track_name = re.sub("/", " ", track.name) # type: ignore[reportOptionalMemberAccess] dl_path = f"{DL_PATH}/{track_name}.part" # type: ignore[reportOptionalMemberAccess] dest_path = f"{DEST_PATH}/{album_name}/{track_name}" # type: ignore[reportOptionalMemberAccess] if os.path.exists(dest_path) and SKIP_DOWNLOADED: print(dest_path + " exists!") + print("Skipping downloaded song") return False, "Skipping downloaded song" stream = track.stream() @@ -113,9 +116,23 @@ def download_track( return True, "Successfully downloaded!" except Exception as msg: + print(str(msg)) return False, str(msg) +def download_cover(album: tidalapi.Album) -> None: + print(f"Downloading cover for {album.name}") # type: ignore[reportOptionalMemberAccess] + dest_path = f"{DEST_PATH}/{album_name}/cover.png" # type: ignore[reportOptionalMemberAccess] + url = album.image(1280) + + if os.path.exists(dest_path) and SKIP_DOWNLOADED: + print(dest_path + " exists!") + print("Skipping downloaded cover") + return + + aigpy.net.downloadFile(url, dest_path) + + auth_path = f"{AUTH_PATH}/auth.json" try: with open(auth_path, "rb") as f: @@ -148,13 +165,11 @@ favorites = tidalapi.user.Favorites(session, user.id) albums = favorites.albums() dl_tracks = [] for album in albums: - print(f"Queuing album {album.name}") + download_cover(album) tracks = album.tracks() dl_tracks += tracks for track in dl_tracks: - print(f"Downloading {track.name} - {track.artist.name}") # type: ignore[reportOptionalMemberAccess] - check, msg = download_track(track) - print(msg) + check, _ = download_track(track) if check: time.sleep(3)