multi-scrobbler icon indicating copy to clipboard operation
multi-scrobbler copied to clipboard

Scrobble plays from multiple sources to multiple clients

multi-scrobbler

Latest Release License: MIT Docker Pulls

A javascript app to scrobble plays from multiple sources to Maloja, Last.fm, and other clients (eventually!)

  • Supports scrobbling for many sources
    • Spotify
    • Plex or Tautulli
    • Subsonic-compatible APIs (like Airsonic)
    • Jellyfin
    • Last.fm
    • Deezer
  • Supports scrobbling to many clients
    • Maloja
    • Last.fm
  • Supports configuring for single or multiple users (scrobbling for your friends and family!)
  • Web server interface for stats, basic control, and detailed logs
  • Smart handling of credentials (persistent, authorization through app)
  • Easy configuration through ENVs or JSON
  • Built for Docker and unattended use!

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.
  • Consolidate play sources -- 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, is multi-scrobbler for me?

Yes! You can use Last.fm as a Source to mirror scrobbles from your Last.fm profile to Maloja. 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.

Installation

Locally

Clone this repository somewhere and then install from the working directory

git clone https://github.com/FoxxMD/multi-scrobbler.git .
cd multi-scrobbler
npm install

Docker

foxxmd/multi-scrobbler:latest

Setup

Some setup is required! See the configuration docs for a full reference.

TLDR, Minimal Example

You want to use multi-scrobbler to scrobble your plays from Spotify to Maloja:

Local

SPOTIFY_CLIENT_ID=yourId SPOTIFY_CLIENT_SECRET=yourSecret MALOJA_URL=http://domain.tld MALOJA_API_KEY=1234 node index.js

Docker

docker run -e "SPOTIFY_CLIENT_ID=yourId" -e "SPOTIFY_CLIENT_SECRET=yourSecret" -e "MALOJA_URL=http://domain.tld" -e "MALOJA_API_KEY=1234" -v /path/on/host/config:/home/node/app/config foxxmd/multi-scrobbler

But I want to use json for configuration?

Then use config.json.example and drop it in your CONFIG_DIR directory

Is there an example configuration using everything?

Yes, check out the kitchen sink example

Usage

A status page with statistics, recent logs, and some runtime configuration options can be found at

https://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 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.

License

MIT