amtoaer

晓风残月

叹息似的渺茫,你仍要保存着那真!
github
x
telegram
steam
nintendo switch
email

Jellyfin Basic Tutorial

Jellyfin is an excellent local media library management tool. I have heard of it before, but I have never actually used it. Recently, I tried using it to manage the resources in my local 1TB hard drive and realized how primitive my previous anime-watching operations were... So I decided to write an article to document my exploration of Jellyfin and hopefully provide some insignificant help to newcomers in this area.

What is Local Media Library Management?#

First, let's introduce the concept of "local media library management". As we all know, after downloading a video file, you can simply double-click it to play it with a video player. So why do we need "local media library management"?

Let's imagine a few scenarios:

  1. After downloading a TV series, you watched it for a while and then put it aside. When you want to continue watching it, you forget where you left off and have to start from the beginning.
  2. You have accumulated too many TV series, and when you open your video list, you see a clutter of folders, making it difficult to navigate.
  3. You want to easily access your videos on other devices without complicated configurations.

These are the problems that media library management software needs to solve. Specifically, the core functions of a media library management software should include:

  1. Being able to record the user's playback behavior of videos and resume playback at any time; supporting multiple users if necessary.
  2. Abstracting multiple folders into a media library, which is updated in real-time or at regular intervals; matching the video files in the folders and obtaining information such as cover images, descriptions, ratings, and cast and crew from an open database, making the TV series list clear at a glance.
  3. Adopting a frontend-backend separation architecture, where the backend can be deployed on any host to provide APIs. Users can easily access it from multiple platforms (web, various client applications).

How to Install?#

After briefly introducing the concept of media library management, let's now briefly describe how to install Jellyfin.

Since I am using Jellyfin on my local machine, I will only introduce the installation process on Windows, but the principles are the same for other platforms.

Backend#

Jellyfin adopts a frontend-backend separation approach. For installation on Windows, it is recommended to use the exe installer, which will install the Jellyfin server and come with a user-friendly web UI. During the installation process, you will be prompted to choose the installation mode. Installing it as a service means it will start automatically on boot, while installing it as an executable file means the server will only start when manually run.

After running the server, you can open the web UI (default address: localhost:8096) and follow the instructions to complete the initialization process.

Client#

Since the installer already includes a web UI, why do you need to install a client separately?

You see, web browsers have limited support for video formats. Therefore, when a browser encounters a video format that it does not support, the Jellyfin server needs to transcode the video into a format that the browser can decode, resulting in unnecessary overhead. Therefore, it is recommended to install a client locally to handle all the decoding work. This not only reduces the server load but also allows you to make better use of hardware performance (hardware decoding).

Here is a list of clients officially recommended by Jellyfin, and users are free to choose.

What is Scraping and How to Improve Scraping Success Rate?#

After installation and adding media libraries, theoretically, you should be able to enjoy the benefits. As long as you update the source files of your TV series and wait for Jellyfin to automatically refresh the metadata (or manually refresh it), the changes in the source files will be synchronized to the Jellyfin media library. However, ideals are abundant, but reality is harsh. To fully utilize Jellyfin, you still need to be somewhat involved in managing the source files of your TV series. And the reason is scraping.

This term may sound complicated, but its meaning is actually quite simple. It refers to the process I mentioned earlier:

Matching the video files in the folder and obtaining information such as cover images, descriptions, ratings, and cast and crew from an open database.

In most cases, the success rate of scraping movies is quite high, so I will mainly focus on TV series. Scraping failures can generally be divided into two types:

  1. Unable to obtain video information from the video folder.
  2. Unable to obtain season and episode information from the video file.

After a scraping failure, Jellyfin will only display the original folder or file name of the video, without any related images or information, which can greatly affect the user experience.

Since the open database used for scraping is reliable, the majority of scraping failures should not be attributed to incomplete databases, but rather to local issues. The matching process of scraping is actually based on the names of files and folders, so unreasonable file and folder naming is often the culprit for scraping failures. Although sometimes scraping can still succeed even without renaming the video files, it is recommended to use the following directory structure and naming conventions for the source files to improve the scraping success rate (using "Summer Reappear" as an example):

Summer Reappear
└── S1
    ├── S01E01.mp4
    ├── S01E02.mp4
    ├── S01E03.mp4
    ├── S01E04.mp4
    ├── S01E05.mp4
    ├── S01E06.mp4
    ├── S01E07.mp4
    ├── S01E08.mp4
    └── S01E09.mp4

The key points are:

  1. The top-level folder should use the full name of the TV series (original name or commonly used translation).
  2. The second-level folder should be the season number (starting with "Season" or "S").
  3. The third-level file should be the season number followed by the episode number.

There is already an automatic renaming tool available that you can refer to in the README to improve the scraping success rate.

Convenient Anime Tracking#

Mikanani is a very convenient anime download website. Each release group in the website has its own RSS subscription link. You can use a BitTorrent client to subscribe to the RSS feed and combine it with the renaming tool to complete the entire anime tracking workflow. This way, you don't need any manual intervention, and you can simply open Jellyfin to see the latest anime updates. Auto Bangumi is a fully automated anime tracking tool developed based on this idea. Interested readers can explore it on their own. If you prefer semi-automated management, you can follow the steps below to configure it.

Subscribing to Anime RSS in BitTorrent Client#

First, copy the RSS feed link of the anime you want to subscribe to:

image-20220610231224611

Subscribe to the link in your BitTorrent client (using qBittorrent as an example):

image-20220610231407260

Set up download rules:

image-20220610231530310

Automatically rename after downloading (15 seconds after the download is complete, use the aforementioned automatic renaming tool to automatically rename the download directory):

image-20220610231622066

After renaming the files, qBittorrent will be unable to seed due to missing files. Currently, I haven't found a reasonable solution, so the only option is to delete the torrent after the download is complete and not seed it:

If any readers have a solution to keep seeding, please comment on this article. People who only download without seeding are scum, but I have no choice... (sad

image-20220610231958544

After configuring the process mentioned above, you can automatically track anime updates.

Screenshots#

Finally, here are some screenshots of Jellyfin!

Homepage:

image-20220610233612750

Media Library:

image-20220610233706642

Anime Introduction and Season Division:

image-20220610233911189

Season Episode Preview and Summary:

image-20220610233814130

Movie Introduction:

image-20220610234433844

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.