Forkcasting
As clear as a puddle of mud

Replacing Amazon Music

I ripped my CD library and installed Jellyfin

About a year ago, Amazon Music switched their offering to a "shuffle-only" model. This is fine for most albums, but there are some albums that I love to listen to in-order. Think, Miles Davis' "Kind of Blue" or literally anything by Tool.

I'd been a Prime subscriber for well over a decade, but I wasn't about to pay extra for a feature they'd previously offered. Especially not one that seems to cost them nothing extra. It felt like an unfair cash-grab.

So what's a music afficiando to do? Well, I have a collection of CDs that predates Spotify and Amazon Music. Ironically, I mostly bought the CDs from Amazon over the years. Hell, I paid to ship my physical collection from the UK when I emigrated.

I also had a Windows-based NUC I've set up in the living room to play games, watch Netflix, and so on. My plan was to rip my collection then install a media streaming service to listen to my music, like I used to with iTunes in the 00s.

Part one took a good while. I ripped CDs on-and-off for a few months. I could've set aside a day or two, but that didn't work out. I ended up ripping a handful every weekends using Media Player Legacy (don't judge). I had around 20GB of music after this. Not the largest library, but nice.

Finding the streaming tool was a bit more of a pain. I first tried the built in "Digital Living Network Alliance" (DLNA) service, which was a good start.

I could open the DLNA share on VLC on my phone, but loading the library was too slow for my tastes, and I couldn't play the albums in-order, defeating the whole point. Adding insult to injury, I couldn't play anything from my mac, although I could (slowly) browse the library.

After a bit of digging I found Jellyfin. I initially tried airsonic advanced, but I couldn't spot it in winget but the Jellyfin server.

Installing was straight-forward: winget install jellyfin.Server.

Configuration was a bit more involved, especially since I don't know my way around Windows very well. Aside from the Jellyfin-specific config creating a user and so on I had to work around two specific problems.

My first issue was finding my music library. In the 2 (?) decades since I last used Windows seriously, I found that every app can no longer access ~every file. I had to add NETWORK SERVICES to the list of users and roles that can access my Music directory.

Second was the firewall. jellyfin wasn't automatically listed in the apps I could allow, so I went and found the install location. On my machine, it is C:\Program Files\Jellyfin\Server.

After that I could open up my IP in FireFox on my phone, login, and start listening! I quickly noticed a problem though. If the screen was off it would not play the next song and I'd need to open up the browser to give it a nudge.

I tried Findroid, which didn't seem to work at all. It apparently connected but failed to load my library. I finally settled on the official Jellyfin app for Android. It seems to work well enough with a few hiccups.

First, there are stutters. Bearly perceptible but frequent enough to be grating. It doesn't happen when the screen is on, so I suspect battery optimization or similar. Setting the app's battery usage to "unrestricted" doesn't help. Since I'll be mainly using this on my mac while I work, I should be able to live with this.

Second, if I play an album using the play button on the library screen (the little one overlaid on the cover art), it'll play one song and stop. I have to open the album and click play.

Overall, it's an improvement over Amazon Music since I can listen to my albums as intended now. I'm a little mystified though, I thought iTunes solved this in the 00s. I remember some sort of library sharing built-in back in the day. I couldn't find that in my travels in this modern era. I'll keep looking for a way to stop the stutters and maybe even share move my server to an EC2 instance so I can listen on the go.