2025-12-18, 02:00 PM
I’m working on a plugin that fetches and stores TMDb metadata in multiple languages per item (it manages its own SQLite database). Each user can define rules to decide which language to display per item (based on production country, spoken languages, audio language etc.).
Is there a way for a plugin to override the item fields Jellyfin returns to clients (name, overview) on the fly?
Right now my workaround is to expose a custom HTTP endpoint (e.g. /plugin_name/item/{itemId}) that returns the "custom" title/overview for the current user. Then use JavaScript Injector to call it and replace text in the web UI. This works, but:
- only in the web UI (and the official app, which is just a wrapper for the web UI)
- there's a delay before the original fields get replaced by the custom ones
- sorting/searching for the titles is hard because these happen server-side
I'm looking for any plugin hook/filter/middleware to modify BaseItemDto fields as they’re generated, or a DTO post-processor, or anything that could help with any of those above problems.
Is there a way for a plugin to override the item fields Jellyfin returns to clients (name, overview) on the fly?
Right now my workaround is to expose a custom HTTP endpoint (e.g. /plugin_name/item/{itemId}) that returns the "custom" title/overview for the current user. Then use JavaScript Injector to call it and replace text in the web UI. This works, but:
- only in the web UI (and the official app, which is just a wrapper for the web UI)
- there's a delay before the original fields get replaced by the custom ones
- sorting/searching for the titles is hard because these happen server-side
I'm looking for any plugin hook/filter/middleware to modify BaseItemDto fields as they’re generated, or a DTO post-processor, or anything that could help with any of those above problems.

