What are my options?
You’re at the point where you feel you are no longer getting any value from cable, satellite, and/or subscription services for content and you want to build something that will allow you to have more control over the entire experience. You’ve decided that you’re ready to build a system but you need help deciding on which one you want to dive in with. That’s why you’re here.
And that’s why I’m here, too… To help you with that decision by offering some direct details and some things to think about and consider for your own usage that may end up changing from what’s covered here or might not be covered here in detail at all. Let’s start by looking at some of the choices you have available to you:
- Plex
- Emby
- Jellyfin
- Kodi
- “Just” a file server with media files
Let’s continue on with some other example things to know or think about. It’s simply not possible to create a fully complete list, but I do hope the various examples below will help you if you are considering an option not directly mentioned.
What’s the Same?
Regardless of how you go about creating a media server, there are some things that will be the same no matter what. The one that’s probably more obvious is the media itself, but there are a couple of other things that will come into play regardless. Here are some of the things that will either be exactly the same or are worth thinking about across different options in the event you want to run multiple solutions or even be able to migrate easily from one to another.
Storage: You will need disk to hold your media content. How much, how many drives, and whether it’s connected to a single device or something like a NAS can vary. At least be thinking about how to handle the storage independently so that you have the most flexibility for attaching a server component in front of it.
Structure and Naming: Most systems either require or can at least easily leverage a single layout for how folders are named, what folders can contain, and how to name the media files themselves. Plex has some reasonably detailed documentation around naming for Music, TV Shows, and Movies that are a great guideline to use.
Permissions: Just about any operating system is going to support an individual user that the software can execute as and various permissions to access the folders and files. Understanding this will be helpful before diving in, as will reading through details around different software to understand what they do and don’t support. For example, one thing that is almost impossible to determine without managing the software is that Emby does not generally “support” running as any user other than “Emby” on linux installations (technically, it is supported, but it isn’t a set once configuration item). I do not use this user and every time I install a server it update I have to run a custom re-configuration script that I wrote to edit the scripts so that it will correctly start as the user I want.
Networking and Network Access: Getting everything built out is great, but you also need to be able to access the content from your clients. This is a fairly straight-forward item for most users because they will be running the server on the same local IP network as the client. Accessing your setup remotely has a variety of different options which can vary by software.
What’s the Difference?
There are a few different things that will matter as you compare one option against another: Is there a cost (and how much is it), are all of my devices able to use a specific client, and how active is the development of the product. That last item is a bigger deal than what you might initially think because it ties with not just things like whether new features are being added and whether bugs are being addressed but also whether or not security vulnerabilities are being addressed quickly and how up-to-date the entire ecosystem is being kept. In on particular order, here are some of the differences an individual option has and possibly some information based on personal experience if I have delved into it.
Plex
Plex is not the product (or offering) today that it once was. It had undergone some significant shifts that have heavily alienated long-time users (myself “mostly” being one of them – more detail below). Any company that creates a graphical product for users is going to make some changes that people will complain about, but recent changes to the various client apps have also brought a significant amount of functionality problems. It’s one thing to move a tile on the screen, it’s another to change the client so drastically that basic functions no longer work.
With that said, there is one aspect of the Plex server that I genuinely appreciate – When you are creating a recording of an over-the-air (OTA) show, you are able to select the specific library that you would like to save that recording into. This is a great option for situations where multiple people might want to be recording shows and saving them into their own “personal” DVR libraries. By way of comparison, Emby forces everything into one specific library that you have no control over – including where it resides on disk.
Generally, Plex will do everything you might want – it handles music, TV shows, movies, and more for content types, it supports integrating networked tuners for access to live TV broadcasts, and can also record things off of live TV. They offer their own Electronic Program Guide (EPG) as part of the Live TV configuration or you can supply your own guide in an XML format. Be warned, however, that their Live TV configuration does not support changing the EPG after-the-fact. If you decide you want or need to use a different guide, you’ll have to completely rebuild your entire Live TV setup including any recordings that are configured (which you can only create new when the program exists in the EPG – worth understanding that you can’t, for example, set a recording in June for that brand new comedy that comes out in the fall because there is zero information about the show in the EPG at that point.
Plex also offers access to content outside of your own content which is fairly unique in the space, but it requires having internet access for the server in order to validate its own licenses for the servers as well as validate users. This causes issues for some folks that don’t know ahead of time and then have no access to their content when their ISP is down. Be aware…
If you’d like to read more of what Plex offers for both their paid and non-paid tiers, please see the information at the bottom of this link.
Emby
Emby is a reasonably stable platform, but it’s also a considerably “static” platform – I’ve been a user for five years or so as of this writing and I haven’t seen anything change in that time frame. There’s a decent user forum off of their main web site, but just about all discussions end in one of two ways: Anything you’re asking about or for is something that they aren’t implementing for any number of reasons or you will be told that what you are asking for is something they’re working on, it’s “on the list”, it’s “in the works”, or some other version of that but you will NEVER get a committed timeframe of any type and it will almost certainly never actually make it into the product.
The server side is fairly stable and reliable. The clients are kind of not. There is some inconsistency of how the apps work from one client to the next, although it tends to be minor. The more important thing regarding clients is that Android-based devices will tend to see client updates and fixes more regularly and more quickly while Apple (iOS, iPadOS, TVOS) clients tend to get updated very infrequently. The current Apple TV client, for example, is buggy. Emby knows about the issues, they’ve been present for close to a year, Emby has released a few minor releases during that time with “bug fixes”, but the app continues to randomly crash.
I’ll also call out a fairly serious security flaw in Emby that seems like it was handled very, very poorly. Jellyfin is a fork of Emby, and its starting point was exactly what Emby was at the time the fork was created. This occurred somewhere around 2018. In 2023, a botnet attack that exploited a vulnerability in the code that pre-dated the Jellyfin fork cause Emby to actively shut everyon’s server down taking everyone offline. No warning, no notice, no communication – not even to those with Emby Premier licenses.
Server owners woke up one day to find their systems offline with no understanding of why. Emby pushed an update that all servers accepted and installed then attempted to restart. Their Security Advisory about the issue claimed the restart would look for a specific plugin and prevent the server from starting if it was found. This plugin was either in practically every server that was running or the information in the advisory was wrong because pretty much everyone lost access to their content as a result. The only ones that seemed to survive the security push were those that had their servers blocked from accessing the Internet and therefore couldn’t receive the update in the first place. They then went on to pat themselves on the back for how efficiently and effectively they stopped this attack while the Jellyfin community never had an issue – they had fixed the vulnerability from the original code forked from Emby -years- earlier.
A couple of things I want to point out as positive on the Emby side are that you can reconfigure the Live TV section at most any time. Their interface for adding, modifying, and even removing individual components (including supporting the use of multiple EPG’s at one time) is quite good. And, they also provide an EPG if you want to use theirs. Another significant positive for Emby is that their Android-based device clients do work quite well. At a time when the Plex Android TV client couldn’t help but drag to a crawl when running on the local LAN, the Emby client didn’t care what the device was and it was smooth at all times. One other nice feature is that you CAN build a library with multiple content types which Plex absolutely does not support.
While Emby does have a “trial” period to test things out, they do require you to purchase a license of some sort. Even though I understand how their model works, I find it unnecessarily complicated. You can license your server(s) -OR- your app(s). Figuring out which model makes the most sense for you is what I feel is overly complex and unnecessary. Also, Emby does -not- provide access to any content outside of what you have on your server. You can read about the Premiere licensing here.
While Emby doesn’t generally “track you”, it does require the ability to call home to check for updates and to validate its own Premiere license. I have monitored the traffic and found that it’s fairly persistent but very, very low volume. In the case of an Internet outage, I would expect to easily be able to operate for up to two full weeks without issue.
Jellyfin
As mentioned earlier, Jellyfin is a fork of Emby from around the 2018 / 2019 timeframe. It is open source, community built and supported, entirely license free, and contains zero tracking or “call home” components. The types of media, naming, structure, etc. is essentially identical to the others.
Many users feel the “official” client doesn’t meet their needs so they use one of a variety of others that are available instead. Infuse is a client that can tie back to Plex, Emby, Jellyfin, and more but there are other clients just for Jellyfin as well. Streamyfin, Wholphin, Neptune, and Finamp are just a few of the various third-party client options that can be used with a Jellyfin server – choose the one YOU like! 🙂
If you want to take a virtual tour of the product, they have an online demo system you can experiment with here. Username is “demo” and password should be left blank.
While there is a good community wrapped around Jellyfin, the docs are a bit “light” compared to the previous two and OS support isn’t as comprehensive for the server-side of things. If your preferred linux distro is anything other than Debian/Ubuntu, you’re kind of on your own unless you want to go the route of Docker containers.
Kodi
This is a different kind of setup altogether as it steps completely away from the Client / Server architecture all of the systems discussed up to now use and moves to a completely localized solution. Your media content can absolutely live in a centeralized location in your home, but each individual Kodi client will need access to it and must be managed individually. As a result, there really isn’t a supported remote access model here, either.
Interestingly, though, there’s a sort of “middle ground” with something like Jellyfin for Kodi where you leverage the very customizable interface of the Kodi client and combine it with the media management abilities of Jellyfin. This allows you to sort of “create your own client” for Jellyfin using all of the custom options available within Kodi.
One big advantage to Kodi over the other systems is that you will essentially be “transcoding free” with it. Kodi itself isn’t able to do any on-the-fly transcoding of content so your media either direct plays or it doesn’t. There is no guessing, no in between. If it DOESN’T direct play, you can have a different system process the content to transcode it to something you CAN direct play, but that doesn’t happen in real time and is almost certainly a one-time thing for any piece of content that requires it.
Kodi lends itself nicely to Home Theater PC type systems and has very good support for a variety of different remote controls that can be linked to your HTPC to interact with it. Live TV and PVR / DVR functionality is available, but it does require that you build a system like MythTV or TVHeadend to provide that functionality. You can check Kodi out here.
Others
As mentioned, nothing in here is an exhaustive list… not of the options, not of the features, not of the advantages or disadvantages. I hope that the collective whole of everything helps you understand a bit more about these kinds of systems and the sort of things to be thinking about when deciding which one(s) you may want to try.
What systems have you used? Do you have a favorite? Let me know in the comments!