summaryrefslogtreecommitdiff
path: root/tidal_dl_ng
diff options
context:
space:
mode:
authorRobert Honz <exislow+github@gmail.com>2025-10-17 12:06:25 +0200
committerRobert Honz <exislow+github@gmail.com>2025-10-17 12:06:25 +0200
commit5da1855028b4519fd284fa55ae7b38390cbde62f (patch)
tree4f75256191e0671722437199940230c24f50ba32 /tidal_dl_ng
parent8ebb84bf2ed2c8ac277dd83cd1d645dfb86ecef3 (diff)
downloadtidal-dl-ng-5da1855028b4519fd284fa55ae7b38390cbde62f.tar.gz
feat(metadata): ✨ add customizable metadata delimiters for artists
* Introduced `metadata_delimiter_artist` and `metadata_delimiter_album_artist` settings. * Updated `name_builder_artist` and `name_builder_album_artist` functions to utilize the new delimiters. * This allows users to specify their preferred delimiter for artist names in metadata.
Diffstat (limited to 'tidal_dl_ng')
-rw-r--r--tidal_dl_ng/download.py4
-rw-r--r--tidal_dl_ng/helper/tidal.py8
-rw-r--r--tidal_dl_ng/model/cfg.py4
3 files changed, 10 insertions, 6 deletions
diff --git a/tidal_dl_ng/download.py b/tidal_dl_ng/download.py
index 8ca70c1..a4e4bfc 100644
--- a/tidal_dl_ng/download.py
+++ b/tidal_dl_ng/download.py
@@ -1208,12 +1208,12 @@ class Download:
lyrics=lyrics,
copy_right=copy_right,
title=name_builder_title(track),
- artists=name_builder_artist(track),
+ artists=name_builder_artist(track, delimiter=self.settings.data.metadata_delimiter_artist),
album=track.album.name if track.album else "",
tracknumber=track.track_num,
date=release_date,
isrc=isrc,
- albumartist=name_builder_album_artist(track),
+ albumartist=name_builder_album_artist(track, delimiter=self.settings.data.metadata_delimiter_album_artist),
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 93999e0..22d8f00 100644
--- a/tidal_dl_ng/helper/tidal.py
+++ b/tidal_dl_ng/helper/tidal.py
@@ -10,11 +10,11 @@ from tidal_dl_ng.constants import FAVORITES, MediaType
from tidal_dl_ng.helper.exceptions import MediaUnknown
-def name_builder_artist(media: Track | Video | Album) -> str:
- return "; ".join(artist.name for artist in media.artists)
+def name_builder_artist(media: Track | Video | Album, delimiter: str = "; ") -> str:
+ return delimiter.join(artist.name for artist in media.artists)
-def name_builder_album_artist(media: Track | Album, first_only: bool = False) -> str:
+def name_builder_album_artist(media: Track | Album, first_only: bool = False, delimiter: str = "; ") -> str:
artists_tmp: [str] = []
artists: [Artist] = media.album.artists if isinstance(media, Track) else media.artists
@@ -25,7 +25,7 @@ def name_builder_album_artist(media: Track | Album, first_only: bool = False) ->
if first_only:
break
- return "; ".join(artists_tmp)
+ return delimiter.join(artists_tmp)
def name_builder_title(media: Track | Video | Mix | Playlist | Album | Video) -> str:
diff --git a/tidal_dl_ng/model/cfg.py b/tidal_dl_ng/model/cfg.py
index c283ee7..22e8aa8 100644
--- a/tidal_dl_ng/model/cfg.py
+++ b/tidal_dl_ng/model/cfg.py
@@ -50,6 +50,8 @@ class Settings:
window_y: int = 50
window_w: int = 1200
window_h: int = 800
+ metadata_delimiter_artist: str = "; "
+ metadata_delimiter_album_artist: str = "; "
@dataclass_json
@@ -109,6 +111,8 @@ class HelpSettings:
window_y: str = "Y-Coordinate of saved window location."
window_w: str = "Width of saved window size."
window_h: str = "Height of saved window size."
+ metadata_delimiter_artist: str = "Metadata tag delimiter for multiple artists. Default: '; '"
+ metadata_delimiter_album_artist: str = "Metadata tag delimiter for multiple album artists. Default: '; '"
@dataclass_json