Battle of the Home Media Servers
No home server is complete without a home media server. Where else to store old movies and TV shows that have safely past the statute of limitation on internet piracy, and hard to get media that is now probably public domain. With a handful of self hostable mediaservers to chose form, which should I pick?
Requirements
Going into this I do have some requirements for a HMS. Perhaps the most essential is SSO support. After setting up Keycloak on my home server, there really is no going back to managing credentials and login for every single service I host.
The second requirement is that i can use the HMS on my smart-TV, preferably through an app. Alternatively I would need to be able to chrome cast from a mobile device, thorough a WebUI as I have a severe case of smartphone app fatigue.
Third, I would like the HMS to be open source. Open source is always nice. Open source brings the power of large corporations to the hands of the people. If an open source project lacks some functionality you need, you can always add it yourself. This is not so much a requirement as a preference. Then again, what is the difference between a soft requirement and a hard preference?
Plex
This all started with Plex. I heard a lot of positive things about Plex over the years from friends. Without any skepticism I started to set it up on my server. Using the official Plex docker image didn’t require much work to get up and running with ephemeral storage. Upon first visiting the web UI of my local Plex instance, I was surprised by a redirect to https://app.plex.tv/auth. Looks like Plex self hosted HMS is tightly coupled with the centralized Plex servers. A quick look at the browser network monitor shows a fairly large amount of requests to *.plex.tv. It is not a requirement i though I would have to write down. My main motivation for hosting anything myself is to not have a reliance on a third party, which forces me to allow outbound traffic from the server. It also means that Plex requires an internet connection.
Exploring Plex further as what can be described as the opposite of a deep dive, I recognize what appears to be social media like features. “My Profile”, “Find Friends”.. No thank you!
Emby
Like the burnt child, I too learned from touching the scorching fires of Plex. I start the assessment of Emby by doing some preliminary research.
Like Plex, Emby is proprietary, and looking at the feature requests it does not support OIDC, but does support LDAP. It would be possible to add LDAP federation to Keycloak, but it does add extra complexity to my setup which I do not really need or want.
Apparently Emby used to be open source. Before it went closed source it was forked into another HMS, Jellyfin in 2018.
Kodi
With a GNU 2.0 license, Kodi formerly known as XBMC or XBox Media Center, is the first open source alternative on the list, and with plugin support for OIDC, it looks promising. Kodi does not have an official image on docker hub. Linuxserver.io does provide one, but alas, it is five years old. Kodi has a new releases coming out a few times a month to every three months, judging from the recent release logs, and it comes with with a fair amount of plugins.
Initial Conclusion
It does look like we have a clear winner. Unlike Plex and Emby, Kodi may not have a Tizen app for my Samsung TV, a shortcoming which is easily mitigated by chrome cast. Unlike Plex and Emby, Kodi does not come packed with lots of features I don’t want nor need. Kodi does come with OIDC support. it does come with chrome cast support. It is open source. With all my requirements met it is time to get my hands dirty by getting Kodi up and running in Kubernetes.
Or so I though. Digging deeper into Kodi turns out it is not a media server at all, it is a “media center”, a client, not a server.
Jellyfin
As discovered when looking at Emby, Jellyfin is a fork of Emby from 2018, when Emby went closed source. Jellyfin does have an official Docker image, with the newest image being only eight days old.