3.3 KiB
Subsonic API
Funkwhale supports a subset of the Subsonic API's endpoints. This enables users to listen to music stored on their Funkwhale pod through a Subsonic-compatible app.
We aim to support as many endpoints as we can to give Subsonic users the best possible experience. However, some endpoints require a folder-based endpoint. This doesn't match Funkwhale's internal structure, which means emulating them is difficult.
Supported endpoints
We aim to keep this list up-to-date. If you think something is missing, you can see all supported endpoints in the [API views](https://dev.funkwhale.audio/funkwhale/funkwhale/blob/develop/api/funkwhale_api/subsonic/views.py).
Funkwhale supports both XML and JSON formats for the following Subsonic endpoints:
createPlaylistdeletePlaylistgetAlbumgetAlbumList2getArtistgetArtistInfo2getArtistsgetAvatargetCoverArtgetIndexesgetLicensegetMusicFoldersgetPlaylistgetPlaylistsgetRandomSongsgetSonggetStarredgetStarred2getUserpingscrobblesearch3starstreamunstarupdatePlaylist
Additional properties
Funkwhale returns some additional properties to Subsonic payloads. You can use these properties to adapt your client behavior if needed:
* - Property
- Data type
- Description
* - `type`
- String
- The name of the app (`funkwhale`)
* - `funkwhaleVersion`
- String
- The Funkwhale version the pod is running
{
"subsonic-response": {
"type": "funkwhale",
"funkwhaleVersion": "1.3.0"
}
}
Test a Subsonic app
We host a demo server at https://demo.funkwhale.audio which you can use to test your Subsonic app.
You can test the Subsonic API by logging in with a Subsonic client or by directly by calling an endpoint. For example, call this URL to test the ping endpoint: https://demo.funkwhale.audio/rest/ping.view?f=json