We’re back!! This time we’re fuuuuuuming! WHEN IT COMES TO OPEN SOURCE SOFTWARE THERE ARE PRINCIP…. *deep sigh*. OK, before I go into full blown rant mode, lets take a step back. Unlike the last post, this won’t about 3D printing or upgrades, just a good old technology scream fest talk. So where is all this anger coming from? Lets start with Principals of Open Source and the philosophies of Plex and Jellyfin.
Plex: The Cadillac of media server
What started as a hobby project back in 2007, but didn’t pop up on my radar until late 2015. Plex is a media server, that takes all your home media and turns them into your own private Netflix! This includes Movies, TV shows, Music, photos, and more! It also does meta data collection, meaning it will try to figure out what media is in your library, and load it up with information. Like actors, year the movie debuted, subtitles, all the little bells and whistles.
It also allows you to customize and organize your media, create playlists, parental controls. But the best part… easy remote access. I’m talking, open a port then boom, your media securely anywhere around the world! Even do a lets watch together session and share plex media libraries with other users! Neat huh?! So why am I pissed off? With every golden age, comes the fall of an empire…
Et tu, Plex?
My nightly ritual. I arrive home, make dinner, eat with the family, cleanup and watch a random episode of king of the hill while I do dishes. This night was different… I open the plex app, select an episode, but I am stopped by a popup. Not an ad, no no, a disclaimer… Plex is now requiring a one time $5 charge to watch media on their app.
Ok, ok… whatever. I can still open the app on brave mobile and access my stuff right? Oh… it takes me to the app store. I’ll just open the page in desktop mode and use it that way. Ok that works! But oh my god… the controls are soo tiny! I keep hitting next instead of pause! OH OK FINE YOU KNOW WHAT THATS IT!
I’m switching to a Plex alternative app! But this is a niche market, who else is out there… Its slim pickens in the open source world 🙁
Jellyfin: The Aftermarket Cadillac of media servers
Jellyfin! The repeat story of “Fuck this shit, Fuck you, I’m making my own thing!” in the Linux world. Its a fork of Emby, since Emby basically pulled a Plex, tacking on licensing. At Jellyfin, their core belief is the product is free, we don’t look at your stuff, and if you don’t like the product feel free to change it!
With that said, I shutdown my plex server, spun up a new VM on my virtual server, and started my Jellyfin journey! The install is very straight forward, like installing any Debian package and their doco is very clean! Do keep in mind that by default, you’ll be running on a designated port (8096) and it will be HTTP. DO NOT OPEN THAT PORT TO THE FIREWALL! You’ll be just asking to get your stuff stolen! You’ll want to setup a reverse proxy server and set it up with SSL. Jellyfin mentions this in their quick start guide.
Its not as bad as it sounds, especially when you use something like Virtualmin 🙂 In Vmin, create a sub server of your main site. For me, I already have sarnelli3d.com public facing (duh… you’re reading this lol). Just create an apache instance for HTTP and HTTPS. You’ll also want to make sure you have your CNAME or A record in your name server setup. That way, when Virtualmin sets up the SSL for apache, it just works.
Once you are done with that. Head over to Server configuration, Edit Proxy Website, on your new sub server. Enable the proxy and plug in your local URL to jellyfin.
Now, when you go to your public URL for Jellyfin, it will be SSL encrypted and reverse proxied back to the media server! Security FTW!!
Jellyfin turned my server into an oven
As I started throwing show and movies onto my new server, I noticed the CPU usage. When I would play a show, it would send my CPU through the roof! It didn’t matter what media I played, well except music, that it didn’t struggle with. It probably has something to do with me making a CPU do something a video card is good at. Hmmmm, you know, if only I had something that would do a better job…
I mentioned before in a previous post that I did some PCI passthrough magic with ProxMox. That way the VM can use the video card if needed. As it turns out, there is one thing I overlooked in that post to get card fully functional: drivers. I was looking in the wrong spot the whole time. Relying way too much on apt to provide, I needed to the source, I needed to go to Nvidia. Specifically I needed this driver, for my old GTX 980. After the install, using Nvidia-SMI, I could see my GPU working and Jellyfin Processing.
With that, I’ve officially gave Plex the middle finger, cut ties with corporate greed and embraced the very spirit of being open source. Life was good. Until, I started actually using it 🙁
The Fall of Jellyfin, The Curse of the Open Source
When you go open source, there is an unspoken rule that “its not going to work 100%”. Linux users get this, you can’t have everything. If you want everything, roll up your sleeves and write some code! (If you are smart enough to do that…) But, most people just want a working product. Jellyfin is just that, its close but it just falls a little short.
For me, there were a few annoying peeves. Music was the biggest one. On the android app, music would randomly stop, skip ahead or skip mid song, and didn’t listen to my smart watch music controls. I didn’t show the artist/track data on Bluetooth either. The other thing that bugged me was there was no MFA option for logging in. I mean, SSL is good, but adding that extra layer of auth codes really hardens a public facing server.
And there goes the Camal!
But the final straw, among all the little annoyances, was casting. Something we do on a nightly basis, something we were used to just working every time. While it did technically work, the problem was the title banner for the episode would sometimes not disappear. Stupid I know… but after a long day, and you just want to watch an episode of the office. The last thing you’ll want to do is recast to the Chromecast over and over… Netflix, Hulu, and yes… Plex, it just works. Especially, when your wife is a user, a casual user. Casual users don’t want to trouble shoot, they don’t want to open a terminal, they just want it to work.
That was the deal breaker for me, my wife pointing out how petty I was being about this. Not spending $5, but willing to waste weeks changing over our media center setup. On top of that, making her have to deal with all this bullshit too when all she wants to do is watch a movie. So, with a tail between my legs, I finally swallowed my pride.
The Prodigal Son Returns
And so, I went back to Plex with open arms. However, I did not pay the $5 fee they were asking for to use the app, oh no. I instead went all in! I purchased the life-time plex pass for a hefty price. Not only will I get to watch Silicon Valley on my phone again, but I will also have access to lots of other features. The two biggest wins are downloading offline for movies and music and Hardware transcoding! Not a lot of companies are offering lifetime subscriptions either, so the longer I use plex now, the more its worth it!
The moral of this story is, Open source projects are amazing. They start with passion and a fuck you attitude. But eventually, those things can’t keep the servers online, or keep your devs fed. At some point, your going to have to take that deal or start charging. I get it, free isn’t always free. So, put your money where you want it. If you believe in something, invest in it, help it thrive. Maybe one day we’ll revisit Jellyfin, or maybe pop open its github and see if there is any bugs we can help squash.
But for now, I’m just going to enjoy my hassle free music and TV. Thanks for coming by, until next time! 🙂