From a6518b0e80d3aaeeb9485ace07cf612ef537d87a Mon Sep 17 00:00:00 2001 From: Charlie Date: Mon, 13 Apr 2026 20:22:12 +0200 Subject: [PATCH 1/2] (feat) add MbzReleaseGroupID to getAlbumList2 --- server/subsonic/helpers.go | 1 + server/subsonic/responses/responses.go | 1 + 2 files changed, 2 insertions(+) diff --git a/server/subsonic/helpers.go b/server/subsonic/helpers.go index 74d57ade4..af3e02d04 100644 --- a/server/subsonic/helpers.go +++ b/server/subsonic/helpers.go @@ -476,6 +476,7 @@ func buildOSAlbumID3(ctx context.Context, album model.Album) *responses.OpenSubs dir.IsCompilation = album.Compilation dir.DiscTitles = buildDiscSubtitles(album) dir.ExplicitStatus = mapExplicitStatus(album.ExplicitStatus) + dir.MusicBrainzReleaseGroupID = album.MbzReleaseGroupID if len(album.Tags.Values(model.TagAlbumVersion)) > 0 { dir.Version = album.Tags.Values(model.TagAlbumVersion)[0] } diff --git a/server/subsonic/responses/responses.go b/server/subsonic/responses/responses.go index f0bb26f66..1acd6b25c 100644 --- a/server/subsonic/responses/responses.go +++ b/server/subsonic/responses/responses.go @@ -278,6 +278,7 @@ type OpenSubsonicAlbumID3 struct { DisplayArtist string `xml:"displayArtist,attr,omitempty" json:"displayArtist"` ExplicitStatus string `xml:"explicitStatus,attr,omitempty" json:"explicitStatus"` Version string `xml:"version,attr,omitempty" json:"version"` + MusicBrainzReleaseGroupID string `xml:"musicBrainzReleaseGroupId,attr,omitempty" json:"musicBrainzReleaseGroupId,omitempty"` } type ArtistWithAlbumsID3 struct { From 76bfa6247127e28cb5868e51bf7da655a720d8a6 Mon Sep 17 00:00:00 2001 From: Charlie Date: Mon, 13 Apr 2026 20:39:05 +0200 Subject: [PATCH 2/2] (feat) add MbzReleaseGroupID to getAlbumList2 --- server/subsonic/responses/responses.go | 36 +++++++++++++------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/server/subsonic/responses/responses.go b/server/subsonic/responses/responses.go index 1acd6b25c..8bb46326a 100644 --- a/server/subsonic/responses/responses.go +++ b/server/subsonic/responses/responses.go @@ -261,24 +261,24 @@ type AlbumID3 struct { type OpenSubsonicAlbumID3 struct { // OpenSubsonic extensions - Played *time.Time `xml:"played,attr,omitempty" json:"played,omitempty"` - UserRating int32 `xml:"userRating,attr,omitempty" json:"userRating"` - AverageRating float64 `xml:"averageRating,attr,omitempty" json:"averageRating,omitempty"` - Genres Array[ItemGenre] `xml:"genres,omitempty" json:"genres"` - MusicBrainzId string `xml:"musicBrainzId,attr,omitempty" json:"musicBrainzId"` - IsCompilation bool `xml:"isCompilation,attr,omitempty" json:"isCompilation"` - SortName string `xml:"sortName,attr,omitempty" json:"sortName"` - DiscTitles Array[DiscTitle] `xml:"discTitles,omitempty" json:"discTitles"` - OriginalReleaseDate ItemDate `xml:"originalReleaseDate,omitempty" json:"originalReleaseDate"` - ReleaseDate ItemDate `xml:"releaseDate,omitempty" json:"releaseDate"` - ReleaseTypes Array[string] `xml:"releaseTypes,omitempty" json:"releaseTypes"` - RecordLabels Array[RecordLabel] `xml:"recordLabels,omitempty" json:"recordLabels"` - Moods Array[string] `xml:"moods,omitempty" json:"moods"` - Artists Array[ArtistID3Ref] `xml:"artists,omitempty" json:"artists"` - DisplayArtist string `xml:"displayArtist,attr,omitempty" json:"displayArtist"` - ExplicitStatus string `xml:"explicitStatus,attr,omitempty" json:"explicitStatus"` - Version string `xml:"version,attr,omitempty" json:"version"` - MusicBrainzReleaseGroupID string `xml:"musicBrainzReleaseGroupId,attr,omitempty" json:"musicBrainzReleaseGroupId,omitempty"` + Played *time.Time `xml:"played,attr,omitempty" json:"played,omitempty"` + UserRating int32 `xml:"userRating,attr,omitempty" json:"userRating"` + AverageRating float64 `xml:"averageRating,attr,omitempty" json:"averageRating,omitempty"` + Genres Array[ItemGenre] `xml:"genres,omitempty" json:"genres"` + MusicBrainzId string `xml:"musicBrainzId,attr,omitempty" json:"musicBrainzId"` + MusicBrainzReleaseGroupID string `xml:"musicBrainzReleaseGroupId,attr,omitempty" json:"musicBrainzReleaseGroupId,omitempty"` + IsCompilation bool `xml:"isCompilation,attr,omitempty" json:"isCompilation"` + SortName string `xml:"sortName,attr,omitempty" json:"sortName"` + DiscTitles Array[DiscTitle] `xml:"discTitles,omitempty" json:"discTitles"` + OriginalReleaseDate ItemDate `xml:"originalReleaseDate,omitempty" json:"originalReleaseDate"` + ReleaseDate ItemDate `xml:"releaseDate,omitempty" json:"releaseDate"` + ReleaseTypes Array[string] `xml:"releaseTypes,omitempty" json:"releaseTypes"` + RecordLabels Array[RecordLabel] `xml:"recordLabels,omitempty" json:"recordLabels"` + Moods Array[string] `xml:"moods,omitempty" json:"moods"` + Artists Array[ArtistID3Ref] `xml:"artists,omitempty" json:"artists"` + DisplayArtist string `xml:"displayArtist,attr,omitempty" json:"displayArtist"` + ExplicitStatus string `xml:"explicitStatus,attr,omitempty" json:"explicitStatus"` + Version string `xml:"version,attr,omitempty" json:"version"` } type ArtistWithAlbumsID3 struct {