A javascript app to scrobble plays from multiple sources to Maloja, Last.fm, and other clients (eventually!)
- Supports scrobbling for many sources
- Supports scrobbling to many clients
- 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.
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
foxxmd/multi-scrobbler:latest
Some setup is required! See the configuration docs for a full reference.
You want to use multi-scrobbler to scrobble your plays from Spotify to Maloja:
SPOTIFY_CLIENT_ID=yourId SPOTIFY_CLIENT_SECRET=yourSecret MALOJA_URL=http://domain.tld MALOJA_API_KEY=1234 node index.js
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
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.
MIT