summaryrefslogtreecommitdiff
path: root/tidal_dl_ng
diff options
context:
space:
mode:
authorRobert Honz <exislow+github@gmail.com>2025-10-17 15:26:48 +0200
committerRobert Honz <exislow+github@gmail.com>2025-10-17 15:26:48 +0200
commit07494eddf32aee915d459710b4146048c0d0733f (patch)
tree8d8f42a05231b860fba38b7857233d8cc4561072 /tidal_dl_ng
parent3d5b52209e7bfd5e292a32a75d454965ec468e5f (diff)
downloadtidal-dl-ng-07494eddf32aee915d459710b4146048c0d0733f.tar.gz
feat(metadata): ✨ add support for explicit track metadata
* Added `explicit` attribute to the `Metadata` class. * Updated the constructor to initialize `explicit` with a default value of `False`. * Modified the metadata saving process to include explicit rating in tags.
Diffstat (limited to 'tidal_dl_ng')
-rw-r--r--tidal_dl_ng/download.py1
-rw-r--r--tidal_dl_ng/metadata.py4
2 files changed, 5 insertions, 0 deletions
diff --git a/tidal_dl_ng/download.py b/tidal_dl_ng/download.py
index 7ad9612..8c51e76 100644
--- a/tidal_dl_ng/download.py
+++ b/tidal_dl_ng/download.py
@@ -1252,6 +1252,7 @@ class Download:
url_share=track.share_url if track.share_url and self.settings.data.metadata_write_url else "",
replay_gain_write=self.settings.data.metadata_replay_gain,
upc=track.album.upc if track.album and track.album.upc else "",
+ explicit=track.explicit if hasattr(track, "explicit") else False,
)
m.save()
diff --git a/tidal_dl_ng/metadata.py b/tidal_dl_ng/metadata.py
index c8e1728..7d8ccb9 100644
--- a/tidal_dl_ng/metadata.py
+++ b/tidal_dl_ng/metadata.py
@@ -31,6 +31,7 @@ class Metadata:
replay_gain_write: bool
upc: str
target_upc: dict[str, str]
+ explicit: bool
m: mutagen.mp4.MP4 | mutagen.mp4.MP4 | mutagen.flac.FLAC
def __init__(
@@ -59,6 +60,7 @@ class Metadata:
url_share: str = "",
replay_gain_write: bool = True,
upc: str = "",
+ explicit: bool = False,
):
self.path_file = path_file
self.title = title
@@ -84,6 +86,7 @@ class Metadata:
self.replay_gain_write = replay_gain_write
self.upc = upc
self.target_upc = target_upc
+ self.explicit = explicit
self.m: mutagen.FileType = mutagen.File(self.path_file)
def _cover(self) -> bool:
@@ -189,6 +192,7 @@ class Metadata:
self.m.tags["isrc"] = self.isrc
self.m.tags["\xa9url"] = self.url_share
self.m.tags[f"----:com.apple.iTunes:{self.target_upc['MP4']}"] = self.upc.encode("utf-8")
+ self.m.tags["rtng"] = [1 if self.explicit else 0]
if self.replay_gain_write:
self.m.tags["----:com.apple.iTunes:REPLAYGAIN_ALBUM_GAIN"] = str(self.album_replay_gain).encode("utf-8")