Ditching Spotify - Using GDPR Data Export to Build Your Physical Music Collection
I’m ditching my Spotify subscription to build a physical music collection. While streaming is convenient, I want to own the music I love most and stop paying monthly fees for something ephemeral.
Thanks to GDPR, getting your Spotify data is straightforward. The challenge? Making sense of years of listening history to identify albums worth buying.
Getting Your Spotify Data
- Go to Spotify Privacy Settings
- Request “Extended streaming history”
- Wait 30 days for your export
- Download the ZIP file when ready
The Problem
My export contained over 300,000 streaming events spanning 5 years. Each record includes track name, album, artist, and play duration—the perfect data to compute which albums to buy, but not something “everyday people” would use. So I utilized a bit of Go to automate the process.
The Go script processes the export and generates reports with:
- Albums ranked by play count
- Song breakdowns for each album
- Direct search links to MusicBrainz and Medimops for easy buy
Usage
# Basic usage - top 50 albums as Markdown
go run analyze.go
# JSON output to file
go run analyze.go -json -output=albums.json -limit=10
# Available flags:
# -input: Input JSON file
# -limit: Top N albums (default: 50)
# -json: Output JSON instead of Markdown
# -output: Save to file (default: stdout)
# You can also use pandoc to generate a .pdf
# and send it to your friends and family
pandoc out.md -o out.pdf
Example Output
Here’s what the script generates for the top albums (limited to 2 for this example):
| Rank | Album | Artist | Plays | Search Links |
|---|---|---|---|---|
| 1 | Abbey Road | The Beatles | 847 | MusicBrainz • Medimops Artist • Medimops Album |
| 2 | Dark Side of the Moon | Pink Floyd | 623 | MusicBrainz • Medimops Artist • Medimops Album |
The script provides detailed breakdowns with individual song play counts and direct purchase links to MusicBrainz and Medimops.
Beyond Buying: Self-Hosted Media
Once you build a physical collection, consider Jellyfin - a self-hosted media server that replaces Spotify:
- No monthly fees
- Your music, your rules
- Stream anywhere
- No tracking or ads
Get the code here
Enjoy Reading This Article?
Here are some more articles you might like to read next:
- Interesting Talks I Heard at ASE 2026 that Inspired Me
- GIAC Machine Learning Engineer (GMLE) Certification
- Building a Modern Audio Guide Platform - murnau.audio-guide.cloud
- Racing Thursdays at the Allianz Arena - My Munich Bike Stars Experience
- SANS London April 2024
- Simplifying OAuth for Container Orchestration
- SANS Offensive Operations London 2023
- Collabs Info Day
- Certified Information Privacy Professional/Europe (CIPP/E)
- 2022 IEEE Cybermatics Congress