Media Servers Media Server information and related Media Server Applications About Media Servers Information regarding media servers. Choosing a Media Server Choosing to run a a home media server can be a fun and educational hobby while also providing a central source to store, control and serve all your media. Most people want a media server to consolidate all their media content and access that content from one unified source displayed in an attractive menu that is easy to navigate and use. There are a number of excellent free and open source media servers available that do just that as well as paid, proprietary servers and appliances. It just depends on what you are trying to achieve as an end result that should drive you to one or another. When selecting which media server software to invest your time (and sometimes $$) you should do so by asking yourself (and answering) the following questions. How do you want to access your media? Do you want to access your media only at home or also away from home? Do you want to share your media with others? From what device(s) do you want to access your media? TV? Projector? Smartphone? Computer? Home audio devices? What type of media do you want to serve from your media center? Video? For example, a movie library, TV show library, personal videos, etc. Audio? For example, a music library or streaming music service Live TV? For example, cable or over-the-air signals Images? For example, Family photos, hobbyist images, etc. Do you want to integrate your media server into a Home Theater? Do you want to automate any processes of your media server? For example, automatically controlling lighting when a movie starts, stops or is paused. Do you want a Cinema-like experience with trailers and/or bumpers before a movie starts? What visual or audio requirements will you have for content on your media server? Any format or resolution preferences for your content? such as: SD, HD or 4K for video content MP3 or FLAC for audio content How comfortable are you with Computing? Do you like to be "hands on" or do you "just want it to work"? The answers to these questions will help you decide which media server type, software and hardware will best suit your needs. The Most Popular Media Servers The Most Popular Open-Source Media Servers The most popular open-source media servers are: Plex Jellyfin Kodi Emby MediaPortal Universal Media Server OSMC A Feature Comparison The media server features we will compare are: Server Platforms - The device type(s) where you can install the media server software. The server platform can also be its own client as with a Home Theater server. The server platforms are different than the client platforms. Client Platforms - The device(s) that can access your media server remotely. In some cases, there is no separate client application. The server software itself must be installed on any device you wish to access your media library. In this case the client platform will be "self". Hardware Transcoding - This indicates if the media server supports hardware transcoding. Transcoding is a process media servers use to convert a video or audio file into a different format so it can be accessible to a wide range of devices. Software transcoding is CPU intensive so to offload the transcoding process to a dedicated piece of hardware with its own CPU is preferable for best performance. Local Access without Internet - Some media server software requires you to setup an account with the developer. In some cases, you have to sign-in using your account to access your media server libraries even if the server is local.  Music / Sync  - This indicates if the server supports a music library and/or the ability to download or sync content. Photo / eBooks - This indicates if the server supports photo libraries and/or an electronic book library. Live TV / DVR - This indicates if the server integrates Live TV  and/or has DVR functionality. Usually via an over-the-air (OTA) or cable peripheral tuner card for the media server or a network OTA/cable appliance such as a HD Homerun . Media Server Server Platforms Client Platforms Hardware Transcoding Local Access without Internet Music / Sync Photo / eBooks Live TV / DVR   Subscription Plex Linux, Windows, Docker, NAS, Nvidia Shield, Western Digital My Passport Wireless Pro, NETGEAR X10 router Android, IOS, Web, Roku, Amazon Fire TV, Apple TV, Android TV, Chromecast,LG, Samsung, VIDAA, Vizio, and Hisense Smart TVs Yes 1 No 2 Yes / Yes Yes / No Yes / Yes 1   Free / Paid   JellyFin Linux, Windows, MacOS, Docker Android, IOS, Android TV, Roku, Apple TV, WebOS (LG Smart TVs) Yes Yes Yes / Yes Yes Yes Free Kodi Windows, macOS, Linux, Android, iOS, Raspberry Pi self No Yes Yes / No Yes / Yes 3 Yes / Yes Free Emby Windows, macOS, Linux, Docker, NAS PC or mobile browser has full playback capability.   The following clients are supported with a paid subscription:Windows, Linux, MacOS, IOS, Android, Fire TV, Android TV, Roku, Apple TV, LG and Samsung Smart TVs, XBox, PS4 Yes 1 Yes Yes / Yes 1 Yes / Yes Yes 1 / Yes 1 Free / Paid Media Portal Windows  Self, Android, IOS Yes 3 Yes Yes / No Yes / No Yes / Yes Free Universal Media Server Windows, macOS, Linux, Docker It is able to stream videos, audio and images to any DLNA-capable device Yes Yes Yes / No Yes / No No / No Free OSMC Windows, MacOS, Linux, Raspberry Pi, and Vero (OSMC's flagship appliance) OSMC did support Apple TV but it will no longer received any updates as it has been deprecated. self No Yes Yes / No Yes / No No / No Free 1  A paid subscription is required for this feature 2  Local access to your Plex server without Internet is possible by activating the internal DLNA server. This must be done while you have Internet access as it requires you to sign-in to your account to change the configuration. You won't be accessing your Plex server via the standard UI however. You will need to have a DLNA client to do that. Roku has a DLNA app in its app store and there are several available for the PC, such as VLC. 3 Supports this feature if using an add-on or plug-in   Complimentary Applications for Media Servers Complimentary Applications for Media Servers There are number of complimentary software packages, applications and tools available for various media servers. Some are designed for content management such as transcoding digital video formats, naming content, managing subtitles and automating content acquisition while others provide statistical information, just to name a few. You will inevitably find you have a need for some of these applications and tools. I use a number of them and those I use are detailed in the Content Management book on this site.  Content Management Various software applications I use to manage or automate media server content Tautulli Tautulli is a 3rd party application that you can run alongside your Plex Media Server to monitor activity and track various statistics. Most importantly, these statistics include what has been watched, who watched it, when and where they watched it, and how it was watched. All statistics are presented in a nice and clean interface with many tables and graphs. Sonarr   Sonarr is a PVR for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available. Installation The Sonarr team does not offer an official Docker image. However, a number of third parties have created and maintain their own. These instructions provide generic guidance that should apply to any Sonarr Docker image.  I use a docker image from linuxserver.io to install Sonarr.   If you prefer to install Sonarr via another method go to Sonarr's official downloads page . Running Sonarr as a container Basic examples for getting this image running as a container Docker Compose --- version: "2" services: sonarr: image: linuxserver/sonarr:3.0.10 container_name: sonarr restart: unless-stopped environment: - TZ=Europe/London # Specify a timezone to use - PUID=1000 # User ID to run as - PGID=1000 # Group ID to run as volumes: - /host/path/to/data:/data # Location of all your media - /host/path/to/config:/config # Contains all relevant configuration files. ports: - 8989:8989/tcp # Web UI CLI docker create \ --name=sonarr \ -e TZ=Europe/London `# Specify a timezone to use` \ -e PUID=1000 `# User ID to run as` \ -e PGID=1000 `# Group ID to run as` \ -v /host/path/to/data:/data `# Location of all your media` \ -v /host/path/to/config:/config `# Contains all relevant configuration files.` \ -p 8989:8989/tcp `# Web UI` \ --restart unless-stopped \ linuxserver/sonarr:3.0.10 Avoid common pitfalls Volumes and Paths There are two common problems with Docker volumes: Paths that differ between the Sonarr and download client container and paths that prevent fast moves and hard links. The first is a problem because the download client will report a download's path as /torrents/My.Show.S01E01/ , but in the Sonarr container that might be at /downloads/My.Show.S01E01/ . The second is a performance issue and causes problems for seeding torrents. Both problems can be solved with well planned, consistent paths. Most Docker images suggest paths like /tv and /downloads . This causes slow moves and doesn't allow hard links because they are considered two different file systems inside the container. Some also recommend paths for the download client container that are different from the Sonarr container, like /torrents . The best solution is to use a single, common volume inside the containers, such as /data . Your Series would be in /data/tv , torrents in /data/downloads/torrents and/or usenet downloads in /data/downloads/usenet . If this advice is not followed, you may have to configure a Remote Path Mapping in the Sonarr web UI (Settings › Download Clients). Ownership and Permissions Permissions and ownership of files is one of the most common problems for Sonarr users, both inside and outside Docker. Most images have environment variables that can be used to override the default user, group and umask, you should decide this before setting up all of your containers. The recommendation is to use a common group for all related containers so that each container can use the shared group permissions to read and write files on the mounted volumes. Keep in mind that Sonarr will need read and write to the download folders as well as the final folders. For a more detailed explanation of these issues, see The Best Docker Setup and Docker Guide wiki article. Install Sonarr To install and use these Docker images, you'll need to keep the above in mind while following their documentation. There are many ways to manage Docker images and containers too, so installation and maintenance of them will depend on the route you choose. ghcr.io/hotio/sonarr:release hotio doesn't specify any default volumes, besides /config . Images are automatically updated multiple times per hour if upstream changes are found. Read the instructions on how to install the image. ghcr.io/linuxserver/sonarr:latest linuxserver.io is one of the most prolific and popular Docker image maintainers. They also maintain images for most of the popular download clients as well. LinuxServer specifies a couple of optional default volumes such as /tv and /downloads . The default volumes are not optimal nor recommended. Our recommendation is to use a single volume for the data, as mentioned above. Radarr Radarr is a movie collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new movies and will interface with clients and indexers to grab, sort, and rename them. It can also be configured to automatically upgrade the quality of existing files in the library when a better quality format becomes available. Note that only one type of a given movie is supported. If you want both an 4k version and 1080p version of a given movie you will need multiple instances. Installation The Radarr team does not offer an official Docker image. However, a number of third parties have created and maintain their own. These instructions provide generic guidance that should apply to any Radarr Docker image.  I use a docker image from linuxserver.io to install Radarr.   If you prefer to install Radarr via another method go to Radarr's official downloads page . Running Radarr as a container Basic examples for getting this image running as a container Docker Compose --- version: "2" services: radarr: image: linuxserver/radarr:4.3.2 container_name: radarr restart: unless-stopped environment: - UMASK_SET=022 # control permissions of files and directories created by Radarr - TZ=Europe/London # Specify a timezone to use EG Europe/London, this is required for Radarr - PUID=1000 # for UserID - PGID=1000 # for GroupID volumes: - /host/path/to/movies:/movies # Location of Movie library on disk (See note in Application setup) - /host/path/to/downloads:/downloads # Location of download managers output directory (See note in Application setup) - /host/path/to/config:/config # Database and Radarr configs ports: - 7878:7878/tcp # The port for the Radarr webinterface CLI docker create \ --name=radarr \ -e UMASK_SET=022 `# control permissions of files and directories created by Radarr` \ -e TZ=Europe/London `# Specify a timezone to use EG Europe/London, this is required for Radarr` \ -e PUID=1000 `# for UserID` \ -e PGID=1000 `# for GroupID` \ -v /host/path/to/movies:/movies `# Location of Movie library on disk (See note in Application setup)` \ -v /host/path/to/downloads:/downloads `# Location of download managers output directory (See note in Application setup)` \ -v /host/path/to/config:/config `# Database and Radarr configs` \ -p 7878:7878/tcp `# The port for the Radarr webinterface` \ --restart unless-stopped \ linuxserver/radarr:4.3.2 Avoid common pitfalls Volumes and Paths There are two common problems with Docker volumes: Paths that differ between the Radarr and download client container and paths that prevent fast moves and hard links. The first is a problem because the download client will report a download's path as /torrents/My.Movie.2018/ , but in the Radarr container that might be at /downloads/My.Movie.2018/ . The second is a performance issue and causes problems for seeding torrents. Both problems can be solved with well planned, consistent paths. Most Docker images suggest paths like /movies and /downloads . This causes slow moves and doesn't allow hard links because they are considered two different file systems inside the container. Some also recommend paths for the download client container that are different from the Radarr container, like /torrents . The best solution is to use a single, common volume inside the containers, such as /data . Your Movies would be in /data/Movies , torrents in /data/downloads/torrents and/or usenet downloads in /data/downloads/usenet . If this advice is not followed, you may have to configure a Remote Path Mapping in the Radarr web UI (Settings › Download Clients). Ownership and Permissions Permissions and ownership of files is one of the most common problems for Radarr users, both inside and outside Docker. Most images have environment variables that can be used to override the default user, group and umask, you should decide this before setting up all of your containers. The recommendation is to use a common group for all related containers so that each container can use the shared group permissions to read and write files on the mounted volumes. Keep in mind that Radarr will need read and write to the download folders as well as the final folders. Install Radarr To install and use these Docker images, you'll need to keep the above in mind while following their documentation. There are many ways to manage Docker images and containers too, so installation and maintenance of them will depend on the route you choose. hotio/radarr:release hotio doesn't specify any default volumes, besides /config . Images are automatically updated multiple times in an hour if upstream changes are found. Hotio also builds our Pull Requests which may be useful for testing. Read the instructions on how to install the image. lscr.io/linuxserver/radarr:latest linuxserver.io is one of the most prolific and popular Docker image maintainers. They also maintain images for most of the popular download clients as well. LinuxServer specifies a couple of optional default volumes such as /movies and /downloads . The default volumes are not optimal nor recommended. Our recommendation is to use a single volume for the data, as mentioned above. Prowlarr Prowlarr is an indexer manager/proxy built on the popular *arr .net/reactjs base stack to integrate with your various PVR apps. Prowlarr supports management of both Torrent Trackers and Usenet Indexers. It integrates seamlessly with Lidarr, Mylar3, Radarr, Readarr, and Sonarr offering complete management of your indexers with no per app Indexer setup required. Lidarr Lidarr Lidarr is a music collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new albums from your favorite artists and will interface with clients and indexers to grab, sort, and rename them. It can also be configured to automatically upgrade the quality of existing files in the library when a better quality format becomes available. Installation The Lidarr team does not offer an official Docker image. However, a number of third parties have created and maintain their own. These instructions provide generic guidance that should apply to any Lidarr Docker image.  I use a docker image from linuxserver.io to install Lidarr.   If you prefer to install Lidarr via another method go to Lidarr's official downloads page . Running Lidarr as a container Basic examples for getting this image running as a container Docker Compose --- version: "2" services: lidarr: image: linuxserver/lidarr:1.0.2 container_name: lidarr restart: no CLI docker create \ --name=lidarr \ --restart no \ linuxserver/lidarr:1.0.2 Avoid common pitfalls Volumes and Paths There are two common problems with Docker volumes: Paths that differ between the Lidarr and download client container and paths that prevent fast moves and hard links. The first is a problem because the download client will report a download's path as /torrents/My.Music.2018/ , but in the Lidarr container that might be at /downloads/My.Music.2018/ . The second is a performance issue and causes problems for seeding torrents. Both problems can be solved with well planned, consistent paths. Most Docker images suggest paths like /musics and /downloads . This causes slow moves and doesn't allow hard links because they are considered two different file systems inside the container. Some also recommend paths for the download client container that are different from the Lidarr container, like /torrents . The best solution is to use a single, common volume inside the containers, such as /data . Your Musics would be in /data/Musics , torrents in /data/downloads/torrents and/or usenet downloads in /data/downloads/usenet . If this advice is not followed, you may have to configure a Remote Path Mapping in the Lidarr web UI (Settings › Download Clients). Ownership and Permissions Permissions and ownership of files is one of the most common problems for Lidarr users, both inside and outside Docker. Most images have environment variables that can be used to override the default user, group and umask, you should decide this before setting up all of your containers. The recommendation is to use a common group for all related containers so that each container can use the shared group permissions to read and write files on the mounted volumes. Keep in mind that Lidarr will need read and write to the download folders as well as the final folders.   Install Lidarr To install and use these Docker images, you'll need to keep the above in mind while following their documentation. There are many ways to manage Docker images and containers too, so installation and maintenance of them will depend on the route you choose. hotio/lidarr:release hotio doesn't specify any default volumes, besides /config . Images are automatically updated multiple times in an hour if upstream changes are found. Hotio also builds our Pull Requests which may be useful for testing. Read the instructions on how to install the image. lscr.io/linuxserver/lidarr:latest linuxserver.io is one of the most prolific and popular Docker image maintainers. They also maintain images for most of the popular download clients as well. LinuxServer specifies a couple of optional default volumes such as /musics and /downloads . The default volumes are not optimal nor recommended. Our recommendation is to use a single volume for the data, as mentioned above. Overseerr Overseerr is a free and open source software application for managing requests for your media library. It integrates with your existing services, such as Sonarr , Radarr , and Plex. It provides your users with a way to make requests for your media server and automatically (or with your approval) sends the request to Sonarr or Radarr. Installation You can install Overseerr on various platforms. I recommend the docker container for installation. If you need another installation method they can be found here: Overseer Installations Docker Compose --- version: '3' services: overseerr: image: sctx/overseerr:latest container_name: overseerr environment: - LOG_LEVEL=debug - TZ=Asia/Tokyo - PORT=5055 #optional ports: - 5055:5055 volumes: - /path/to/appdata/config:/app/config restart: unless-stopped Be sure to replace /path/to/appdata/config in the examples with a valid host directory path. If this volume mount is not configured correctly, your Overseerr settings/data will not be persisted when the container is recreated (e.g., when updating the image or rebooting your machine). The TZ environment variable value should also be set to the TZ database name of your timezone! CLI docker run -d \ --name overseerr \ -e LOG_LEVEL=debug \ -e TZ=Asia/Tokyo \ -e PORT=5055 `#optional` \ -p 5055:5055 \ -v /path/to/appdata/config:/app/config \ --restart unless-stopped \ sctx/overseerr To run the container as a specific user/group, you may optionally add --user=[ user | user:group | uid | uid:gid | user:gid | uid:group ] to the above command. Updating Stop and remove the existing container: docker stop overseerr && docker rm overseerr Pull the latest image: docker pull sctx/overseerr Finally, run the container with the same parameters originally used to create the container: docker run -d ... You may alternatively use a third-party updating mechanism, such as Watchtower or Ouroboros to keep Overseerr up-to-date automatically. Bazarr Bazarr is a companion application to Sonarr and Radarr. It manages and downloads subtitles based on your requirements. You define your preferences by TV show or movie and Bazarr takes care of everything for you. Be aware that Bazarr doesn't scan disk to detect series and movies: It only takes care of the series and movies that are indexed in Sonarr and Radarr. Installation There are several platforms on which you can install Bazarr. This install is focused on the docker container method of installation since that is my primary way to handle most server applications. If you do not want to install via a container, the other installation methods for Bazarr can be found on the official Bazarr wiki . Running Bazarr as a container Basic examples for getting this image running as a container. The image I am using here is maintained by linuxserver.io You CANNOT store your config directory over an NFS share as it is unsupported by SQLITE. You will receive a locked database error. Docker Compose --- version: "2" services: bazarr: image: linuxserver/bazarr:1.2.0 container_name: bazarr restart: unless-stopped environment: - UMASK_SET # Control permissions of files and directories created by Bazarr - TZ # Specify a timezone to use EG Europe/London. - PUID # ID of user to take ownership of application/files - PGID # GID of user to take ownership of application/files volumes: - /host/path/to/tv:/tv # Location of your TV Shows - /host/path/to/movies:/movies # Location of your movies - /host/path/to/config:/config # Bazarr data ports: - 6767:6767/tcp # Allows HTTP access to the internal webserver. CLI docker create \ --name=bazarr \ -e UMASK_SET `# Control permissions of files and directories created by Bazarr` \ -e TZ `# Specify a timezone to use EG Europe/London.` \ -e PUID `# ID of user to take ownership of application/files` \ -e PGID `# GID of user to take ownership of application/files` \ -v /host/path/to/tv:/tv `# Location of your TV Shows` \ -v /host/path/to/movies:/movies `# Location of your movies` \ -v /host/path/to/config:/config `# Bazarr data` \ -p 6767:6767/tcp `# Allows HTTP access to the internal webserver.` \ --restart unless-stopped \ linuxserver/bazarr:1.2.0 Plex Plex orginally was a Media Server that made it possible to stream your personal media remotely. While it still provides that service, it has evolved, for better or worse, into a streaming platform of its own. Something akin to NetFlix or Hulu with native ad supported offerings.  If you have a collection of media, Plex enables you to stream all that stuff from a computer or server onto your TV or smartphone. And while you can use Plex for free, a lot of its best features, especially media server related features, require a paid subscription to Plex Pass.  On a personal note, I don't really like "sharing" my media server user interface (UI) with content from another source, even if it is Plex itself. Granted Plex as a media server is excellent, but there are a number of issues starting to pile up since they decided to become a streaming platform themselves. There are a number of pros and cons for Plex as it is today. Here is my  list: Plex Pros Plex Cons Supports a wide variety of server and client platforms and devices. Extremely limited UI customization. User interfaces can vary greatly from one platform to another. Hardware transcoding is excellent Limited ability to access your media locally from your Plex server if your Internet is down. This is due to Plex's cloud authentication. You have to be able to sign-in to Plex via the Internet to access your local server.   DLNA is Plex's solution to this, but it is a horrible experience as you must rely upon 3rd party client side DLNA apps. Roku's DLNA client sucks, for example. Efficient use and decent monitoring of device resources No support for eBooks or audio books Loads of community support Most of the popular media server specific features, such as hardware transcoding, downloads, mobile sync, DVR recording, music lyrics, skipping intros and credits, custom sharing restrictions and bandwidth and transcoding limits require a paid subscription or a lifetime membership. Supports Live TV and DVR options (we are talking locally, not Plex's own offerings) Android and IOS mobile apps require a fee Very good database management and backup options No ability to grant friends access to your local Live TV unless you make them part of your Home account (which lists them with your home users every time you login) Regular updates and patches User management is a pain. Used to be able to go to an intuitive user menu and make changes to any user, friend or home user. Now you have to go to two menus, Plex Home & Manage Library Access to manage users.   You used to see your users full email address as their username on your server. Now it is some truncated semi-readable name. You have no ability to change the name of your user's accounts to something human friendly. If you use Tautulli you can change those truncated email/usernames there, but it won't show up in Plex that way. New libraries on your Plex server show up at the bottom of your user's menus. Requiring them to re-pin and change the order of their menus anytime there's a library addition or change.   For example, if I add a new library (or change the name of an existing library) to my Plex server and grant users access to it, they won't necessarily see it without pinning it to their menu (which means they probably won't ever know it's there).   If they do know about it and go looking for it; it will be at the bottom of the list instead of where it ought to be (with the other libraries from my server).  After paying for a Plex Pass lifetime subscription years ago, I find I don't really care for the direction Plex has taken. With little or no say in how my media server is used by Plex, I am actively seeking a replacement. So far, JellyFin is in the lead as a replacement for Plex.  With that said, if you want an alternative or supplemental streaming service, Plex has an attractive list of free offerings. However, if you want a Home Theater media server or a media server you can completely control and  share your libraries with friends and family, you may want to look elsewhere.  Installation You can find all the installation instructions and downloads for Plex here: Plex Downloads Plex Official Docker Installation Plex Media Server Installation Guide Jellyfin Jellyfin is the volunteer-built media solution that puts you in control of your media. Stream to any device from your own server, with no strings attached. Your media, your server, your way. Jellyfin enables you to collect, manage, and stream your media. Run the Jellyfin server on your system and gain access to the leading free-software entertainment system, bells and whistles included. Jellyfin is the "new kid on the block" as it is the newest in a long line of free and open source media servers. Jellyfin's predecessors have either become defunct, lost popular support or upon becoming successful switched to a "pay" platform (I'm specifically thinking of Emby for that last one). I am hoping Jellyfin becomes the Ubuntu of the media server world. While it still has a way to go for me to cut the Plex cord, it has made great strides in the past couple of years. Thanks to a growing skilled community of supporters who believe you can have a great self hosted and self controlled free and open source media server at home. There are a number of features and issues Jellyfin needs to implement and correct to become the best competition to the likes of Plex and Emby. In no particular order; here are my thoughts on the most important features (to me) of Jellyfin: Client ubiquity 👍 Jellyfin already has clients for Android & IOS smartphones and tablets, as well as, Amazon fire TV, Apple TV, Android TV, LG WebOS, and Roku. These clients vary on their polish and utility. I expect these will improve over time.  Server statistics 👎 Jellyfin, thus far, is lacking in any sort of server statistics which are useful to server operators. Something like Tautulli integrated into the server itself would be a positive differentiating factor versus other media servers.  Hardware Transcoding 👌 While Jellyfin does OK hardware transcoding, it is very difficult to find a stable configuration. I would like to see a better default config that is stable "out of the box" without much tweaking. For the most frequently used hardware, like Nvidia for example. Similar to activating hardware transcoding in Plex. Metadata 👍 Jellyfin's handling of metadata and images is excellent. I quite like being able to store the images with my media. Unlike Plex, who stores the images as random string filenames seperately from the media. I particularly like the metadata storage as NFO files with the media, for ease of access and so the server doesn't have to scrape the data from the Internet every time unless I tell it to. Live TV & EPG 👎 So far I haven't been impressed with Jellyfin's Live TV implementation. I have experienced multiple issues with playback from a HD Homerun. Playback from the same device on Plex is flawless and "just works". I'm torn as to how I feel about Jellyfin's EPG handling. I understand that guide data can be a pain and to get it free you need to overcome some obstacles, but there has got to be a better, less complicated solution to get free guide data into Jellyfin. Rather than 3rd party zap2it and cron, how about a plug-in that does it for you? Since I'm not a programmer I really don't know what would have to be done to make that happen, I'm just saying 😉