diff --git a/internal/app/app.go b/internal/app/app.go index 062162e..f61cbb9 100644 --- a/internal/app/app.go +++ b/internal/app/app.go @@ -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")) diff --git a/internal/app/app_test.go b/internal/app/app_test.go index cda8812..052963c 100644 --- a/internal/app/app_test.go +++ b/internal/app/app_test.go @@ -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) + } +}