summaryrefslogtreecommitdiff
path: root/tidal_dl_ng/metadata.py
diff options
context:
space:
mode:
authorRobert Honz <exislow+github@gmail.com>2025-02-28 10:55:41 +0100
committerRobert Honz <exislow+github@gmail.com>2025-02-28 10:55:41 +0100
commit5e91194bd1211e769739a80c46e0812f309f688f (patch)
tree41a1e98111646967b575431a29aad642b5d899ad /tidal_dl_ng/metadata.py
parent57789f10e84094b8bb10b90431cdcd1f445f6f3f (diff)
downloadtidal-dl-ng-5e91194bd1211e769739a80c46e0812f309f688f.tar.gz
✨ Replay gain information can be disabled in settings. Fixes #176
🛠️ Fixed some warnings
Diffstat (limited to 'tidal_dl_ng/metadata.py')
-rw-r--r--tidal_dl_ng/metadata.py47
1 files changed, 28 insertions, 19 deletions
diff --git a/tidal_dl_ng/metadata.py b/tidal_dl_ng/metadata.py
index 7e6dda3..2d83c51 100644
--- a/tidal_dl_ng/metadata.py
+++ b/tidal_dl_ng/metadata.py
@@ -10,14 +10,14 @@ class Metadata:
title: str
album: str
albumartist: str
- artists: [str]
+ artists: str
copy_right: str
tracknumber: int
discnumber: int
totaldisc: int
totaltrack: int
date: str
- composer: [str]
+ composer: str
isrc: str
lyrics: str
path_cover: str
@@ -27,6 +27,7 @@ class Metadata:
track_replay_gain: float
track_peak_amplitude: float
url_share: str
+ replay_gain_write: bool
m: mutagen.mp4.MP4 | mutagen.mp4.MP4 | mutagen.flac.FLAC
def __init__(
@@ -40,7 +41,7 @@ class Metadata:
discnumber: int = 0,
totaltrack: int = 0,
totaldisc: int = 0,
- composer: list[str] | None = None,
+ composer: str = None,
isrc: str = "",
albumartist: str = "",
date: str = "",
@@ -51,6 +52,7 @@ class Metadata:
track_replay_gain: float = 1.0,
track_peak_amplitude: float = 1.0,
url_share: str = "",
+ replay_gain_write: bool = True
):
self.path_file = path_file
self.title = title
@@ -72,7 +74,8 @@ class Metadata:
self.track_replay_gain = track_replay_gain
self.track_peak_amplitude = track_peak_amplitude
self.url_share = url_share
- self.m: mutagen.mp4.MP4 | mutagen.flac.FLAC | mutagen.mp3.MP3 = mutagen.File(self.path_file)
+ self.replay_gain_write = replay_gain_write
+ self.m: mutagen.FileType = mutagen.File(self.path_file)
def _cover(self) -> bool:
result: bool = False
@@ -123,15 +126,17 @@ class Metadata:
self.m.tags["DISCNUMBER"] = str(self.discnumber)
self.m.tags["DISCTOTAL"] = str(self.totaldisc)
self.m.tags["DATE"] = self.date
- self.m.tags["COMPOSER"] = ", ".join(self.composer) if self.composer else ""
+ self.m.tags["COMPOSER"] = self.composer
self.m.tags["ISRC"] = self.isrc
self.m.tags["LYRICS"] = self.lyrics
- self.m.tags["REPLAYGAIN_ALBUM_GAIN"] = str(self.album_replay_gain)
- self.m.tags["REPLAYGAIN_ALBUM_PEAK"] = str(self.album_peak_amplitude)
- self.m.tags["REPLAYGAIN_TRACK_GAIN"] = str(self.track_replay_gain)
- self.m.tags["REPLAYGAIN_TRACK_PEAK"] = str(self.track_peak_amplitude)
self.m.tags["URL"] = self.url_share
+ if self.replay_gain_write:
+ self.m.tags["REPLAYGAIN_ALBUM_GAIN"] = str(self.album_replay_gain)
+ self.m.tags["REPLAYGAIN_ALBUM_PEAK"] = str(self.album_peak_amplitude)
+ self.m.tags["REPLAYGAIN_TRACK_GAIN"] = str(self.track_replay_gain)
+ self.m.tags["REPLAYGAIN_TRACK_PEAK"] = str(self.track_peak_amplitude)
+
def set_mp3(self):
# ID3 Frame (tags) overview: https://exiftool.org/TagNames/ID3.html / https://id3.org/id3v2.3.0
# Mapping overview: https://docs.mp3tag.de/mapping/
@@ -143,15 +148,17 @@ class Metadata:
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(TDRC(encoding=3, text=self.date))
- self.m.tags.add(TCOM(encoding=3, text=", ".join(self.composer) if self.composer else ""))
+ self.m.tags.add(TCOM(encoding=3, text=self.composer))
self.m.tags.add(TSRC(encoding=3, text=self.isrc))
self.m.tags.add(USLT(encoding=3, lang="eng", desc="desc", text=self.lyrics))
- self.m.tags.add(TXXX(encoding=3, desc="REPLAYGAIN_ALBUM_GAIN", text=str(self.album_replay_gain)))
- self.m.tags.add(TXXX(encoding=3, desc="REPLAYGAIN_ALBUM_PEAK", text=str(self.album_peak_amplitude)))
- self.m.tags.add(TXXX(encoding=3, desc="REPLAYGAIN_TRACK_GAIN", text=str(self.track_replay_gain)))
- self.m.tags.add(TXXX(encoding=3, desc="REPLAYGAIN_TRACK_PEAK", text=str(self.track_peak_amplitude)))
self.m.tags.add(WOAS(encoding=3, text=self.isrc))
+ if self.replay_gain_write:
+ self.m.tags.add(TXXX(encoding=3, desc="REPLAYGAIN_ALBUM_GAIN", text=str(self.album_replay_gain)))
+ self.m.tags.add(TXXX(encoding=3, desc="REPLAYGAIN_ALBUM_PEAK", text=str(self.album_peak_amplitude)))
+ self.m.tags.add(TXXX(encoding=3, desc="REPLAYGAIN_TRACK_GAIN", text=str(self.track_replay_gain)))
+ self.m.tags.add(TXXX(encoding=3, desc="REPLAYGAIN_TRACK_PEAK", text=str(self.track_peak_amplitude)))
+
def set_mp4(self):
self.m.tags["\xa9nam"] = self.title
self.m.tags["\xa9alb"] = self.album
@@ -162,11 +169,13 @@ class Metadata:
self.m.tags["disk"] = [[self.discnumber, self.totaldisc]]
# self.m.tags['\xa9gen'] = self.genre
self.m.tags["\xa9day"] = self.date
- self.m.tags["\xa9wrt"] = ", ".join(self.composer) if self.composer else ""
+ self.m.tags["\xa9wrt"] = self.composer
self.m.tags["\xa9lyr"] = self.lyrics
self.m.tags["isrc"] = self.isrc
self.m.tags["url"] = self.url_share
- self.m.tags["----:com.apple.iTunes:REPLAYGAIN_ALBUM_GAIN"] = str(self.album_replay_gain).encode("utf-8")
- self.m.tags["----:com.apple.iTunes:REPLAYGAIN_ALBUM_PEAK"] = str(self.album_peak_amplitude).encode("utf-8")
- self.m.tags["----:com.apple.iTunes:REPLAYGAIN_TRACK_GAIN"] = str(self.track_replay_gain).encode("utf-8")
- self.m.tags["----:com.apple.iTunes:REPLAYGAIN_TRACK_PEAK"] = str(self.track_peak_amplitude).encode("utf-8")
+
+ if self.replay_gain_write:
+ self.m.tags["----:com.apple.iTunes:REPLAYGAIN_ALBUM_GAIN"] = str(self.album_replay_gain).encode("utf-8")
+ self.m.tags["----:com.apple.iTunes:REPLAYGAIN_ALBUM_PEAK"] = str(self.album_peak_amplitude).encode("utf-8")
+ self.m.tags["----:com.apple.iTunes:REPLAYGAIN_TRACK_GAIN"] = str(self.track_replay_gain).encode("utf-8")
+ self.m.tags["----:com.apple.iTunes:REPLAYGAIN_TRACK_PEAK"] = str(self.track_peak_amplitude).encode("utf-8")