← All posts

prdb for Jellyfin: porn metadata for your existing media server

Our open source Jellyfin plugin identifies adult videos by file hash and file name against the PRDB porn database and fills in titles, sites, performers and images.

Many people already run Jellyfin as their home media server. Until now, adult videos in those libraries usually stayed what their file names said they were: no scene title, no cast, no studio, no cover. prdb for Jellyfin changes that. It is a metadata provider that identifies your local porn videos against the PRDB porn database and fills in the details Jellyfin shows in its library.

The plugin is open source under the MIT licence and available now on GitHub: prdb-net/prdb-jellyfin. The current release is version 0.1.1 and supports Jellyfin 12.x. Like every tool that talks to the prdb API, it needs a prdb.net API key from a paid API plan.

What the plugin does

Point the plugin at a Jellyfin movie library and it works out which video each file is. For every match, Jellyfin receives:

  • the scene title, description and release date
  • the site as studio, plus its network when that has a different name
  • the performers as actors, each with a performer page carrying name, biography, birth date, birthplace and portrait where prdb has them
  • a cover as primary image and further images as backdrops
  • the prdb id, and the StashDB scene id where prdb knows one, as external ids that link back to the records on prdb.net

Fields you have locked in Jellyfin’s metadata editor are never changed. Videos the plugin cannot identify simply keep their file names.

An identified video in Jellyfin 12.4: title, description, year, site and network, cover and performer all come from prdb. Captured on a test server against a prdb stand-in, so titles, names and images are neutral sample data. Select the image to enlarge it without leaving this article.

Identification by file hash and file name

The plugin does not guess from titles the way general film databases do. For each file it computes an OSHash, a fast fingerprint that reads only the first and last 64 KiB of the file, and sends it to the prdb API together with the file name and size. Up to 200 files go into one request, so even large libraries are checked quickly.

prdb answers with the matching video and with how far that match can be trusted. Three switches in the plugin settings decide which kinds of match are applied automatically:

SwitchA match is applied when …Reliability
Hash matchesprdb knows the file’s hashVery high: it is this exact file
Exact file name matchesprdb has stored this file name for this exact fileHigh
File name heuristicsthe name equals a scene release name, or carries a site, a date and a titleGood, but names can collide

All three are on by default. If you prefer to handle name-based cases yourself, switch the heuristics off. Ambiguous answers, where prdb finds several equally good videos, are never applied.

The plugin's settings page with its default values: your API key, the prdb API address, a connection test and the three switches for automatic matches. Select the image to enlarge it without leaving this article.

Automatic after every library scan

Once it is set up, there is nothing to search or pick by hand. The plugin identifies new files after each library scan, and a daily scheduled task asks again about files prdb did not recognise a week earlier. prdb keeps learning new hashes and release names, so a video that was unknown last week may be identified on the next run.

A video that already has a prdb id is never re-identified; its metadata is only refreshed. If a match is wrong, or you want to assign a video yourself, paste the prdb video address into the prdb Movie Id field under External IDs and refresh the item.

A library after an identification run: four videos carry their prdb title, year and cover. An ambiguous file and one whose match type is switched off keep their file names. Test server with neutral sample data. Select the image to enlarge it without leaving this article.

Installation in a few clicks

The plugin installs through Jellyfin’s own plugin catalogue, so updates show up in the dashboard like any other plugin:

  1. Open Dashboard → Plugins → Manage Repositories and add a repository with the URL https://raw.githubusercontent.com/prdb-net/prdb-jellyfin/main/manifest.json.
  2. Install prdb from the Available tab and restart Jellyfin.
  3. Open the plugin’s settings, enter your API key from app.prdb.net/api-keys and click Test connection.
  4. Tick prdb under the library’s metadata downloaders and image fetchers.
  5. Run Identify library once under Dashboard → Scheduled Tasks for the videos already in your library.

We recommend a separate Movies library for adult content. That way only those files are sent to prdb, mainstream providers such as TMDb never try to match a scene to a film with a similar name, and you decide per Jellyfin user who can see the library. The setup guide in the README walks through every step, including folder organisation and troubleshooting.

Read-only and privacy-friendly

The plugin only reads from prdb. It never uploads files, images, hashes or corrections. For each file in a library where prdb is enabled, it sends the file name without its folder, the file size and the OSHash, together with your API key. It contacts nothing but the prdb API and the image addresses prdb returns. Libraries where prdb is not ticked are never looked at.

Answers for files without a match are remembered locally, so repeat scans do not spend your API budget on the same files. Every run ends with a single summary line in the Jellyfin log, showing how many files were checked, applied, ambiguous or unknown.

Where it fits next to prdb-fab and prdb-viewer

prdb for Jellyfin is our third open source tool for self-hosters, alongside prdb-fab and prdb-viewer:

ToolBest for
prdb for JellyfinAdding porn metadata to a Jellyfin server you already use
prdb-viewerA dedicated, read-only browser and player for your adult video folders
prdb-fabBuilding a porn library from Usenet releases via NZB indexers and SABnzbd

prdb-fab already files its downloads in a Jellyfin-compatible Movies layout. With the plugin, Jellyfin can now also identify videos that did not come through prdb-fab, or that you added by hand. Read more about the other two tools in Self-host your porn library with prdb-fab and prdb-viewer.

Get started

Install the plugin from the GitHub repository, where you will also find the full documentation, releases and issue tracker. You need a prdb account with API access: create a free account and compare the API plans before connecting the plugin.

Found a bug or have an idea? Open an issue on GitHub. The plugin is young, and feedback from real libraries helps us improve it.

Screenshot