---
title: Overview
---

# Overview

![Latest Release](https://img.shields.io/github/v/release/foxxmd/multi-scrobbler)
![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)
![Docker Pulls](https://img.shields.io/docker/pulls/foxxmd/multi-scrobbler)

<img src={require('/img/icon.png').default} align="right" alt="multi-scrobbler logo" width="180" height="180"/>

A javascript app to scrobble music you listened to, to [Maloja](https://github.com/krateng/maloja), [Last.fm](https://www.last.fm), [ListenBrainz](https://listenbrainz.org), and [Koito](https://koito.io/).

* Supports scrobbling from many **Sources**
    * [Azuracast](docs/configuration#azuracast)
    * [Deezer](docs/configuration#deezer)
    * [Google Cast (Chromecast)](docs/configuration#google-cast-chromecast)
    * [Icecast](docs/configuration#icecast)
    * [Jellyfin](docs/configuration#jellyfin)
    * [JRiver](docs/configuration#jriver)
    * [Kodi](docs/configuration#kodi)
    * [Koito](docs/configuration#koito-source)
    * [Last.fm](docs/configuration#lastfm-source)
    * [Last.fm (Endpoint)](docs/configuration#lastfm-endpoint)
    * [ListenBrainz](docs/configuration#listenbrainz-source)
    * [ListenBrainz (Endpoint)](docs/configuration#listenbrainz-endpoint)
    * [Maloja](docs/configuration#maloja-source)
    * [Mopidy](docs/configuration#mopidy)
    * [MPD (Music Player Daemon)](docs/configuration#mpd-music-player-daemon)
    * [MPRIS (Linux Desktop)](docs/configuration#mpris)
    * [Musikcube](docs/configuration#musikcube)
    * [Plex](docs/configuration#plex) or [~~Tautulli~~](docs/configuration#tautulli)
    * [Spotify](docs/configuration#spotify)
    * [Subsonic-compatible APIs](docs/configuration#subsonic) (like [Airsonic](https://airsonic.github.io/) and [Navidrome](https://www.navidrome.org/))
    * [WebScrobbler](docs/configuration#webscrobbler)
    * [VLC](docs/configuration#vlc)
    * [Yamaha MusicCast](docs/configuration#yamaha-musiccast)
    * [Youtube Music](docs/configuration#youtube-music)
* Supports scrobbling to many **Clients**
    * [Koito](docs/configuration#koito)
    * [Last.fm](docs/configuration#lastfm)
    * [ListenBrainz](docs/configuration#listenbrainz)
    * [Maloja](docs/configuration#maloja)
* Monitor status of Sources and Clients using [webhooks (Gotify, Ntfy, Apprise)](docs/configuration#webhook-configurations) or [healthcheck endpoint](docs/configuration#health-endpoint)
* Supports [Now Playing](docs/configuration#now-playing) for scrobble Clients
* Supports configuring for single or multiple users (scrobbling for your friends and family!)
* Web server interface for stats, basic control, and detailed 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
* Modify data before scrobbling with [regular expression or search patterns](docs/configuration/transforms)
* Install using [Docker images for x86/ARM](docs/installation#docker) or [locally with NodeJS](docs/installation#nodejs)

[**Quick Start Guide**](docs/quickstart)

<img src={require('/img/status-ui.png').default} width="800"/>

**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.

**But I already scrobble my music to Last.fm/ListenBrainz, is multi-scrobbler for me?**

Yes! You can use [Last.fm as a **Source**](docs/configuration#lastfm-source) or [Listenbrainz as a **Source**](docs/configuration#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.

## How Does multi-scrobbler (MS) Work?

You set up configurations for one or more **Sources** and one or more **Clients**. MS monitors all of your configured **Sources**. When new tracks are played by a Source it grabs that information and then sends it (scrobbles it) to all **Clients** that Source is configured to scrobble to.

### Source

A **Source** is a data source that contains information about tracks you are playing like a music player or platform. Examples are **Spotify, Jellyfin, Plex, Youtube Music, Airsonic**, 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** is an application that stores the historical information about what songs you have played (scrobbles). Examples are **Maloja, 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**](docs/quickstart)

## Installation

[See the **Installation** documentation](docs/installation)

## Configuration

[See the **Configuration** documentation](docs/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](docs/FAQ) before creating an issue!

## Development

[Detailed architecture and development guides for Sources/Clients](docs/development/dev-common)

## License

MIT
