Merge pull request #585 from exislow:568-delimiter-to-semicolon-pls-add-option-to-change-to-whatever-the-user-wants

feat(metadata): ✨ add customizable metadata delimiters for artists
This commit is contained in:
exislow
2025-10-17 12:10:42 +02:00
committed by GitHub
3 changed files with 10 additions and 6 deletions
+2 -2
View File
@@ -1208,12 +1208,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=name_builder_artist(track), artists=name_builder_artist(track, delimiter=self.settings.data.metadata_delimiter_artist),
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_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, 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,
+4 -4
View File
@@ -10,11 +10,11 @@ from tidal_dl_ng.constants import FAVORITES, MediaType
from tidal_dl_ng.helper.exceptions import MediaUnknown from tidal_dl_ng.helper.exceptions import MediaUnknown
def name_builder_artist(media: Track | Video | Album) -> str: def name_builder_artist(media: Track | Video | Album, delimiter: str = "; ") -> str:
return "; ".join(artist.name for artist in media.artists) 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_tmp: [str] = []
artists: [Artist] = media.album.artists if isinstance(media, Track) else media.artists 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: if first_only:
break break
return "; ".join(artists_tmp) return delimiter.join(artists_tmp)
def name_builder_title(media: Track | Video | Mix | Playlist | Album | Video) -> str: def name_builder_title(media: Track | Video | Mix | Playlist | Album | Video) -> str:
+4
View File
@@ -50,6 +50,8 @@ class Settings:
window_y: int = 50 window_y: int = 50
window_w: int = 1200 window_w: int = 1200
window_h: int = 800 window_h: int = 800
metadata_delimiter_artist: str = "; "
metadata_delimiter_album_artist: str = "; "
@dataclass_json @dataclass_json
@@ -109,6 +111,8 @@ class HelpSettings:
window_y: str = "Y-Coordinate of saved window location." window_y: str = "Y-Coordinate of saved window location."
window_w: str = "Width of saved window size." window_w: str = "Width of saved window size."
window_h: str = "Height 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 @dataclass_json