summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Honz <exislow+github@gmail.com>2024-03-19 07:23:35 +0100
committerRobert Honz <exislow+github@gmail.com>2024-03-19 07:23:35 +0100
commitbc88b6fcac66a2d00d380ce7c0757d7874aac1e0 (patch)
treec8016dc4782e58e3cb568daa6f8c67990daeb07a
parentce639659b44028a88ddf6bb48a26bcd6adfcb0b0 (diff)
downloadtidal-dl-ng-bc88b6fcac66a2d00d380ce7c0757d7874aac1e0.tar.gz
🛠 Album Artist ID3 tag only shows the main album artists. Fixes #51
-rw-r--r--tidal_dl_ng/download.py13
-rw-r--r--tidal_dl_ng/helper/tidal.py11
-rw-r--r--tidal_dl_ng/metadata.py8
3 files changed, 25 insertions, 7 deletions
diff --git a/tidal_dl_ng/download.py b/tidal_dl_ng/download.py
index 7a8b51a..a48a436 100644
--- a/tidal_dl_ng/download.py
+++ b/tidal_dl_ng/download.py
@@ -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.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.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.model.gui_data import ProgressBars
from tidal_dl_ng.model.tidal import StreamManifest
@@ -306,12 +313,12 @@ class Download:
lyrics=lyrics,
copy_right=copy_right,
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 "",
tracknumber=track.track_num,
date=release_date,
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,
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,
diff --git a/tidal_dl_ng/helper/tidal.py b/tidal_dl_ng/helper/tidal.py
index c8b93bb..2a61bd6 100644
--- a/tidal_dl_ng/helper/tidal.py
+++ b/tidal_dl_ng/helper/tidal.py
@@ -1,4 +1,5 @@
from tidalapi import Album, Mix, Playlist, Session, Track, UserPlaylist, Video
+from tidalapi.artist import Role
from tidalapi.session import SearchTypes
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)
+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:
result: str = media.full_name if hasattr(media, "full_name") else media.name
diff --git a/tidal_dl_ng/metadata.py b/tidal_dl_ng/metadata.py
index ce9bfa1..4506742 100644
--- a/tidal_dl_ng/metadata.py
+++ b/tidal_dl_ng/metadata.py
@@ -30,7 +30,7 @@ class Metadata:
path_file: str,
album: str = "",
title: str = "",
- artists: list[str] | None = None,
+ artists: str = "",
copy_right: str = "",
tracknumber: int = 0,
discnumber: int = 0,
@@ -105,7 +105,7 @@ class Metadata:
self.m.tags["title"] = self.title
self.m.tags["album"] = self.album
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["tracknumber"] = str(self.tracknumber)
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(TALB(encoding=3, text=self.album))
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(TRCK(encoding=3, text=str(self.tracknumber)))
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["\xa9alb"] = self.album
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["trkn"] = [[self.tracknumber, self.totaltrack]]
self.m.tags["disk"] = [[self.discnumber, self.totaldisc]]