Jellyfin is an excellent local media library management tool. I have heard about it before, but I haven't 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 consider a few scenarios:
- 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.
- You have accumulated too many TV series, and when you open the video list, you see a clutter of folders, which makes you dizzy.
- You want to easily access your videos on other devices without complex 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:
- Being able to record the user's playback behavior of videos and resume playback at any time; supporting multiple users if necessary.
- 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.
- Using a frontend-backend separation architecture, the backend can be deployed on any host to provide APIs. Users can easily access it from multiple platforms (web, various client apps).
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 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 directly 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 comes with a web UI, why do you need to install a client separately?
You see, the video formats supported by web browsers are relatively limited. Therefore, when a web browser encounters a video format that it doesn't support, the Jellyfin server needs to transcode the video into a format supported by the browser before handing it over to the browser for decoding. This can cause 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. Users can choose freely.
What is Scraping and How to Improve Scraping Success Rate?#
After installation and adding media libraries, in theory, you should be able to enjoy the benefits of Jellyfin. 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 often far from reality. To fully utilize Jellyfin, you still need to be somewhat involved in managing your TV series source files. And the reason for that is scraping.
The 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 folders and obtaining information such as cover images, descriptions, ratings, and cast and crew from an open database.
In most cases, scraping movies has a high success rate, so I will mainly focus on TV series. Scraping failures can generally be divided into two types:
- Unable to obtain video information from the video folder.
- 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 of 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 source files (using "Summer Reunion" as an example):
Summer Reunion
└── S1
├── S01E01.mp4
├── S01E02.mp4
├── S01E03.mp4
├── S01E04.mp4
├── S01E05.mp4
├── S01E06.mp4
├── S01E07.mp4
├── S01E08.mp4
└── S01E09.mp4
The key points are:
- The top-level folder should use the full name of the TV series (original name or commonly used translation).
- The second-level folder should be the season number (prefixed with "Season" or "S").
- 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 the README to use and 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 feed link. You can subscribe to the RSS feed in a BitTorrent client 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 see the latest anime updates in Jellyfin just by opening it. Auto Bangumi is a fully automated anime tracking tool developed based on this idea. Interested readers can learn more about it. If you prefer semi-automatic 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:
Subscribe to the link in your BitTorrent client (using qBittorrent as an example):
Set up download rules:
Automatically rename after downloading (15 seconds after the download is complete, use the aforementioned automatic renaming tool to automatically rename the download directory):
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 downloading, without seeding:
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
After configuring the steps mentioned above, you can achieve automatic anime tracking.
Screenshots#
Finally, here are some screenshots of Jellyfin!
Homepage:
Media Library:
Anime Introduction and Season Division:
Season Episode Preview and Summary:
Movie Introduction: