---
title: Subsonic
toc_min_heading_level: 2
toc_max_heading_level: 5
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import CodeBlock from '@theme/CodeBlock';
import SubsonicConfig from '!!raw-loader!@site/../config/subsonic.json.example';
import ENVConfig from "@site/docs/configuration/sources/_env_configs/_subsonic.md"
This Source can be used for any application that implements the [Subsonic API](http://www.subsonic.org/pages/api.jsp) and supports the [`getNowPlaying`](http://www.subsonic.org/pages/api.jsp#getNowPlaying) endpoint (such as [Airsonic](https://airsonic.github.io/) and [Navidrome](https://www.navidrome.org/))
* Multiple artists are reported as one value and cannot be separated
* If using [Airsonic Advanced](https://github.com/airsonic-advanced/airsonic-advanced) the password used (under **Credentials**) must be **Decodable**
If your service supports scrobbling to **Listenbrainz** (such as Navidrome), considering using a [**Listenbrainz (Endpoint)** Source](/configuration/sources/listenbrainz-endpoint) instead of this one.
Service-specific scrobble implementations tend to be more accurate and provide more information (multiple artists) compared to the Subsonic API.
Use the optional `usersAllow` property with **File** or **AIO** configuration to restrict scrobbling to a list of defined users.
## Enhanced Playback Reporting
Multi-Scrobbler supports the new [Open Subsonic](https://opensubsonic.netlify.app) extension, [Playback Report](https://opensubsonic.netlify.app/docs/extensions/playbackreport/), that enables millisecond-accurate player position and state reporting.
To use this new data, your Subsonic server must support the extension **and** the active playback Client must report it. The UI for your Subsonic Source and active Player will indicate support using contextual icons.
Usage of Enhanced Playback Reporting is optional: MS will fallback to classic, less accurate Subsonic Now Playing when it is not available.
For Subsonic server/client combinations that do not support [Enhanced Playback Reporting](#enhanced-playback-reporting), multi-scrobbler will cleanup players that report they are playing for much longer period of time than the track's length (when length is reported). This prevents repeated scrobbles from Subsonic-compatible servers that continue returning a track after playback stops.
If the server properly reports no playing song when playback has stopped or this causes issues for your setup, the detection can be disabled by setting `detectStaleNowPlayingFromMinutesAgo` to `false` in File/AIO config.
## Configuration