I’ve given up with contributing Jellyfin code for now. But I’ve found that hacking the database would provide an easy temporary solution. It is the ugliest hack possible, but it allows to search for keywords (one at a time) in the overview of movies, which is a feature I’ve badly missed until now. It also allows to search for genres, production year and studio.
The trick is to fill the “CleanName” field of every movie entry with the information we want to be searchable. It runs a bash script periodically to stop Jellyfin, update the DB then restart Jellyfin. The bash script runs a PHP script, but It must be possible to do it all with bash.
The recipe, for a Docker install:
Make sure that module Sqlite3 for PHP is enabled on the server
Create file hack-jellyfin-db.php somewhere on the server with the following content:
$db = new SQLite3('real/path/to/library.db');
$db->exec("update TypedBaseItems set CleanName = lower(Name) || ' ' || lower(Overview) where type = 'MediaBrowser.Controller.Entities.Movies.Movie' and Overview is not null");
foreach (array('Genres', 'Studios', 'ProductionYear') as $col) $db->exec("update TypedBaseItems set CleanName = CleanName || ' ' || lower($col) where type = 'MediaBrowser.Controller.Entities.Movies.Movie' and $col is not null");
Create file hack-jellyfin-db.sh (with “x” permission) somewhere on your server with the following content:
/usr/local/bin/docker container stop --time=60 your-jellyfin-container
/usr/local/bin/docker container start your-jellyfin-container
Use cron to run hack-jellyfin-db.sh periodically, for example at 5 AM every day.