From the Rubble | Digital Sovereignty Series | Episode 5

TLDR: Spotify pays artists less than half a cent per stream while reporting billions in quarterly revenue. You’re renting a music library you don’t own, that can be altered or removed without notice, while the people who made it see almost nothing. This covers the full exit: Exportify to back up your library before you leave, Spotube to keep streaming during the transition, spotDL to download your matched library as files you actually own, and what to do about the tracks that don’t transfer. Note: the Python 3.14 compatibility issue with spotDL mentioned in earlier drafts has been resolved in spotDL 4.x — current installs work cleanly.


series: [“Digital Sovereignty”]

Spotify pays artists between $0.003 and $0.005 per stream.

That’s not a typo. Less than half a cent. A thousand streams — a thousand people listening to a song all the way through — generates somewhere between three and five dollars for the person who made it. Meanwhile Spotify reported $3.6 billion in revenue in Q1 2024 alone.

The math on who this arrangement serves is not complicated.

I’m not primarily leaving Spotify because of the artist payout problem, though that’s real and worth naming. I’m leaving because I’ve been paying a monthly subscription for twenty years of music I don’t own, can’t keep, and will lose access to the moment I stop paying — or the moment Spotify decides to remove it, change the terms, or cease to exist. I’ve been renting my own taste in music from a company that profits from the gap between what I pay and what the artists receive.

That stops being acceptable when you look at it directly.

This episode covers the exit: backing up your library before you leave, streaming without supporting the platform in the meantime, downloading your matched library for permanent local ownership, and building toward a self-hosted streaming setup that makes Spotify feel redundant.


series: [“Digital Sovereignty”]

Step 1: Back Up Your Library Before You Touch Anything

Before you change a single setting or cancel anything, export your Spotify data. Playlists, saved albums, followed artists — everything you’ve curated over however many years. This is non-negotiable and it needs to happen first.

Exportify handles this cleanly. It’s a browser-based tool that connects to your Spotify account via their official API and exports your library to CSV files.

Go to exportify.net, authorize it with your Spotify account, and export everything. You’ll get CSV files for each playlist and your saved library — song titles, artists, albums, ISRCs (international recording codes that help with matching later).

Save these files somewhere permanent. This is your map — it tells you exactly what you had and lets you verify your local library against it later.

Why now? Because once you start the process of leaving, you want a clean record of what you’re trying to preserve. And Spotify’s API access for third-party tools has gotten more restrictive over time. Export while you still can without friction.


series: [“Digital Sovereignty”]

Step 2: Spotube — Keep Streaming While You Transition

Cold turkey off Spotify while your local library is still being built is rough. You’ll reach for it out of habit in the first week and half your music won’t be downloaded yet.

Spotube solves this. It’s an open source Spotify client that streams music from YouTube Music’s catalog matched against Spotify’s library — without connecting to Spotify’s backend or requiring an active subscription after your initial library lookup. No Spotify account needed for playback. No tracking, no behavioral profiling, no ads.

Install it as a Flatpak:

flatpak install flathub com.github.KRTirtho.Spotube

Log in with your Spotify credentials once for library access (so it can see your playlists and saved music), then it routes playback through YouTube Music. The audio quality won’t match Spotify Premium but it’s acceptable for the transition period.

Think of Spotube as a bridge — it keeps your music accessible while you build the library that makes it unnecessary.


series: [“Digital Sovereignty”]

Step 3: spotDL — Downloading Your Matched Library

spotDL is the tool that actually builds your local library. It takes Spotify playlist URLs or your entire saved library, matches each track against YouTube Music, and downloads the audio files tagged with proper metadata — artist, album, year, cover art, everything.

The result is a properly organized, fully tagged local music collection. Not a pile of unnamed MP3s — a real library that any music player or self-hosted server can read and organize correctly.

The Python Version Note

spotDL is a Python tool, and Python version compatibility was genuinely an issue during earlier testing. When this series was first written, spotDL did not work correctly with Python 3.14 — the dependency chain broke in ways that produced cryptic errors.

This has since been resolved. spotDL 4.x runs correctly on Python 3.14. If you’re on a current Fedora-based system, just install it directly:

python3 --version  # Confirm you're on 3.12 or later

Install spotDL via pipx for clean isolation:

sudo dnf install pipx
pipx install spotdl

Or with pip directly:

pip install spotdl

If you’re running an older spotDL version (pre-4.0) and hitting errors on Python 3.14, upgrade before troubleshooting anything else:

pipx upgrade spotdl
# or
pip install --upgrade spotdl

Installing spotDL (Compatible Python Version Confirmed)

pip install spotdl

Or with pipx for cleaner isolation:

pipx install spotdl

The ffmpeg Requirement

spotDL requires ffmpeg for audio processing. On Fedora-based systems:

# Enable RPM Fusion for ffmpeg (needed on Fedora)
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm

sudo dnf install ffmpeg

Verify it’s available:

ffmpeg -version

series: [“Digital Sovereignty”]

Step 4: Running the Download

With spotDL installed and ffmpeg available, the basic download workflow:

# Download a single playlist
spotdl "https://open.spotify.com/playlist/[playlist-id]"

# Download your entire saved library
spotdl saved

# Download with specific output format and quality
spotdl saved --format mp3 --bitrate 320k --output "~/Music/{artist}/{album}/{title}"

The output path template is worth configuring before you start — it controls how your files get organized. The template above creates a proper Artist/Album/Title folder structure that media players and Navidrome (the self-hosted streaming server we’ll set up in Episode 7) expect to see.

The Spotify API Rate Limiting Reality

Spotify rate-limits their API. If you’re downloading a large library — hundreds or thousands of tracks — you’ll hit limits. spotDL handles this with automatic retries and backoff, but large downloads can take hours.

Practical advice: start the download before bed. Let it run overnight. Check in the morning. Don’t try to babysit it — it’ll complete at its own pace and resume from where it left off if interrupted.

# Run with more verbose output so you can see progress
spotdl saved --log-level INFO

The YouTube Bulk Download Risk

Bulk downloading from YouTube-backed sources carries IP ban risk if done aggressively. spotDL includes rate limiting built in, which mitigates this. Don’t modify the default request rate. Don’t run multiple simultaneous download sessions. Let it work at its own pace.

If you do hit a temporary ban, it typically lifts within 24-48 hours. Wait it out. Don’t try to route around it with a VPN during an active download session — the rate limiting is there for a reason.


series: [“Digital Sovereignty”]

Step 5: Verify Your Library

Once the download completes, cross-reference against your Exportify CSV files. You won’t have 100% coverage — some tracks won’t be available on YouTube Music, some matches will be wrong, some will have been region-locked. This is normal.

For the gaps:

  • Bandcamp: Many independent artists sell DRM-free downloads directly. High quality, full ownership, artist gets substantially more of the revenue. bandcamp.com
  • Qobuz: High-resolution audio downloads, DRM-free. More expensive but genuine ownership. qobuz.com
  • Direct from artist: More artists than you’d expect sell direct from their own sites. Worth checking before defaulting to a platform.

The goal isn’t a perfect 1:1 match with your Spotify library. The goal is a local collection of music you actually own, that exists on your hardware, that isn’t going anywhere.


series: [“Digital Sovereignty”]

Where This Leaves You

At the end of this process you have:

A local music library — properly tagged, organized in a folder structure that any music software can read — sitting on your machine. Not a rental. Not a stream you’re licensed to hear. Files you own, on hardware you control, that will still be there in twenty years regardless of what Spotify does.

In Episode 7 we set up Navidrome, the self-hosted streaming server that turns this local library into something you can stream to any device — phone, tablet, browser — anywhere you have internet access. Spotify’s entire value proposition, running on your own infrastructure, without the subscription or the surveillance.

The artist payout problem doesn’t disappear just because you own your files. If you want to support artists directly, Bandcamp is the most direct path. Buy the albums you actually love. The artists get a real percentage and you get a real file.


series: [“Digital Sovereignty”]

Resources


series: [“Digital Sovereignty”]

Next episode: 58 audiobook titles just disappeared from my Audible library. Books I paid for. Gone. Here’s what happened, here’s the DRM problem explained, and here’s how to liberate every audiobook you’ve ever purchased before the next batch vanishes.


series: [“Digital Sovereignty”]

From the Rubble is written by Kyle — Marine veteran, FDN-P practitioner, 30-year conspiracy realist. Digital sovereignty, health sovereignty, and the overlap between them. No corporate funding. No ads. No permission required.