🛠 Album Artist ID3 tag only shows the main album artists. Fixes #51
This commit is contained in:
+10
-3
@@ -30,7 +30,14 @@ from tidal_dl_ng.constants import (
|
|||||||
from tidal_dl_ng.helper.decryption import decrypt_file, decrypt_security_token
|
from tidal_dl_ng.helper.decryption import decrypt_file, decrypt_security_token
|
||||||
from tidal_dl_ng.helper.exceptions import MediaMissing, UnknownManifestFormat
|
from tidal_dl_ng.helper.exceptions import MediaMissing, UnknownManifestFormat
|
||||||
from tidal_dl_ng.helper.path import check_file_exists, format_path_media, path_file_sanitize
|
from tidal_dl_ng.helper.path import check_file_exists, format_path_media, path_file_sanitize
|
||||||
from tidal_dl_ng.helper.tidal import instantiate_media, items_results_all, name_builder_item, name_builder_title
|
from tidal_dl_ng.helper.tidal import (
|
||||||
|
instantiate_media,
|
||||||
|
items_results_all,
|
||||||
|
name_builder_album_artist,
|
||||||
|
name_builder_artist,
|
||||||
|
name_builder_item,
|
||||||
|
name_builder_title,
|
||||||
|
)
|
||||||
from tidal_dl_ng.metadata import Metadata
|
from tidal_dl_ng.metadata import Metadata
|
||||||
from tidal_dl_ng.model.gui_data import ProgressBars
|
from tidal_dl_ng.model.gui_data import ProgressBars
|
||||||
from tidal_dl_ng.model.tidal import StreamManifest
|
from tidal_dl_ng.model.tidal import StreamManifest
|
||||||
@@ -306,12 +313,12 @@ class Download:
|
|||||||
lyrics=lyrics,
|
lyrics=lyrics,
|
||||||
copy_right=copy_right,
|
copy_right=copy_right,
|
||||||
title=name_builder_title(track),
|
title=name_builder_title(track),
|
||||||
artists=[artist.name for artist in track.artists],
|
artists=name_builder_artist(track),
|
||||||
album=track.album.name if track.album else "",
|
album=track.album.name if track.album else "",
|
||||||
tracknumber=track.track_num,
|
tracknumber=track.track_num,
|
||||||
date=release_date,
|
date=release_date,
|
||||||
isrc=isrc,
|
isrc=isrc,
|
||||||
albumartist=name_builder_item(track),
|
albumartist=name_builder_album_artist(track),
|
||||||
totaltrack=track.album.num_tracks if track.album and track.album.num_tracks else 1,
|
totaltrack=track.album.num_tracks if track.album and track.album.num_tracks else 1,
|
||||||
totaldisc=track.album.num_volumes if track.album and track.album.num_volumes else 1,
|
totaldisc=track.album.num_volumes if track.album and track.album.num_volumes else 1,
|
||||||
discnumber=track.volume_num if track.volume_num else 1,
|
discnumber=track.volume_num if track.volume_num else 1,
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
from tidalapi import Album, Mix, Playlist, Session, Track, UserPlaylist, Video
|
from tidalapi import Album, Mix, Playlist, Session, Track, UserPlaylist, Video
|
||||||
|
from tidalapi.artist import Role
|
||||||
from tidalapi.session import SearchTypes
|
from tidalapi.session import SearchTypes
|
||||||
|
|
||||||
from tidal_dl_ng.constants import MediaType
|
from tidal_dl_ng.constants import MediaType
|
||||||
@@ -9,6 +10,16 @@ def name_builder_artist(media: Track | Video | Album) -> str:
|
|||||||
return ", ".join(artist.name for artist in media.artists)
|
return ", ".join(artist.name for artist in media.artists)
|
||||||
|
|
||||||
|
|
||||||
|
def name_builder_album_artist(media: Track | Album) -> str:
|
||||||
|
artists_tmp: [str] = []
|
||||||
|
|
||||||
|
for artist in media.album.artists:
|
||||||
|
if Role.main in artist.roles:
|
||||||
|
artists_tmp.append(artist.name)
|
||||||
|
|
||||||
|
return ", ".join(artists_tmp)
|
||||||
|
|
||||||
|
|
||||||
def name_builder_title(media: Track | Video) -> str:
|
def name_builder_title(media: Track | Video) -> str:
|
||||||
result: str = media.full_name if hasattr(media, "full_name") else media.name
|
result: str = media.full_name if hasattr(media, "full_name") else media.name
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ class Metadata:
|
|||||||
path_file: str,
|
path_file: str,
|
||||||
album: str = "",
|
album: str = "",
|
||||||
title: str = "",
|
title: str = "",
|
||||||
artists: list[str] | None = None,
|
artists: str = "",
|
||||||
copy_right: str = "",
|
copy_right: str = "",
|
||||||
tracknumber: int = 0,
|
tracknumber: int = 0,
|
||||||
discnumber: int = 0,
|
discnumber: int = 0,
|
||||||
@@ -105,7 +105,7 @@ class Metadata:
|
|||||||
self.m.tags["title"] = self.title
|
self.m.tags["title"] = self.title
|
||||||
self.m.tags["album"] = self.album
|
self.m.tags["album"] = self.album
|
||||||
self.m.tags["albumartist"] = self.albumartist
|
self.m.tags["albumartist"] = self.albumartist
|
||||||
self.m.tags["artist"] = ", ".join(self.artists) if self.artists else ""
|
self.m.tags["artist"] = self.artists
|
||||||
self.m.tags["copyright"] = self.copy_right
|
self.m.tags["copyright"] = self.copy_right
|
||||||
self.m.tags["tracknumber"] = str(self.tracknumber)
|
self.m.tags["tracknumber"] = str(self.tracknumber)
|
||||||
self.m.tags["tracktotal"] = str(self.totaltrack)
|
self.m.tags["tracktotal"] = str(self.totaltrack)
|
||||||
@@ -120,7 +120,7 @@ class Metadata:
|
|||||||
self.m.tags.add(TIT2(encoding=3, text=self.title))
|
self.m.tags.add(TIT2(encoding=3, text=self.title))
|
||||||
self.m.tags.add(TALB(encoding=3, text=self.album))
|
self.m.tags.add(TALB(encoding=3, text=self.album))
|
||||||
self.m.tags.add(TOPE(encoding=3, text=self.albumartist))
|
self.m.tags.add(TOPE(encoding=3, text=self.albumartist))
|
||||||
self.m.tags.add(TPE1(encoding=3, text=", ".join(self.artists) if self.artists else ""))
|
self.m.tags.add(TPE1(encoding=3, text=self.artists))
|
||||||
self.m.tags.add(TCOP(encoding=3, text=self.copy_right))
|
self.m.tags.add(TCOP(encoding=3, text=self.copy_right))
|
||||||
self.m.tags.add(TRCK(encoding=3, text=str(self.tracknumber)))
|
self.m.tags.add(TRCK(encoding=3, text=str(self.tracknumber)))
|
||||||
self.m.tags.add(TRCK(encoding=3, text=self.discnumber))
|
self.m.tags.add(TRCK(encoding=3, text=self.discnumber))
|
||||||
@@ -133,7 +133,7 @@ class Metadata:
|
|||||||
self.m.tags["\xa9nam"] = self.title
|
self.m.tags["\xa9nam"] = self.title
|
||||||
self.m.tags["\xa9alb"] = self.album
|
self.m.tags["\xa9alb"] = self.album
|
||||||
self.m.tags["aART"] = self.albumartist
|
self.m.tags["aART"] = self.albumartist
|
||||||
self.m.tags["\xa9ART"] = ", ".join(self.artists) if self.artists else ""
|
self.m.tags["\xa9ART"] = self.artists
|
||||||
self.m.tags["cprt"] = self.copy_right
|
self.m.tags["cprt"] = self.copy_right
|
||||||
self.m.tags["trkn"] = [[self.tracknumber, self.totaltrack]]
|
self.m.tags["trkn"] = [[self.tracknumber, self.totaltrack]]
|
||||||
self.m.tags["disk"] = [[self.discnumber, self.totaldisc]]
|
self.m.tags["disk"] = [[self.discnumber, self.totaldisc]]
|
||||||
|
|||||||
Reference in New Issue
Block a user