Get Out Those Old CDs: How Anyone Can Ditch Spotify in One Hour of AI Coding.
For years I had about 12,000 songs sitting on an external hard drive. Old CD rips, MP3 downloads, music I had collected before Spotify made all of that feel unnecessary. The library had been passed around hard drives and cloud storage for years, mostly untouched. Tags wrong, filenames inconsistent, duplicates scattered throughout. I always meant to fix it and never did.
In March 2026 I cleaned it all up and built a private local streaming app without writing a line of code myself.
The finished player
Artist browser on the left, search and playback controls on the right, Practice Studio accessible from any track.
Features in my Custom Streaming App
The first three are things anyone would want. The rest are specific to my use as a working musician: practicing repertoire, analyzing recordings, and keeping scores close at hand.
- High-quality audio without streaming compression
- Search, shuffle, playback history, and lightweight discovery
- No ads, no subscription, no algorithm
- Built-in links to sheet music PDFs for songs I have scores for
- A Practice Studio: tempo control, pitch lock, loop markers, setlists, tags, and performance notes
- Audio analysis tools for closer listening
Why bother leaving streaming
Streaming is convenient, but it is also rented. The audio is compressed, the algorithm decides what matters, and tracks can quietly disappear from the catalog. At some point this starts to feel less like listening to music and more like tolerating a service.
I wanted my own library back: files I own permanently, no ads, no subscription, and none of my rarer material subject to someone else's licensing decisions.
The experiment
I ran Claude Code and OpenAI Codex in parallel, partly to move faster and partly to compare their capabilities directly. The work had two phases: first, clean up the library on disk (fix tags, normalize filenames, resolve duplicates, organize into proper artist folders); second, build a custom local web player with the specific features I actually wanted.
One observation from running both: Codex 5.3 handled the coding tasks more reliably than Claude Sonnet 4.6, even when I occasionally pulled in Opus. For targeted Python scripts with a lot of file system logic and edge cases, the gap was noticeable. This is contrary to much of what I've read about the relative abilities of these models.
What I found interesting about it
This is something I could have built on my own. I have the skills. But I almost certainly would not have gotten to it, at least not at this scale or with this many features. The version I might have eventually put together would have been minimal. What I ended up with in about an hour is better for my actual use case than anything commercially available.
The most common discussion about AI is that productivity gains will cause job losses, and that is probably true in some areas. But a large increase in demand (everyone suddenly wanting a custom music app, or a custom anything) could dampen that effect. This project is a small example of that. I am somewhat heartened by it.