Is Spotify Premium Robbing You Blind?

Let’s be honest, subscription fees are out of control. And that monthly charge for Spotify Premium? It adds up. For what? The “privilege” of downloading songs you don’t even own and listening without ads. I got tired of paying, so I decided to take matters into my own hands.

What if I told you that you could have your entire Spotify library, automatically updated, available to stream anywhere, and even download for offline listening… all for FREE? It sounds too good to be true, but I did it, and I’m about to show you how.

The Secret Recipe: Your Personal Music Cloud

The magic lies in combining a few incredible open-source tools on a simple home server (a Raspberry Pi is perfect for this).

Here’s the master plan:

  1. Automated Downloader: Use a script to “read” your Spotify playlists.
  2. Music Sync: Automatically download all the tracks from those playlists to your server.
  3. Personal Streaming Service: Run your own music server to stream your library to any device.
  4. Mobile App: Use a mobile app to connect to your server, stream, and download songs for the road.

Architecture Diagram

Step 1: The Downloader - spotDL

The core of this operation is a brilliant tool called spotDL. This command-line utility takes a Spotify playlist URL, finds the songs on YouTube Music (or other sources), and downloads them as high-quality MP3 files, complete with all the metadata like album art, artist, and album name.

Installation is simple with pip:

pip install spotdl

To download a whole playlist, you just run:

spotdl download 'YOUR_SPOTIFY_PLAYLIST_URL'

The script will do the rest, downloading the tracks into a nicely organized folder.

Step 2: The Automation - cron

Downloading your playlist once is great, but what about all the new songs you add? You don’t want to run the command manually every time. This is where cron, the built-in Linux task scheduler, comes in.

We can set up a cron job to run spotDL automatically every night. This way, any new songs you add to your Spotify playlist during the day will be waiting for you on your server the next morning.

Open your crontab editor:

crontab -e

And add this line to run the sync every day at 3 AM:

0 3 * * * /usr/bin/spotdl download 'YOUR_SPOTIFY_PLAYLIST_URL' --output /path/to/your/music

Now your music library updates itself while you sleep!

Step 3: The Streaming Server - Navidrome

Now that you have a folder full of music, you need a way to listen to it. Enter Navidrome, a lightweight, modern, and open-source music server. It’s incredibly easy to set up, especially with Docker.

Navidrome scans your music folder, organizes everything beautifully, and gives you a slick web interface that looks just like… well, a professional streaming service!

You can run it with a simple docker-compose.yml file:

version: "3"
services:
  navidrome:
    image: deluan/navidrome:latest
    user: 1000:1000 # replace with your user and group ID
    ports:
      - "4533:4533"
    restart: unless-stopped
    environment:
      # All options are optional, see https://www.navidrome.org/docs/usage/configuration-options/
      ND_SCANSCHEDULE: 1h
      ND_LOGLEVEL: info
      ND_SESSIONTIMEOUT: 24h
      ND_BASEURL: ""
    volumes:
      - "/path/to/navidrome/data:/data"
      - "/path/to/your/music:/music:ro"

Once it’s running, you have your own personal Spotify, hosted at home.

Step 4: The Mobile App - Freedom on the Go!

This is the final piece of the puzzle. Navidrome is compatible with the popular Subsonic API. This means dozens of mobile apps can connect to your server.

For iOS, apps like play:Sub, substreamer, or Amperfy work great. For Android, you have even more choices.

Just point the app to your server’s address, log in, and voilĂ ! Your entire music library is in your pocket. The best part? All these apps allow you to cache or download songs directly to your phone for offline listening.

A Note on Remote Access

By default, this setup is available on your local network. But what about when you leave the house? You have two simple and secure options:

  1. Download Your Music: Before you head out, use your mobile app to download your favorite playlists or albums. The music will be saved directly on your device, ready for offline playback anywhere.
  2. Use a VPN: For live streaming from anywhere, you can use a VPN (like WireGuard or Tailscale) to securely connect back to your home network. This makes your phone act as if it’s on your local Wi-Fi, giving you full access to your Navidrome server.

You just recreated the best feature of Spotify Premium for free. So go ahead, cancel that subscription and take back control of your music!