summaryrefslogtreecommitdiff
path: root/tidal_dl_ng/metadata.py
diff options
context:
space:
mode:
authorRobert Honz <exislow+github@gmail.com>2025-10-17 13:46:47 +0200
committerRobert Honz <exislow+github@gmail.com>2025-10-17 13:46:47 +0200
commita2e637e89c3b719a53911f688a48546afdc0832c (patch)
treeed19df70422d01c65afa7fbff84ec8063972d03b /tidal_dl_ng/metadata.py
parente8bf12747f3eb33979d6242f2d0a6f57d3e95043 (diff)
downloadtidal-dl-ng-a2e637e89c3b719a53911f688a48546afdc0832c.tar.gz
feat(metadata): ✨ add UPC metadata handling and configuration
* Introduced `MetadataTargetUPC` enum for target metadata tags. * Added `METADATA_LOOKUP_UPC` dictionary for mapping file formats to UPC tags. * Updated `Metadata` class to include `target_upc` for dynamic UPC tag assignment. * Enhanced `Settings` class to allow configuration of `metadata_target_upc`.
Diffstat (limited to 'tidal_dl_ng/metadata.py')
-rw-r--r--tidal_dl_ng/metadata.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/tidal_dl_ng/metadata.py b/tidal_dl_ng/metadata.py
index afb9030..530f581 100644
--- a/tidal_dl_ng/metadata.py
+++ b/tidal_dl_ng/metadata.py
@@ -29,11 +29,13 @@ class Metadata:
url_share: str
replay_gain_write: bool
upc: str
+ target_upc: dict[str, str]
m: mutagen.mp4.MP4 | mutagen.mp4.MP4 | mutagen.flac.FLAC
def __init__(
self,
path_file: str | pathlib.Path,
+ target_upc: dict[str, str],
album: str = "",
title: str = "",
artists: str = "",
@@ -78,6 +80,7 @@ class Metadata:
self.url_share = url_share
self.replay_gain_write = replay_gain_write
self.upc = upc
+ self.target_upc = target_upc
self.m: mutagen.FileType = mutagen.File(self.path_file)
def _cover(self) -> bool:
@@ -134,7 +137,7 @@ class Metadata:
self.m.tags["ISRC"] = self.isrc
self.m.tags["LYRICS"] = self.lyrics
self.m.tags["URL"] = self.url_share
- self.m.tags["UPC"] = self.upc
+ self.m.tags[self.target_upc["FLAC"]] = self.upc
if self.replay_gain_write:
self.m.tags["REPLAYGAIN_ALBUM_GAIN"] = str(self.album_replay_gain)
@@ -157,7 +160,7 @@ class Metadata:
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(WOAS(encoding=3, text=self.isrc))
- self.m.tags.add(TXXX(encoding=3, desc="UPC", text=self.upc))
+ self.m.tags.add(TXXX(encoding=3, desc=self.target_upc["MP3"], text=self.upc))
if self.replay_gain_write:
self.m.tags.add(TXXX(encoding=3, desc="REPLAYGAIN_ALBUM_GAIN", text=str(self.album_replay_gain)))
@@ -179,7 +182,7 @@ class Metadata:
self.m.tags["\xa9lyr"] = self.lyrics
self.m.tags["isrc"] = self.isrc
self.m.tags["\xa9url"] = self.url_share
- self.m.tags["----:com.apple.iTunes:UPC"] = self.upc.encode("utf-8")
+ self.m.tags[f"----:com.apple.iTunes:{self.target_upc['MP4']}"] = self.upc.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")