Skip to content

OpenSubsonic extensions

OpenSubsonic is a community-driven evolution of the Subsonic API. It adds new endpoints and richer response fields that the original Subsonic spec never standardized.

SwiftSonic implements OpenSubsonic extensions where they are part of the published spec. The matrix below tracks what is supported in 0.6.x.

TODO: this section MUST be verified against the actual source before publishing. Walk through the methods on SwiftSonicClient and the response models in 0.6.1, cross-reference against opensubsonic.netlify.app, and fill in the table.

ExtensionSupportedNotes
openSubsonic field on SubsonicResponseTODOTODO
OpenSubsonicExtension discoveryTODOTODO
Multi-artist tracks (artists, albumArtists)TODOTODO
played / bookmarkPosition enrichmentTODOTODO
sortName fieldsTODOTODO

TODO: document how to call getOpenSubsonicExtensions (or equivalent) to discover what the connected server actually implements, and how SwiftSonic exposes that data.

A vanilla Subsonic server does not advertise the OpenSubsonic schema. SwiftSonic detects this transparently — calls that depend on OpenSubsonic-only fields will return nil or empty for those fields rather than failing.