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:
createPlaylist
deletePlaylist
getAlbum
getAlbumList2
getArtist
getArtistInfo2
getArtists
getAvatar
getCoverArt
getIndexes
getLicense
getMusicFolders
getPlaylist
getPlaylists
getRandomSongs
getSong
getStarred
getStarred2
getUser
ping
scrobble
search3
star
stream
unstar
updatePlaylist
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