diff options
| author | Robert Honz <exislow+github@gmail.com> | 2024-11-11 10:05:32 +0100 |
|---|---|---|
| committer | Robert Honz <exislow+github@gmail.com> | 2024-11-11 10:05:32 +0100 |
| commit | d7112063a06ee226665bfe9d0849c8c718a0fb0c (patch) | |
| tree | f7baa703e3966148d1cd1a2cd5755581f8274788 /tidal_dl_ng/metadata.py | |
| parent | 6732c5e15e3e72b0b671f5a5d60dbd482c184173 (diff) | |
| download | tidal-dl-ng-d7112063a06ee226665bfe9d0849c8c718a0fb0c.tar.gz | |
Option added to embed and download album art.
Diffstat (limited to 'tidal_dl_ng/metadata.py')
| -rw-r--r-- | tidal_dl_ng/metadata.py | 40 |
1 files changed, 7 insertions, 33 deletions
diff --git a/tidal_dl_ng/metadata.py b/tidal_dl_ng/metadata.py index b70b4c8..d9ecb8c 100644 --- a/tidal_dl_ng/metadata.py +++ b/tidal_dl_ng/metadata.py @@ -1,10 +1,7 @@ import mutagen -import requests from mutagen import flac, id3, mp4 from mutagen.id3 import APIC, TALB, TCOM, TCOP, TDRC, TIT2, TOPE, TPE1, TRCK, TSRC, USLT -from tidal_dl_ng.constants import REQUESTS_TIMEOUT_SEC - class Metadata: path_file: str @@ -22,7 +19,7 @@ class Metadata: isrc: str lyrics: str path_cover: str - url_cover: str + cover_data: bytes m: mutagen.mp4.MP4 | mutagen.mp4.MP4 | mutagen.flac.FLAC def __init__( @@ -41,8 +38,7 @@ class Metadata: albumartist: str = "", date: str = "", lyrics: str = "", - path_cover: str = "", - url_cover: str = "", + cover_data: bytes = None, ): self.path_file = path_file self.title = title @@ -58,27 +54,25 @@ class Metadata: self.composer = composer self.isrc = isrc self.lyrics = lyrics - self.path_cover = path_cover - self.url_cover = url_cover + self.cover_data = cover_data self.m: mutagen.mp4.MP4 | mutagen.flac.FLAC | mutagen.mp3.MP3 = mutagen.File(self.path_file) def _cover(self) -> bool: result: bool = False - data_cover: str | bytes = self.cover_data(url=self.url_cover, path_file=self.path_cover) - if data_cover: + if self.cover_data: if isinstance(self.m, mutagen.flac.FLAC): flac_cover = flac.Picture() flac_cover.type = id3.PictureType.COVER_FRONT - flac_cover.data = data_cover + flac_cover.data = self.cover_data flac_cover.mime = "image/jpeg" self.m.clear_pictures() self.m.add_picture(flac_cover) elif isinstance(self.m, mutagen.mp3.MP3): - self.m.tags.add(APIC(encoding=3, data=data_cover)) + self.m.tags.add(APIC(encoding=3, data=self.cover_data)) elif isinstance(self.m, mutagen.mp4.MP4): - cover_mp4 = mp4.MP4Cover(data_cover) + cover_mp4 = mp4.MP4Cover(self.cover_data) self.m.tags["covr"] = [cover_mp4] result = True @@ -142,23 +136,3 @@ 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 - - @staticmethod - def cover_data(url: str = None, path_file: str = None) -> str | bytes: - result: str | bytes = "" - - if url: - try: - result = requests.get(url, timeout=REQUESTS_TIMEOUT_SEC).content - except Exception as e: - # TODO: Implement propper logging. - print(e) - elif path_file: - try: - with open(path_file, "rb") as f: - result = f.read() - except OSError as e: - # TODO: Implement propper logging. - print(e) - - return result |
