2
0
Fork 0

add track cover download

This commit is contained in:
Luca Bilke 2023-06-27 10:46:27 +02:00
parent b059f7f44f
commit b5f6705e71
No known key found for this signature in database
GPG Key ID: 7B77C51E8C779E75
1 changed files with 22 additions and 7 deletions

View File

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