Self-Hosted Alternatives to Last.fm
Why Replace Last.fm?
Last.fm has been the default music scrobbling service since 2002, but the reasons to self-host your listening data are growing:
- Data ownership. Last.fm owns your scrobble history. If the service shuts down or your account gets deleted, decades of listening data vanish. Self-hosted solutions store everything on your hardware.
- Privacy. Last.fm tracks what you listen to, when, and how often. They share aggregated data with record labels and advertisers. A self-hosted scrobbler keeps your listening habits private.
- API limitations. Last.fm’s free API is rate-limited and increasingly restrictive. Self-hosted tools give you full API access to your own data.
- Feature stagnation. Last.fm’s development has slowed significantly since CBS Interactive acquired it. Core features haven’t changed in years. Open-source alternatives are actively improving.
- Cost. Last.fm Pro was discontinued, but many features that were once free now require workarounds. Self-hosted scrobblers are free forever.
The self-hosting community has strong alternatives that give you complete ownership of your listening history while providing comparable (or better) analytics and visualization.
Best Alternatives
Maloja — Best Overall Replacement
Maloja is the most direct Last.fm replacement. It’s a self-hosted scrobbling server that tracks your listening history, generates statistics and charts, and provides a clean web dashboard. It accepts scrobbles from any source that supports the Last.fm, ListenBrainz, or Maloja native API.
Key strengths:
- Full scrobble history with artist/album/track statistics
- Charts and visualizations (top artists, albums, tracks by time period)
- Scrobble rules engine — define rules to fix inconsistent artist names, merge duplicates, or filter unwanted scrobbles
- Native API that any Subsonic client (Navidrome, gonic) can scrobble to
- Data stored in a local SQLite database — fully portable
- Docker image under 100 MB, runs on minimal hardware
Limitations:
- No social features (no friends, no compatibility scores)
- Smaller ecosystem than Last.fm
- Web UI is functional but not as polished as Last.fm’s
Read our full guide: Self-Hosting Maloja with Docker Compose
ListenBrainz — Best for Community Features
ListenBrainz is a free, open-source project by the MetaBrainz Foundation (the same organization behind MusicBrainz). While it’s primarily a hosted service at listenbrainz.org, the entire codebase is open-source and can be self-hosted.
Key strengths:
- Full social features — follow users, compare tastes, discover music through others’ listening
- MusicBrainz integration for accurate metadata
- Open data — all listening data is publicly accessible (you can opt out per-listen)
- Recommendations engine based on collaborative filtering
- Import existing Last.fm history
- Active development by the MetaBrainz Foundation
Limitations:
- Self-hosting is complex (multiple services: web, API, timescale, Spark)
- Most users use the hosted version at listenbrainz.org rather than self-hosting
- Resource-intensive for a full self-hosted deployment
multi-scrobbler — Best for Multi-Source Aggregation
multi-scrobbler isn’t a scrobbling server itself — it’s an aggregator that collects scrobbles from multiple sources (Spotify, Plex, Jellyfin, MPRIS, Tautulli, YouTube Music, etc.) and forwards them to one or more scrobbling services (Last.fm, ListenBrainz, Maloja).
Key strengths:
- Aggregates scrobbles from 10+ sources into a single destination
- Supports forwarding to multiple services simultaneously
- Detects and prevents duplicate scrobbles
- Dead letter queue for failed scrobbles (retries automatically)
- Web dashboard showing scrobble status in real-time
- Docker deployment, lightweight
Limitations:
- Not a replacement on its own — it’s middleware between sources and servers
- Configuration requires understanding source/client terminology
Best combined setup: Run Maloja as your self-hosted scrobbling server + multi-scrobbler as the aggregation layer to capture scrobbles from all your listening sources.
Migration Guide
Exporting Your Last.fm History
-
Use Last.fm’s export tool — visit
https://www.last.fm/settings/accountand request a data download. This gives you a CSV of your complete scrobble history. -
Alternative: Use lastfm-to-csv — a Python tool that exports your history via the Last.fm API:
pip install lastfm-to-csv lastfm-to-csv --user YOUR_USERNAME --output scrobbles.csv -
Import into Maloja:
# Copy the export file into the Maloja container docker cp scrobbles.csv maloja:/ # Import using Maloja's CLI docker exec maloja maloja import scrobbles.csvMaloja supports importing from Last.fm CSV exports, Spotify extended streaming history, and its own backup format.
Configuring Scrobble Sources
After setting up Maloja, configure your music players to scrobble to it:
- Navidrome: Built-in ListenBrainz scrobbling — point it at your Maloja instance (Maloja supports the ListenBrainz API)
- gonic: Built-in Last.fm and ListenBrainz scrobbling — configure per-user in the web UI
- Jellyfin: Install the ListenBrainz plugin, point at Maloja
- Plex: Use multi-scrobbler with the Tautulli or Plex source
- Spotify (if you still use it): Use multi-scrobbler with the Spotify source
Cost Comparison
| Last.fm | Maloja (Self-Hosted) | |
|---|---|---|
| Monthly cost | Free (limited) | $0 |
| Data ownership | Last.fm owns it | You own it |
| Privacy | Tracking + data sharing | Fully private |
| API limits | Rate-limited | Unlimited |
| Social features | Yes | No (Maloja) / Yes (ListenBrainz) |
| Custom analytics | Limited | Full database access |
| Export capability | CSV download | Direct database access + API |
| Server cost | $0 | ~$0 (runs on existing hardware) |
What You Give Up
- Social discovery. Last.fm’s compatibility scores and friend recommendations don’t exist in Maloja. If you scrobble to both Last.fm and Maloja, you can keep the social features while owning your data.
- Artist pages and wiki content. Last.fm aggregates artist bios, event listings, and similar artist recommendations from a massive user base. Self-hosted tools don’t have this.
- Spotify integration. Last.fm connects directly to Spotify for background scrobbling. Self-hosted solutions need multi-scrobbler as middleware.
- Mobile app. Last.fm has dedicated mobile apps. Maloja is web-only (though it works well as a PWA).
The most common pattern is running both: Maloja as your primary, private scrobble store, and Last.fm as a secondary destination for social features. multi-scrobbler makes this dual-write setup trivial.
FAQ
Can I scrobble from Spotify to a self-hosted server?
Yes. Use multi-scrobbler with the Spotify source — it connects to Spotify’s API and forwards scrobbles to Maloja, ListenBrainz, or any compatible server. Setup requires a Spotify developer app (free) for API credentials. multi-scrobbler polls your Spotify listening history and forwards each track automatically. You can run Spotify as your player while keeping your scrobble data on your own server.
How do I import my complete Last.fm listening history?
Export your history using the lastfm-to-csv Python tool: pip install lastfm-to-csv && lastfm-to-csv --user YOUR_USERNAME --output scrobbles.csv. This pulls your entire scrobble history via the Last.fm API. Then import into Maloja: docker exec maloja maloja import scrobbles.csv. Maloja handles Last.fm’s CSV format natively. For histories with 100,000+ scrobbles, the import takes a few minutes but processes everything in one pass.
Does Maloja have a mobile app?
Not a native app, but Maloja’s web interface works well as a Progressive Web App (PWA) — add it to your phone’s home screen for an app-like experience. For viewing your scrobble dashboard on mobile, the responsive web UI is sufficient. Scrobbling itself happens at the music player level — your Subsonic client (Navidrome, gonic), Jellyfin app, or multi-scrobbler handles sending scrobbles to Maloja regardless of your device.
Can I scrobble from multiple music sources at once?
Yes — this is exactly what multi-scrobbler is designed for. Configure it to collect scrobbles from Spotify, Plex (via Tautulli), Jellyfin, Navidrome, YouTube Music, MPRIS (Linux desktop players), and more. multi-scrobbler deduplicates across sources (if you play the same track on Plex and it also shows in Tautulli, it records one scrobble) and forwards everything to your Maloja instance. Your complete listening activity, regardless of platform, ends up in one place.
Are there social features like Last.fm’s compatibility scores?
Not in Maloja. Maloja is a private, personal scrobbling server — no social network, no friends list, no compatibility scoring. If you want social features, use ListenBrainz (hosted at listenbrainz.org or self-hosted). ListenBrainz has user following, taste comparisons, and music recommendations based on collaborative filtering. The common compromise: scrobble to both Maloja (private data ownership) and ListenBrainz or Last.fm (social features) using multi-scrobbler.
How much server resources does Maloja need?
Minimal. Maloja runs in a single Docker container using under 100 MB of RAM and negligible CPU. The SQLite database stays small — 100,000 scrobbles use roughly 20-30 MB of disk space. You can run Maloja on a Raspberry Pi alongside your music server with no performance concerns. It’s one of the lightest self-hosted services available.
Can I use Maloja’s data for custom charts and visualizations?
Yes. Maloja provides a REST API for querying your scrobble data — top artists by time period, listening trends, play counts, and more. The built-in web dashboard shows charts and statistics, but you can also query the API directly or access the SQLite database for custom analysis. For advanced visualizations, export data from Maloja and import into Grafana for custom dashboards with time-series charts, heatmaps, and comparisons.
Related
Get self-hosting tips in your inbox
Get the Docker Compose configs, hardware picks, and setup shortcuts we don't put in articles. Weekly. No spam.
Comments