Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/FoxxMD/multi-scrobbler. Scrobble plays from multiple sources to multiple clients docs.multi-scrobbler.app
deezer docker jellyfin koito lastfm listenbrainz maloja mopidy mpris music music-assistant plex scrobble self-hosted spotify subsonic tautulli youtube-music
Something went wrong. Try again.
7.8 kB · 150 lines
MDX
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151---slug: /title: Overviewsidebar_position: 1---import Carousel from '@site/src/components/Carousel/NextCarousel';import BrowserOnly from '@docusaurus/BrowserOnly';

<img src={require('/img/icon.png').default} align="right" alt="multi-scrobbler logo" width="180" height="180"/>
A dockerized app that monitors your music listening activity from *everywhere* and scrobbles it *anywhere*.
* Supports monitoring activity from many [**Sources**](/configuration/sources) * [Apple Music](/configuration/sources/applemusic) * [Azuracast](/configuration/sources/azuracast) * [Deezer](/configuration/sources/deezer) * [Google Cast (Chromecast)](/configuration/sources/google-cast) * [Icecast](/configuration/sources/icecast) * [Jellyfin](/configuration/sources/jellyfin) * [JRiver](/configuration/sources/jriver) * [Kodi](/configuration/sources/kodi) * [Koito](/configuration/sources/koito-source) * [Last.fm](/configuration/sources/lastfm-source) * [Libre.fm](/configuration/sources/librefm-source) * [Last.fm (Endpoint)](/configuration/sources/lastfm-endpoint) * [ListenBrainz](/configuration/sources/listenbrainz-source) * [ListenBrainz (Endpoint)](/configuration/sources/listenbrainz-endpoint) (Home Assistant, Navidrome, TIDAL Hi-Fi) * [Maloja](/configuration/sources/maloja) * [Mopidy](/configuration/sources/mopidy) * [MPD (Music Player Daemon)](/configuration/sources/mpd) * [MPRIS (Linux Desktop)](/configuration/sources/mpris) * [Musikcube](/configuration/sources/musikcube) * [Music Assistant](/configuration/sources/listenbrainz-endpoint#setup-for-popular-apps) * [Plex](/configuration/sources/plex) * [Rocksky](/configuration/sources/rocksky-source) * [Sonos](/configuration/sources/sonos) * [Spotify](/configuration/sources/spotify) * [Subsonic-compatible APIs](/configuration/sources/subsonic) (like [Navidrome](https://www.navidrome.org/) and [Gonic](https://github.com/sentriz/gonic)) * [teal.fm](/configuration/sources/tealfm-source) * [WebScrobbler](/configuration/sources/webscrobbler) * [VLC](/configuration/sources/vlc) * [Yamaha MusicCast](/configuration/sources/yamaha-musiccast) * [Yandex Music](/configuration/sources/yandex-music) * [Youtube Music](/configuration/sources/youtube-music)* Supports scrobbling to many [**Clients**](/configuration/clients) * [Discord](/configuration/clients/discord) (Now Playing) * [Koito](/configuration/clients/koito) * [Last.fm](/configuration/clients/lastfm) * [Libre.fm](/configuration/clients/librefm) * [ListenBrainz](/configuration/clients/listenbrainz) * [Maloja](/configuration/clients/maloja) * [Rocksky](/configuration/clients/rocksky) * [teal.fm](/configuration/clients/tealfm)* Enhance/correct scrobble data with [search patterns](/configuration/transforms), [built-in corrections](/configuration/transforms), or the [Musicbrainz](/configuration/transforms/musicbrainz) database* Monitor status of Sources and Clients using [webhooks (Gotify, Ntfy, Apprise)](/configuration#webhook-configurations) or [healthcheck endpoint](/configuration#health-endpoint)* Supports [Now Playing](/configuration/clients#now-playing) for scrobble Clients* Supports configuring for single or multiple users (scrobbling for your friends and family!)* Mobile-friendly web interface for stats, control, scrobble audit trail, and logs* Graceful network and client failure handling (queued scrobbles that auto-retry)* Smart handling of credentials (persistent, authorization through app)* Easy configuration through [ENVs or JSON](/configuration#configuration-types)* Install using [Docker images for x86/ARM](/installation#docker) or [locally with NodeJS](/installation#nodejs)
[**Quick Start Guide**](/quickstart)
<Carousel/>
**Why should I use this over a browser extension and/or mobile app scrobbler?**
* **Platform independent** -- Because multi-scrobbler communicates directly with service APIs it will scrobble everything you play regardless of where you play it. No more need for apps on every platform you use!* **Open-source** -- Get peace of mind knowing exactly how your personal data is being handled.* **Track your activity regardless of where you listen** -- Scrobble from many Sources to one Client with ease and without duplicating tracks.* **Manage scrobbling for others** -- Scrobble for your friends and family without any setup on their part. Easily silo sources to specific clients to keep plays separate.* **Standardize your data** -- Match your scrobbles with the [Musicbrainz](/configuration/transforms/musicbrainz) database to ensure scrobbled data is as correct and rich as possible.
**But I already scrobble my music to Last.fm/ListenBrainz, is multi-scrobbler for me?**
Yes! You can use [Last.fm as a **Source**](/configuration/sources/lastfm-source) or [Listenbrainz as a **Source**](configuration/sources/listenbrainz-source) to forward scrobbles from your profile to any other Client! That way you can keep your current scrobble setup as-is but still get the benefit of capturing your data to a self-hosted location.
Use the **Last.fm** tab in the [Quickstart Sources](/quickstart/#setup-sources) to get started.
## How Does multi-scrobbler (MS) Work?
You set up [configurations](/configuration) for one or more [**Sources**](/configuration/sources) and one or more [**Clients**](/configuration/clients). MS monitors all of your configured **Sources**. When new tracks are played by a Source MS grabs that information and then sends it (scrobbles it) to all **Clients** that Source is configured to forward to.
<details>
<summary>Diagram</summary>
<img className='image-center' src={require('/img/diagrams/ms-visual.png').default}/>
</details>
### Source
A [**Source**](/configuration/sources) is a data source that contains information about music you are playing or have listened to, such as: a desktop player, web music player, or cloud music service. Examples are **Spotify, Jellyfin, Plex, Youtube Music, Navidrome**, etc...
Source configurations consist of:
* A friendly name.* Any data needed to communicate or authenticate with the Source.* An optional list of Client names that the Source should scrobble to. If omitted the Source also scrobbles to all configured Clients.
### Client
A [**Client**](/configuration/clients) is an application that stores the historical information about what music you have played (scrobbles). Examples are **Koito, Last.fm, Listenbrainz**...
Client configurations consist of:
* A friendly name.* Any data needed to communicate or authenticate with the Client.
## Quick Start
[See the **Quick Start Guide**](/quickstart)
## Installation
[See the **Installation** documentation](/installation)
## Configuration
[See the **Configuration** documentation](/configuration)
## Usage
A status page with statistics, recent logs, and some runtime configuration options can be found at
```http://localhost:9078```Output is also provided to stdout/stderr as well as file if specified in configuration.
On first startup you may need to authorize Spotify and/or Last.fm by visiting the callback URL (which can also be accessed from the status page). Visit the status page above to find the applicable link to trigger this.
## Help/FAQ
Having issues with connections or configuration? Check the [FAQ](/FAQ) before creating an issue!
## Development
[Detailed architecture and development guides for Sources/Clients](/development/dev-common)
## License
MIT