feat(metadata): add UPC support for metadata tagging
This update introduces support for handling UPCs (Universal Product Codes) in metadata processing. It ensures that UPC information is extracted, stored, and written to the appropriate metadata tags for various formats. - ✨ **Feature**: Adds UPC field to metadata handling. - 🛠️ **Enhancement**: Updates metadata initialization to include UPC. - 🗂️ **Tagging**: Implements UPC writing for supported file formats. - ✅ **Compatibility**: Ensures proper handling when UPC is absent. This improvement enhances metadata completeness and compatibility with systems requiring UPC data.
This commit is contained in:
@@ -1211,6 +1211,7 @@ class Download:
|
|||||||
track_peak_amplitude=media_stream.track_peak_amplitude,
|
track_peak_amplitude=media_stream.track_peak_amplitude,
|
||||||
url_share=track.share_url if track.share_url else "",
|
url_share=track.share_url if track.share_url else "",
|
||||||
replay_gain_write=self.settings.data.metadata_replay_gain,
|
replay_gain_write=self.settings.data.metadata_replay_gain,
|
||||||
|
upc=track.album.upc if track.album and track.album.upc else "",
|
||||||
)
|
)
|
||||||
|
|
||||||
m.save()
|
m.save()
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ class Metadata:
|
|||||||
track_peak_amplitude: float
|
track_peak_amplitude: float
|
||||||
url_share: str
|
url_share: str
|
||||||
replay_gain_write: bool
|
replay_gain_write: bool
|
||||||
|
upc: str
|
||||||
m: mutagen.mp4.MP4 | mutagen.mp4.MP4 | mutagen.flac.FLAC
|
m: mutagen.mp4.MP4 | mutagen.mp4.MP4 | mutagen.flac.FLAC
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
@@ -53,6 +54,7 @@ class Metadata:
|
|||||||
track_peak_amplitude: float = 1.0,
|
track_peak_amplitude: float = 1.0,
|
||||||
url_share: str = "",
|
url_share: str = "",
|
||||||
replay_gain_write: bool = True,
|
replay_gain_write: bool = True,
|
||||||
|
upc: str = "",
|
||||||
):
|
):
|
||||||
self.path_file = path_file
|
self.path_file = path_file
|
||||||
self.title = title
|
self.title = title
|
||||||
@@ -75,6 +77,7 @@ class Metadata:
|
|||||||
self.track_peak_amplitude = track_peak_amplitude
|
self.track_peak_amplitude = track_peak_amplitude
|
||||||
self.url_share = url_share
|
self.url_share = url_share
|
||||||
self.replay_gain_write = replay_gain_write
|
self.replay_gain_write = replay_gain_write
|
||||||
|
self.upc = upc
|
||||||
self.m: mutagen.FileType = mutagen.File(self.path_file)
|
self.m: mutagen.FileType = mutagen.File(self.path_file)
|
||||||
|
|
||||||
def _cover(self) -> bool:
|
def _cover(self) -> bool:
|
||||||
@@ -131,6 +134,7 @@ class Metadata:
|
|||||||
self.m.tags["ISRC"] = self.isrc
|
self.m.tags["ISRC"] = self.isrc
|
||||||
self.m.tags["LYRICS"] = self.lyrics
|
self.m.tags["LYRICS"] = self.lyrics
|
||||||
self.m.tags["URL"] = self.url_share
|
self.m.tags["URL"] = self.url_share
|
||||||
|
self.m.tags["UPC"] = self.upc
|
||||||
|
|
||||||
if self.replay_gain_write:
|
if self.replay_gain_write:
|
||||||
self.m.tags["REPLAYGAIN_ALBUM_GAIN"] = str(self.album_replay_gain)
|
self.m.tags["REPLAYGAIN_ALBUM_GAIN"] = str(self.album_replay_gain)
|
||||||
@@ -153,6 +157,7 @@ class Metadata:
|
|||||||
self.m.tags.add(TSRC(encoding=3, text=self.isrc))
|
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(USLT(encoding=3, lang="eng", desc="desc", text=self.lyrics))
|
||||||
self.m.tags.add(WOAS(encoding=3, text=self.isrc))
|
self.m.tags.add(WOAS(encoding=3, text=self.isrc))
|
||||||
|
self.m.tags.add(TXXX(encoding=3, desc="UPC", text=self.upc))
|
||||||
|
|
||||||
if self.replay_gain_write:
|
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_GAIN", text=str(self.album_replay_gain)))
|
||||||
@@ -174,6 +179,7 @@ class Metadata:
|
|||||||
self.m.tags["\xa9lyr"] = self.lyrics
|
self.m.tags["\xa9lyr"] = self.lyrics
|
||||||
self.m.tags["isrc"] = self.isrc
|
self.m.tags["isrc"] = self.isrc
|
||||||
self.m.tags["\xa9url"] = self.url_share
|
self.m.tags["\xa9url"] = self.url_share
|
||||||
|
self.m.tags["----:com.apple.iTunes:UPC"] = self.upc.encode("utf-8")
|
||||||
|
|
||||||
if self.replay_gain_write:
|
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_GAIN"] = str(self.album_replay_gain).encode("utf-8")
|
||||||
|
|||||||
Reference in New Issue
Block a user