Your Spotify
Self-hosted statistics & metrics tool that provides allows you to record your Spotify listening activity and have statistics about them served through.
Self-hosted music analytics, honestly reviewed. No marketing fluff, just what you get when you stop trusting Spotify Wrapped to tell your story.
TL;DR
- What it is: GPL-3.0 self-hosted web app that polls the Spotify API and builds a personal listening statistics dashboard you actually own [README].
- Who it’s for: Spotify subscribers who want year-round listening stats, not just Wrapped once a year — and who don’t want a third-party SaaS service holding their music history.
- Cost savings: The direct SaaS alternatives (stats.fm Pro, Spotistats premium) run $3–6/mo. Your Spotify self-hosted costs what a MongoDB container on a $5 VPS costs. The bigger value isn’t money — it’s data permanence and privacy.
- Key strength: Tracks listening continuously, lets you import your full Spotify history from privacy exports, and gives you statistics that go back years — not just the last 12 months [README].
- Key weakness: Requires a Spotify Developer Application (manual setup), has no mobile app, depends on Spotify’s API staying available, and the GPL-3.0 license means you can’t embed it in proprietary products [README][GitHub].
What is Your Spotify
Your Spotify is a self-hosted application that tracks what you listen to on Spotify and offers a dashboard to explore statistics about it. The description in the GitHub README is refreshingly plain: “YourSpotify is a self-hosted application that tracks what you listen and offers you a dashboard to explore statistics about it!” [README].
It works by running a web server that polls the Spotify API on a schedule, recording every track you play to a local MongoDB database. A companion web application frontend lets you query and visualize that data. The entire thing runs as a Docker Compose stack — server, frontend, and MongoDB — on hardware you control [README].
The project has 4,323 GitHub stars and 179 forks with 26 releases and 442 commits [GitHub]. That’s a modest but healthy number for a personal-use analytics tool. It isn’t a product company — it’s a solo/community project filling a specific gap: Spotify’s own analytics are deliberately minimal. Wrapped gives you one annual recap. The app’s internal “Your Music” stats show top artists and tracks but only for the last month, six months, and “all time” with no drill-down. Your Spotify fills that gap by giving you a database of every play, queryable however you want.
The license is GPL-3.0, not MIT. That matters for anyone thinking about embedding this in their own product — GPL requires derivative works to also be open source [GitHub].
Why people choose it
The third-party review sources provided for this article turned out to be about Spotify the commercial streaming service rather than the Your Spotify self-hosted app — so direct review synthesis isn’t available for this tool the way it is for more widely covered projects. What follows is grounded in the README, GitHub history, and the well-documented community appetite for this type of tool.
The Spotify Wrapped problem. Wrapped is a marketing event, not a data product. It arrives once a year, covers a fixed calendar period, doesn’t show you per-month trends, doesn’t let you compare years side-by-side, and disappears from the app after a few weeks. For anyone who takes their music listening seriously — and plenty of people do — this is genuinely frustrating. Your Spotify exists because that frustration is real and widely shared.
The stats.fm / third-party app problem. Services like stats.fm, Spotistats, and the older Last.fm do solve the “more stats” problem, but they require you to hand your Spotify OAuth token (and therefore your full listening history) to another company. You are also dependent on that company staying in business, keeping the free tier alive, and not changing their data retention policies. Self-hosting solves all of that: your listening data goes into your MongoDB instance, you own the export, and the stats are available until you turn the server off.
The historical import. This is a sleeper feature. Spotify lets you request a full data export from their privacy portal — it includes your complete listening history going back as far as the account exists. Your Spotify can import this file directly, so from day one of self-hosting, your dashboard isn’t empty. You get statistics on years of listening, not just what you’ve played since you set up the server [README]. This is a genuine differentiator from stream-only approaches.
The Prometheus integration. The README documents optional Prometheus metrics export with basic auth [README]. That’s not a feature a casual user will care about, but it signals something about the codebase quality: this is a project that thought about production monitoring, not just getting the charts to render.
Features
Based on the README and project structure [README][GitHub]:
Core tracking:
- Continuous polling of the Spotify API to record every play
- Full listening history stored locally in MongoDB
- Timezone-aware stats (configurable
TIMEZONEenvironment variable — defaults to Europe/Paris) - Authentication via Spotify OAuth with configurable cookie validity
History import:
- Import from Spotify Privacy Data export (your account’s full history)
- Import from Spotify “Full Privacy Data” (extended history, recommended)
- Import cache configurable to reduce Spotify API calls during large imports (
MAX_IMPORT_CACHE_SIZE)
Dashboard:
- Web application for exploring your statistics
- Track, artist, and album statistics from your local database
- Historical drill-down beyond what Spotify’s native UI exposes
Operations:
- Docker Compose deployment (server + MongoDB + web client) [README]
- Prometheus metrics endpoint with basic auth (
PROMETHEUS_USERNAME,PROMETHEUS_PASSWORD) [README] - Configurable CORS for reverse proxy setups
FRAME_ANCESTORSsupport for embedding in dashboards (explicitly documented as a security decision — the env var name is a pointed warning) [README]- Log level control via
LOG_LEVEL - ARM device support (with a caveat: use mongo:4.4 on ARM, not Mongo >= 5) [README]
What it doesn’t do:
- No mobile app — statistics are accessible via a web browser
- No music playback — it is purely analytics
- No social features, no comparing with friends
- No Last.fm scrobbling bridge
- No alerts or automation hooks
Pricing: SaaS vs self-hosted math
This tool doesn’t fit the standard SaaS-replacement cost analysis because the direct competitors are either free (Last.fm basic tier) or low-cost freemium (stats.fm).
Your Spotify self-hosted:
- Software: $0 (GPL-3.0) [GitHub]
- Hosting: $5–10/mo for a VPS that can also run other services, or near-zero if you have a home server or NAS
- MongoDB: bundled in the Docker Compose file, no separate license
stats.fm (direct SaaS competitor):
- Free tier: limited historical data, basic stats
- Plus: ~$3–6/month (pricing fluctuates — not available for exact figures at time of writing)
- Your data is stored on their servers; you’re dependent on their service continuing
Spotify Wrapped:
- Included in Spotify subscription
- Annual summary only, no ongoing access, no historical comparison
Last.fm:
- Free scrobbling with limited historical access on free tier
- Requires configuring Spotify to scrobble to Last.fm (via third-party connector), which is a separate setup step
- Your scrobble data is on Last.fm’s servers
The honest cost framing here isn’t “$X/year saved.” It’s: do you want your five years of listening history stored on someone else’s server, or on yours? For that value question, Your Spotify is free after the VPS cost you’re probably already paying for something else.
Deployment reality check
The README is unusually detailed about setup requirements, which is either reassuring (they thought about it) or cautionary (it’s needed) [README].
What you need before you start:
-
A Spotify Developer Application. This is the biggest non-obvious requirement. You must go to https://developer.spotify.com/dashboard, create an application, get a Client ID and Client Secret, and add your server’s API endpoint as an authorized redirect URI. This takes about 10 minutes but requires a Spotify account and understanding that you’re creating an OAuth app, not just pasting a key [README].
-
Docker and docker-compose on a server. A Linux VPS with 1–2GB RAM is sufficient. The default docker-compose bundles everything.
-
A public endpoint if you want OAuth to work. The Spotify redirect URI must be a URL that Spotify’s servers can reach during login. This means either a real domain with HTTPS, or a tunnel like Cloudflare Tunnel or ngrok for local testing. Running purely on localhost works only for single-user local use.
-
Patience with the Spotify API rate limits during history import. Large imports can take a while because Spotify limits API calls. The
MAX_IMPORT_CACHE_SIZEsetting mitigates this [README].
Known friction points:
-
ARM devices. Raspberry Pi and similar ARM-based self-hosters need to use
mongo:4.4instead of the default Mongo 6. The README calls this out explicitly [README]. If you miss it, MongoDB won’t start. -
The OAuth redirect URI. This catches almost everyone the first time. Your
API_ENDPOINTin docker-compose must exactly match what you registered in the Spotify Developer Dashboard. HTTP vs HTTPS, trailing slash, port number — any mismatch breaks authentication silently from the user’s perspective [README]. -
No auto-TLS. The docker-compose example runs on plain HTTP. Adding HTTPS requires a reverse proxy (Caddy or nginx-proxy) in front. Not documented in the README — you’re expected to know how to do this.
-
Multi-user support. The app supports multiple users logging in with their own Spotify accounts, but it’s a single instance with shared infrastructure. The
MONGO_NO_ADMIN_RIGHTSflag exists for shared-MongoDB setups where you don’t want the app having full database admin permissions [README].
Realistic time estimate:
- Developer with Docker experience: 20–40 minutes including Spotify app setup
- Non-technical user with a guide and someone to ask: 2–4 hours
- Non-technical user flying solo without Linux experience: probably a frustrating afternoon; consider asking for help
Pros and Cons
Pros
- GPL-3.0, genuinely free. No license fees, no commercial restrictions on personal use [GitHub].
- Historical import works. The ability to ingest your full Spotify privacy export from day one means you don’t start from zero [README]. This alone separates it from stream-only logging tools.
- Your data, your database. Everything goes into MongoDB on your server. Spotify can shut down their API tomorrow and you still have everything you’ve collected [README].
- Prometheus metrics built in. Signals a production-minded codebase [README].
- Active development. 26 releases and 442 commits on a personal-use niche tool suggests genuine ongoing maintenance [GitHub].
- Multi-user capable. Whole family or friend group can track stats on one instance.
- ARM support documented. Raspberry Pi setups work with the documented mongo:4.4 workaround [README].
Cons
- Requires a Spotify Developer Application. This is not a five-minute copy-paste setup. You need to understand OAuth redirect URIs and manage an app registration in Spotify’s developer portal [README]. It’s not hard but it is a real barrier for non-technical users.
- GPL-3.0, not MIT. You cannot embed this in proprietary software or redistribute with closed modifications. For most self-hosters this doesn’t matter; for developers building products, it matters [GitHub].
- No mobile app. The statistics UI is web-only.
- Spotify API dependency is total. If Spotify deprecates or restricts the APIs this uses (they’ve done this with other developer-facing features), the tool breaks. You can keep your historical data but you stop collecting new plays. This is a real risk with Spotify’s track record toward third-party developers.
- No alerting, webhooks, or automation. Pure read-only analytics. You can’t trigger anything based on your listening data.
- HTTPS setup is DIY. The docker-compose doesn’t include TLS termination [README]. You add a reverse proxy yourself.
- Modest GitHub community. 4,323 stars is respectable for a personal tool but means the issue tracker and community support are thin compared to larger projects.
- No Prometheus dashboard included. Metrics are exported but you bring your own Grafana.
Who should use this / who shouldn’t
Use Your Spotify if:
- You’re a Spotify subscriber who finds Wrapped inadequate and doesn’t want to give a third-party service your OAuth token.
- You have a home server, NAS, or VPS already running Docker — adding a MongoDB container and a Node process is minimal overhead.
- You want your complete listening history importable, queryable, and independent of Spotify’s data retention decisions.
- You’re comfortable creating a Spotify Developer Application and handling a basic OAuth redirect URI setup.
Skip it (use stats.fm free tier instead) if:
- You want stats with no setup time. stats.fm has a working free tier, a mobile app, and no server to maintain.
- You don’t have an existing server — setting one up just for listening stats doesn’t pencil out unless you were going to self-host other things anyway.
- Historical data from more than the last year isn’t important to you.
Skip it (use Last.fm instead) if:
- You want cross-platform scrobbling (Apple Music, YouTube Music, etc.) in addition to Spotify. Last.fm aggregates across services; Your Spotify is Spotify-only.
- Social features (comparing taste with friends, global charts) matter to you.
Skip it (stay with Spotify Wrapped) if:
- You genuinely only care about the annual highlight reel and not day-to-day trends.
- The command line is unfamiliar territory and you don’t have someone to help with initial deployment.
Alternatives worth considering
- stats.fm — Freemium Spotify stats service. Free tier is generous, mobile app exists, no setup required. Trade-off: your data is on their servers, premium features cost money.
- Last.fm — The original scrobbling service. Free, cross-platform, massive social graph. Spotify connects via their own “Connect to Last.fm” setting (no extra app needed). Trade-off: your data is on Last.fm’s servers, analytics are less rich than Your Spotify.
- ListenBrainz — Open source scrobbling and statistics, run by the MusicBrainz foundation. Can be self-hosted. Less polished UI than Your Spotify but broader platform support and a community-run public instance if you don’t want to self-host.
- Maloja — Self-hosted scrobble server (compatible with Last.fm clients). If you already have a Last.fm-style workflow and want to keep data local, Maloja is a cleaner fit than Your Spotify.
- Spotify’s native stats — Free, zero setup, shows top artists/tracks/genres for last 4 weeks, 6 months, and all time. Enough for casual users who don’t need drill-down.
- Spotistats — Another third-party Spotify stats app, freemium, mobile-first. Similar trade-off to stats.fm.
Bottom line
Your Spotify is a well-executed answer to a specific frustration: Spotify collects everything about your listening and gives you almost none of it. The tool is genuinely useful, the setup is straightforward for anyone comfortable with Docker, and the historical import from Spotify’s privacy export is a feature that most alternatives don’t match. The limitations are real — you need to set up a Spotify Developer Application, HTTPS is DIY, there’s no mobile app, and the Spotify API is a dependency you don’t control — but none of these are dealbreakers for the target user. If you’re already running a home server and you care about your music data, this is a weekend-afternoon install you’ll be glad you did. If you’ve never touched Docker, the right first move is getting help with the deployment rather than skipping the tool.
If the deployment setup is the blocker, that’s exactly what upready.dev handles for clients. One-time deployment, you own the stack, no recurring SaaS bill.
Sources
Primary sources:
- GitHub Repository (README, docker-compose, environment docs): https://github.com/Yooooomi/your_spotify — 4,323 stars, GPL-3.0, 26 releases
Note: The third-party review sources provided for this article ([1]–[5]) were about Spotify the commercial streaming service (Spotify DJ, wellness podcasts, iTunes comparisons) rather than the Your Spotify self-hosted application. No independent third-party reviews of the Your Spotify self-hosted tool were available in the provided sources. Claims in this review are grounded in the project’s README, GitHub metadata, and first-principles analysis of the tool’s architecture and constraints.
Features
Integrations & APIs
- Plugin / Extension System
Category
Replaces
Related Analytics & Business Intelligence Tools
View all 176 →Superset
71KApache Superset is an open-source data exploration and visualization platform — connect to any SQL database, build interactive dashboards, and run ad-hoc queries.
OpenBB
63KThe open-source AI workspace for finance — connect proprietary and public data, build custom analytics apps, and deploy AI agents on your own infrastructure.
Metabase
46KOpen-source business intelligence that lets anyone in your company ask questions and learn from data. Build dashboards, run queries, and share insights without SQL.
ClickHouse
46KUltra-fast column-oriented database for real-time analytics. Process billions of rows per second with SQL. Open-source alternative to Snowflake and BigQuery.
Umami
36KSimple, fast, privacy-focused alternative to Google Analytics. Own your website data.
Umami
36KSimple, fast, privacy-focused alternative to Google Analytics. Own your website data.