diff --git a/Music/hifi/_NSYNC/Celebrity/01 - Pop.flac b/Music/hifi/_NSYNC/Celebrity/01 - Pop.flac new file mode 100644 index 00000000..556c97b8 Binary files /dev/null and b/Music/hifi/_NSYNC/Celebrity/01 - Pop.flac differ diff --git a/Music/hifi/_NSYNC/Celebrity/cover.jpg b/Music/hifi/_NSYNC/Celebrity/cover.jpg new file mode 100644 index 00000000..202ef70b Binary files /dev/null and b/Music/hifi/_NSYNC/Celebrity/cover.jpg differ diff --git a/Music/tidal/_NSYNC/Celebrity/01 - Pop.flac b/Music/tidal/_NSYNC/Celebrity/01 - Pop.flac new file mode 100644 index 00000000..c5e91544 Binary files /dev/null and b/Music/tidal/_NSYNC/Celebrity/01 - Pop.flac differ diff --git a/Music/tidal/_NSYNC/Celebrity/cover.jpg b/Music/tidal/_NSYNC/Celebrity/cover.jpg new file mode 100644 index 00000000..202ef70b Binary files /dev/null and b/Music/tidal/_NSYNC/Celebrity/cover.jpg differ diff --git a/core/metadata/source.py b/core/metadata/source.py index a679995e..0c101f5e 100644 --- a/core/metadata/source.py +++ b/core/metadata/source.py @@ -1063,6 +1063,22 @@ def embed_source_ids(audio_file, metadata: dict, context: dict = None, runtime=N pp["hifi_copyright"] = cached_meta["copyright"] source_order = [s for s in source_order if s != "hifi"] + # If this download came from Tidal, use cached metadata from the download + # pipeline instead of re-searching the Tidal API. + if cached_meta.get("source") == "tidal": + if _tag_enabled(cfg, "tidal.embed_tags"): + if cfg.get("tidal.tags.track_id", True) and cached_meta.get("track_id"): + pp["id_tags"]["TIDAL_TRACK_ID"] = str(cached_meta["track_id"]) + if cfg.get("tidal.tags.artist_id", True) and cached_meta.get("artist_id"): + pp["id_tags"]["TIDAL_ARTIST_ID"] = str(cached_meta["artist_id"]) + if cfg.get("tidal.tags.isrc", True) and cached_meta.get("isrc"): + pp["tidal_isrc"] = cached_meta["isrc"] + if cfg.get("tidal.tags.bpm", True) and cached_meta.get("bpm"): + pp["tidal_bpm"] = cached_meta["bpm"] + if cfg.get("tidal.tags.copyright", True) and cached_meta.get("copyright"): + pp["tidal_copyright"] = cached_meta["copyright"] + source_order = [s for s in source_order if s != "tidal"] + db = get_database() for source_name in source_order: diff --git a/core/tidal_download_client.py b/core/tidal_download_client.py index ca76805d..f6db0632 100644 --- a/core/tidal_download_client.py +++ b/core/tidal_download_client.py @@ -432,6 +432,14 @@ class TidalDownloadClient: title=title, album=album_name, track_number=track.track_num, + _source_metadata={ + 'source': 'tidal', + 'track_id': track.id, + 'artist_id': track.artist.id if track.artist else None, + 'isrc': track.isrc or None, + 'bpm': track.bpm if track.bpm and track.bpm > 0 else None, + 'copyright': track.copyright or None, + }, ) return track_result