TrueNAS Scale Server Build – Jellyfin – Overclockers Club

TrueNAS Scale – Jellyfin Media Server:

Here is another application I can believe many may be interested in, or similar applications. Jellyfin is an open source media server, and while I do like the idea of using open source solutions that is not specifically what drew me to use this over other options. The reason I picked it over others such as Plex and Emby, is it does not need and it does not take any kind of remote account to use. This does attach to it the benefit of there being nothing to pay for, but I just wanted something that I could run locally and use locally. The idea of streaming my content over the Internet is intriguing, but not compelling to me. Jellyfin does still require accounts, but these are local and only for controlling access to content and configuration settings. I have an admin and viewer account, with the latter having no ability to edit anything, including what libraries it can view.

By this point, you can hopefully expect what I am going to say concerning the installation process. It is rather easy and, from TrueCharts at least, supports using NFS shares. At the moment I have given it two folders, one points to a Music folder and the other a Videos folder. While the Music folder is directly to music, I have under Videos separate folders for Movies and TV content. For Jellyfin to access any of this content, you will need to add it as a Library, pointing to the appropriate folder, or sub-folder in my case. There are various settings for these libraries, such as keeping downloaded metadata and other content for your media in the same folder as the media. This seems appropriate as a means of providing you with access to the metadata and to the other content that includes posters, logos, and other graphics.

Honestly, setting this up was very easy and very helpful because it was with Jellyfin that I was able to experiment with and ultimately understand how the NFS shares work. Initially with the NFS shares it had read access to my media, but it could not place the metadata within the folder or create and edit playlists. This was because I had not figured out the Map all settings yet, so it only had read access. Once I changed the NFS shares appropriately I could rescan the libraries and watch the metadata appear.

Honestly, at that point you are kind of done. You can access the Jellyfin server via a web browser or app, needing only to connect it by logging in or using a Quick Connect system. Obviously you must also be on the same network unless you set up a VPN, but that is not something I am going to investigate any time soon. Anyway, once logged in via whichever device and app, you are free to enjoy your media. I have it on my phone and an Amazon Fire Stick, and I can use the phone’s app to control the Fire Stick’s app. Unfortunately it appears necessary to manually open the app on the Fire Stick, it cannot be woken up remotely, but this is still a nice feature because navigating a library of media can be easier on the touchscreen of my phone than with the Fire Stick’s remote. Of course I can also do this via the web browser, if that is more easily accessible, if I desire another option.

One thing that does make the Jellyfin experience occasionally frustrating, and this is not limited to Jellyfin by any means, is the obsessive, exclusive use of metadata-based libraries. The clearest example of this I have are some albums for which I have both MP3 and FLAC, even high resolution FLAC copies of. I keep these all in the same folders and can easily discern between them because of the folder structure. Jellyfin and other media systems ignore folders and instead rely exclusively on the metadata of the files, which is identical in this case. The result is having “albums” that have each file multiplied. Something I am working on is changing the album tag in the metadata of the FLAC versions to indicate they are FLAC. This way the files should go to separate versions of the album, and I can select between them easily enough.

Another complication, and this I can probably lay specifically on Jellyfin is its use of M3U playlists. I like M3U playlists because they can be just simple file lists with relative locations pointing to whatever. I have these throughout my music collection, but Jellyfin is unable to parse them correctly. It seems Jellyfin so strongly expects extra metadata within these files that it will not read the playlists without them.

For example I will use the soundtrack for Gris, which is probably the newest video game soundtrack I have purchased. The M3U playlist I have for the FLAC version starts:

01 Mae.flac
02 GRIS pt.1.flac
03 Debris.flac

There are more than three tracks, but you get the idea just how simple an M3U can be. Despite that, Jellyfin will see this playlist as empty. Now let me show you what Jellyfin made when I used it to create a playlist for Beethoven’s Ninth Symphony, which I have in Ogg Opus files.

#EXTM3U
#EXTALB:Beethoven Symphony No. 9
#EXTART:The Cleveland Orchestra
#EXTINF:911,I Allegro Ma Non Troppo
I Allegro Ma Non Troppo.ogg
#EXTALB:Beethoven Symphony No. 9
#EXTART:The Cleveland Orchestra
#EXTINF:694,II Molto Vivace
II Molto Vivace.ogg
#EXTALB:Beethoven Symphony No. 9
#EXTART:The Cleveland Orchestra
#EXTINF:898,III Adagio Molto E Cantabile
III Adagio Molto E Cantabile.ogg
#EXTALB:Beethoven Symphony No. 9
#EXTART:The Cleveland Orchestra
#EXTINF:1477,IV Presto
IV Presto.ogg

With each file is three additional lines of metadata, and another at the very start to begin the playlist. Well, on a whim I decided to try something, and I am very glad it worked. That line at the very start, #EXTM3U, is apparently all Jellyfin is looking for. By putting that at the top of the files I have made, it now reads the playlists correctly. Why it needs that to parse the plain text file correctly, I do not know, but at least it works. It is not perfect though, as at least when the media files are within a sub-directory below the M3U, Jellyfin still does not read the playlist correctly. That is not too common in my collection, so there are not many playlists I need to rebuild within Jellyfin. At least when I do need to do that, it creates it as an M3U playlist in the folder that I can go in and manually edit, if necessary.

Something else nice about Jellyfin, though I have not explored it much, is its support for plug-ins. Like TrueNAS Scale you can find and add catalogs of them to then install, but for my purposes, none are really necessary. They can provide some intriguing features, beyond additional metadata libraries to look up and so may be worth additional investigation.

As I have continued to work with Jellyfin, there is another quirk, or its or mine, I want to mention concerning TV series. To distinguish the episode files, I use the episode code such as 604 for the fourth episode of season 6. It turns out, Jellyfin does not quite interpret that correctly, as it has a different scheme in mind.

For Jellyfin each season should be in its own folder, which I would do anyway, and the number on the specific files should be the episode number, not the episode code. While I have it as “Season 6/Episode 604.mkv,” it expects “Season 6/Episode 4.mkv.” When it ingests the media, it thinks it is episode 604 of season 6, really confusing it. Fortunately, you can go in and edit the Jellyfin metadata for each file (I do not believe it is altering the file’s metadata directly), so it is properly identified. Then you can refresh the metadata for the series, allowing it to look it up from a database and populates title, description, image, and more automatically. Not ideal, but it works and is pretty easy to go through by hand. I have also done a quick test based on the documentation and it does also work with using SxxEyy to identify season and episode (S06E04 for season 6 episode 4).

While that is an annoyance about the folder scheme Jellyfin expects, it also supports some nice features. For example, you can have multiple versions of a movie within the same folder and select between them, such as a theatrical and extended cut. To do this you need the file names to match the folder name, and then place the desired label, “Extended Cut” or whatever you wish, after a space-surrounded hyphen. For example, “Movie/Movie – Extended Cut.mkv.” Nothing too complicated there and it is better explained in the Movies section of the Jellyfin documentation. You can also place extra features under a subfolder, but you should definitely view the documentation on this as there is a list of expected folder names. (“extras” is a catch-all.)

Since I have now talked about putting entire series onto the server for Jellyfin, next up I want to cover the FFmpeg scripts I use to re-process these. While 6 TB is a good bit of storage, I would still like to get as much out of it as I can. Besides, I can always pull out the disks if I want the absolute best quality.

Source: https://news.google.com/rss/articles/CBMiQmh0dHBzOi8vd3d3Lm92ZXJjbG9ja2Vyc2NsdWIuY29tL3Jldmlld3MvdHJ1ZW5hc19zY2FsZV9idWlsZC84Lmh0bdIBAA?oc=5