https://github.com/degeens/scrobblet
A lightweight scrobbler for self-hosters.
https://github.com/degeens/scrobblet
csv go golang lastfm lightweight listenbrainz music scrobbler self-hosting spotify
Last synced: about 2 months ago
JSON representation
A lightweight scrobbler for self-hosters.
- Host: GitHub
- URL: https://github.com/degeens/scrobblet
- Owner: degeens
- License: gpl-3.0
- Created: 2025-12-29T23:00:30.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-02-06T20:56:37.000Z (about 2 months ago)
- Last Synced: 2026-02-07T07:40:46.473Z (about 2 months ago)
- Topics: csv, go, golang, lastfm, lightweight, listenbrainz, music, scrobbler, self-hosting, spotify
- Language: Go
- Homepage:
- Size: 1.51 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Scrobblet
[](https://github.com/degeens/scrobblet/actions/workflows/ci.yml)

[](https://goreportcard.com/report/github.com/degeens/scrobblet)
[](https://github.com/degeens/scrobblet/releases)
[](LICENSE)
[](https://hub.docker.com/r/degeens/scrobblet)
Scrobblet is a lightweight scrobbler for self-hosters. It tracks your listening activity from a music source and scrobbles it to your preferred targets, and is easily extensible with new integrations.
Currently, Scrobblet supports **Spotify** as a source and can scrobble to **Last.fm**, **ListenBrainz** (including any ListenBrainz-compatible service), **Maloja**, **Koito**, and **CSV**. More sources and targets can be easily added. Feel free to [create a pull request](https://github.com/degeens/scrobblet/pulls) with your implementation or [open an issue](https://github.com/degeens/scrobblet/issues) to request a new integration.
> **⚠️ Warning**: This project is in early stages of development. Features and APIs may change without notice.
## Getting Started
Create a `docker-compose.yml` file with your configuration:
```yaml
services:
scrobblet:
container_name: scrobblet
image: degeens/scrobblet:latest
volumes:
- scrobblet-data:/etc/scrobblet
ports:
- 7276:7276
environment:
- SCROBBLET_PORT=7276 # Optional
- SCROBBLET_DATA_PATH=/etc/scrobblet # Optional
- SCROBBLET_LOG_LEVEL=INFO # Optional
- SCROBBLET_SOURCE=Spotify
- SCROBBLET_TARGETS=CSV,Koito
# Spotify (Required when SCROBBLET_SOURCE=Spotify)
- SPOTIFY_CLIENT_ID=your_spotify_client_id
- SPOTIFY_CLIENT_SECRET=your_spotify_client_secret
- SPOTIFY_REDIRECT_URL=http://127.0.0.1:7276/spotify/callback
# Last.fm (Required when SCROBBLET_TARGETS=LastFm)
- LASTFM_API_KEY=your_lastfm_api_key
- LASTFM_SHARED_SECRET=your_lastfm_shared_secret
- LASTFM_REDIRECT_URL=http://127.0.0.1:7276/lastfm/callback
# ListenBrainz (Required when SCROBBLET_TARGETS=ListenBrainz)
- LISTENBRAINZ_URL=https://api.listenbrainz.org # Optional
- LISTENBRAINZ_TOKEN=your_listenbrainz_token
# Maloja (Required when SCROBBLET_TARGETS=Maloja)
- MALOJA_URL=your_maloja_url
- MALOJA_TOKEN=your_maloja_token
# Koito (Required when SCROBBLET_TARGETS=Koito)
- KOITO_URL=your_koito_url
- KOITO_TOKEN=your_koito_token
# CSV (Optional when SCROBBLET_TARGETS=CSV)
- CSV_FILE_PATH=/etc/scrobblet/scrobbles.csv # Optional
restart: unless-stopped
volumes:
scrobblet-data:
```
Start the service with `docker-compose up -d`.
## Configuration
For detailed configuration instructions, see the [Configuration Guide](docs/configuration.md).
## License
This project is licensed under the GNU General Public License v3.0. See the [LICENSE](LICENSE) file for details.