Another Spotify price increase landed at the start of the year, right as I was working through the tons of subscriptions I pay for every month.
I had been considering the cancellation anyway. Spotify was starting to feel redundant, more for reasons that have more to do with my habits than with anything Spotify did wrong.
I'm a firm believer in digital ownership, and would rather buy music than rent a library that could come down at any time.
On top of that, I have niche tastes and care about consistent audio quality. So, most of what I listen to is stored on my computer as lossless files.
Last year's Spotify Wrapped was the tipping point. I only listened to a handful of songs on repeat, most of which I already owned. I gave myself a few months to find out whether I could cover the gap without any more payments.
The short version of the experiment is that it mostly works, with one difficulty that wasn't immediately obvious.
The Jellyfin alternative
My own media library is already on my computer
I briefly considered replacing Spotify with YouTube Premium, since the money would buy something extra. Then it occurred to me that all I needed was access to my own files when I was away from my desk.
Enter Jellyfin, a free and open source platform that indexes a music library, pulling artist and album metadata from MusicBrainz on its own.
I had a home server running, so I installed Jellyfin on it and let it work through the collection. That part was straightforward.
Then I installed the Android client and hit the first roadblock. Jellyfin's interface is built around video, and that's what most people use it for, so music feels like a secondary use case.
This is an open complaint with the community, so they built a workaround.
Finamp picks up where Jellyfin stops
The part Jellyfin never got right
Finamp is a free, open source Jellyfin client that only handles music. Unlike the standard Jellyfin client layout that's inspired by Netflix, Finamp takes its layout from streaming apps, which is the entire reason it exists.
One thing to note before you download it. The Play Store version is the older stable build, and the version I'm running is the redesign, which is still in beta through Google Play or the GitHub project's releases page.
The beta is what gives you the familiar home screen, with recently played albums, artist shortcuts, and a random selection to shake things up. It handles queuing and shuffling similarly to Spotify, and I stopped noticing the difference within a week.
I had underrated how well offline downloads work. Finamp pulls albums down to their original quality or transcodes them to save space, and its offline mode hides any music that's not stored on my device.
Just like the contemporary Spotify feature, Finamp's offline downloads are especially useful in areas with bad internet. A good chunk of my library is stored on my phone and sounds exactly how I want it to.
It also includes gapless playback, which I did not expect from a volunteer project. I downloaded my most-played albums overnight and got to listening right away.
The trade-off
The end of the age of discovery
Music discovery is where this setup is inferior to Spotify, and I would rather say so than pretend otherwise.
Spotify's recommendation feature is one of the reasons I signed up, and my library cannot suggest anything I do not already own.
The plan was to rely on Last.fm, since my listening history there goes back years. But this ended up being more work than I assumed.
Jellyfin does not scrobble (log metadata of the music) to Last.fm by itself. It needs a community plugin, which cannot ship with Jellyfin for licensing reasons and must be added from a separate repository.
The plugin also warns that third-party clients, including Finamp, may not scrobble because it listens for playback events those clients do not reliably send. That means the solution to my discovery problem is the least reliable portion of the setup.
I'm still working on this one. The ListenBrainz plugin sits in Jellyfin's official catalog and looks like a better option, and there are standalone scrobblers that sit between the server and Last.fm regardless of which client is playing.
In the meantime, Spotify's free tier is adequate for broad recommendations. It's not an elegant answer, but it costs nothing, and I already know how it works.
The other open question was how to handle podcasts, and it turned out to be a non-issue since I only listen to a couple of podcasts consistently. AntennaPod handles them just fine without an additional subscription.
My time with Spotify is wrapped
I'm a few months in and have no plans to resubscribe, though I would not hold this up as the obvious move for everyone else.
It suits me because I already own the music, have a server running, and have a small catalog of things I want to hear. If you remove any of these factors, the math changes completely.
What I have gained is a library that costs nothing to keep, sounds exactly how the files were made to sound, and will not get more expensive next January.
In return, I have given up the very thing Spotify is best at, and I'm still undecided whether my workaround is good enough or whether I will end up missing it. At the very least, I'm doing my part to keep the principle of true digital media ownership alive.