summaryrefslogtreecommitdiff
path: root/tidal_dl_ng/metadata.py
diff options
context:
space:
mode:
authorRobert Honz <exislow+github@gmail.com>2025-02-28 10:39:53 +0100
committerRobert Honz <exislow+github@gmail.com>2025-02-28 10:39:53 +0100
commit57789f10e84094b8bb10b90431cdcd1f445f6f3f (patch)
tree91805c49a0b82a13d402ea4ae69e49b209251a70 /tidal_dl_ng/metadata.py
parentb0bf71ccf523359333c6a4eabfa973135832bd7e (diff)
downloadtidal-dl-ng-57789f10e84094b8bb10b90431cdcd1f445f6f3f.tar.gz
✨ Adding TIDAL share url to metadata. See #176
Diffstat (limited to 'tidal_dl_ng/metadata.py')
-rw-r--r--tidal_dl_ng/metadata.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/tidal_dl_ng/metadata.py b/tidal_dl_ng/metadata.py
index 62d96cd..7e6dda3 100644
--- a/tidal_dl_ng/metadata.py
+++ b/tidal_dl_ng/metadata.py
@@ -1,10 +1,12 @@
+import pathlib
+
import mutagen
from mutagen import flac, id3, mp4
-from mutagen.id3 import APIC, TALB, TCOM, TCOP, TDRC, TIT2, TOPE, TPE1, TRCK, TSRC, TXXX, USLT
+from mutagen.id3 import APIC, TALB, TCOM, TCOP, TDRC, TIT2, TOPE, TPE1, TRCK, TSRC, TXXX, USLT, WOAS
class Metadata:
- path_file: str
+ path_file: str | pathlib.Path
title: str
album: str
albumartist: str
@@ -24,11 +26,12 @@ class Metadata:
album_peak_amplitude: float
track_replay_gain: float
track_peak_amplitude: float
+ url_share: str
m: mutagen.mp4.MP4 | mutagen.mp4.MP4 | mutagen.flac.FLAC
def __init__(
self,
- path_file: str,
+ path_file: str | pathlib.Path,
album: str = "",
title: str = "",
artists: str = "",
@@ -47,6 +50,7 @@ class Metadata:
album_peak_amplitude: float = 1.0,
track_replay_gain: float = 1.0,
track_peak_amplitude: float = 1.0,
+ url_share: str = "",
):
self.path_file = path_file
self.title = title
@@ -67,6 +71,7 @@ class Metadata:
self.album_peak_amplitude = album_peak_amplitude
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)
def _cover(self) -> bool:
@@ -125,6 +130,7 @@ class Metadata:
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
def set_mp3(self):
# ID3 Frame (tags) overview: https://exiftool.org/TagNames/ID3.html / https://id3.org/id3v2.3.0
@@ -144,6 +150,7 @@ class Metadata:
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))
def set_mp4(self):
self.m.tags["\xa9nam"] = self.title
@@ -158,6 +165,7 @@ class Metadata:
self.m.tags["\xa9wrt"] = ", ".join(self.composer) if self.composer else ""
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")