Capable of streaming your ripped TV shows and movies to local devices, media servers are among the most popular self-hosted applications out there. Heck, I started my descent into data archival with a Plex instance, and it remained an essential part of my app stack for years. Unfortunately, my dissatisfaction with Plex’s service model has slowly turned into resentment, and I just can’t see myself hosting it anymore on my NAS.

In fact, I recently moved to a Jellyfin-only setup, and aside from needing a few hours to get accustomed to its interface, I can’t say I’ve encountered any issues with my new media server. If anything, I feel like I’ve upgraded my centralized movie-streaming hub with extra features, better privacy, and a sleek UI.

Hardware transcoding is a must-have feature for my media server

And I’d rather not spend money to unlock it

Since I’ve been archiving videos ever since I was a teenager, my media collection is a jumbled mess of files with different resolutions, compression standards, and formats. Couple that with the fact that I tend to use my media server with my family, and I need hardware transcoding to avoid buffering and stuttering for multi-stream playback. Unfortunately, Plex locks hardcore transcoding behind a premium license – essentially paywalling a basic feature to stream the media collection that I own.

Now, I’ll admit that Plex Pass has some neat features, but forcing users to shell out extra money for something as important as hardware-accelerated transcoding – a feature that already requires hefty upfront costs in the form of a dedicated GPU – is absolutely insane. Call me a cheapskate if you must, but I self-host FOSS utilities to avoid draining my wallet every month on cloud platforms. Meanwhile, Jellyfin features hardware transcoding right out of the box, and it works flawlessly with my old GTX 1080.

I’m not a big fan of Plex tracking my usage habits

After all, I self-host services to avoid sharing data with big firms

Besides saving money, the other biggest advantage of my self-hosted stack is that I don’t have to worry about intrusive third-party services siphoning my private data to their corporate overlords. Heck, it’s the reason why I built my own NAS and keep everything out of clouds in 3-2-1 backup setups. Plex, however, is quite different from the rest of my FOSS suite, as it sends certain private information to the company’s servers.

In Plex’s defense, I can opt out of disclosing certain information. But I’m still not comfortable sending any data to an external server, no matter how insignificant it may seem. Jellyfin, on the other hand, respects my privacy and doesn’t need to be connected to the WAN 24/7. And that brings me to my last issue with Plex…

Plex’s transition to a cloud-based service is annoying

I don't want to deal with remote authentication for local media

Although Plex still has some self-hosted roots, it has slowly become a typical cloud platform. The default Plex interface is laden with suggestions for TV shows and movies, making everything look convoluted unless I modify the UI’s appearance manually. Worse still, these aren’t the files on my local network shares, but instead are suggestions for media that I can stream from Plex’s servers – and that’s not what I’m looking for on a private, FOSS tool. Jellyfin’s interface is a lot cleaner in comparison, and it only displays the media I’ve archived over the years.

Then there’s the fact that Plex requires external servers to authenticate my devices. I’ll admit that it makes remote access slightly easier, but that’s not really an issue with a Jellyfin + Tailscale combo. In fact, I’d rather not rely on Plex’s authentication servers; if they were to go down (or in case my devices couldn't access the Internet), I wouldn’t be able to access my media. There is technically a workaround that involves disabling authentication, but I don't want to give unrestricted access to my media files to all users, especially my younger relatives.

Jellyfin is quite the behemoth with the right plugins

Before shifting my media collection to Jellyfin, I was worried whether the FOSS tool could meet my expectations. Luckily, Jellyfin includes most of the features I was looking for, all while letting me stream my TV shows and movies without harvesting personal data. Plus, the talented Jellyfin community has designed several plugins to add certain QoL facilities to my private streaming service.

For example, the IntroSkipper plugin is a must-have for TV shows with repetitive intro sequences, while Meilisearch not only makes my search queries faster, but also respects the permissions associated with the user accounts. There’s also a Trakt plugin that synchronizes my watch history with my Trakt account, and Subbuzz is essential when I watch movies in non-English languages. Throw in Jellyfin's neat client apps, and I don't see myself going back to Plex's cloud-centric ecosystem.