funkwhale/docs/developer/api/subsonic.md

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:

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