A technical deep-dive into building a fast, free Spotify downloader that actually works.
Every developer who's tried building a Spotify downloader hits the same wall: Spotify doesn't want you doing this. Their API doesn't expose audio files, and their streams are encrypted with Widevine DRM.
Here's how I built Spodown — a free Spotify-to-MP3 converter that handles thousands of downloads daily.
The Architecture
User paste Spotify link
↓
Backend resolves track metadata (name, artist, duration)
↓
YouTube Music search → find matching audio
↓
yt-dlp extracts audio stream
↓
ffmpeg transcodes to MP3/FLAC
↓
Serve file to user
Simple in theory. The devil is in the details.
Stack
- Frontend: Vue 3 + TypeScript + PWA
- Backend: Go + Fiber
- Matching: Custom YouTube Music search scoring
- Download: yt-dlp with residential proxy rotation
- Transcoding: ffmpeg
- Cache: MediaFire/VK document storage
- Queue: In-memory job system with SSE progress
The Matching Problem
The hardest part isn't downloading — it's finding the right audio. Spotify track metadata needs to match YouTube Music results, and the matching has to be really good or users get wrong songs.
I built a scoring system that compares:
- Track name (exact > partial > fuzzy)
- Artist name
- Duration (±3 seconds tolerance)
- Album name (when available)
Only candidates scoring above a threshold get accepted. Below that, we return "not found" rather than a wrong song.
The Widevine Path
For tracks that YouTube doesn't have (rare songs, new releases), I built a fallback: Widevine CDM decryption. This decrypts Spotify's own AAC streams directly — it's what the official Spotify Web Player does, just automated.
What I Learned
- Caching is everything — 70% of downloads are repeat requests. Store results, skip the pipeline.
- Rate limits are real — both Spotify and YouTube throttle. Rotating proxies and account pools are essential.
- Users want simplicity — "paste link → get file" beats any feature list.
- SEO matters — technical tool ≠ invisible. I built the site server-rendered with proper meta tags so search engines could index it.
Try It
Spodown — free tier needs no account. PRO unlocks 320kbps/FLAC if you want max quality.
Questions? Drop them in the comments — happy to go deeper on any part.
Top comments (0)