map deezer gain to replaygain track metadata

This commit is contained in:
2026-04-21 11:51:17 +02:00
parent 4f86751ff4
commit 1246a24749
2 changed files with 16 additions and 0 deletions

View File

@@ -1248,6 +1248,9 @@ func buildTagMetadata(trackMeta map[string]any, title, source, trackID string, o
if trackGain == "" {
trackGain = replaygainGainFromAny(trackMeta["replayGain"])
}
if trackGain == "" {
trackGain = replaygainGainFromAny(trackMeta["gain"])
}
albumGain := replaygainGainFromAny(trackMeta["replaygain_album_gain"])
if albumGain == "" {
albumGain = replaygainGainFromAny(nestedAny(trackMeta, "album", "replaygain_album_gain"))

View File

@@ -621,3 +621,16 @@ func TestBuildTagMetadataReplayGainFallbacks(t *testing.T) {
t.Fatalf("album replaygain peak=%q", tags.ReplaygainAlbumPeak)
}
}
func TestBuildTagMetadataReplayGainFallsBackToDeezerGain(t *testing.T) {
meta := map[string]any{
"gain": float64(-10),
"performer": map[string]any{"name": "Artist"},
"album": map[string]any{"title": "Album"},
}
tags := buildTagMetadata(meta, "Song", "deezer", "2675762392", ripTrackOptions{})
if tags.ReplaygainTrackGain != "-10 dB" {
t.Fatalf("track replaygain gain=%q", tags.ReplaygainTrackGain)
}
}