A Jellyfin plugin that intelligently nags users when they're transcoding due to unsupported formats or codecs, while allowing bitrate-based transcoding to pass through without harassment.
Playback nag configuration and trigger reason selection
The browser install warning, its install link, and auto-close timeout
What a Jellyfin Web viewer sees when their browser forces a transcode
Login nag threshold, time window, and message
The transcode limit, user exclusions, and the live session monitor
How many transcodes each user can run at once, with per-user overrides
GPU resource guard settings
The paused transcode reaper, its warning, and its own exclusion list
- Sends a playback nag when Jellyfin reports selected
TranscodeReasons. - Ignores bitrate-only transcodes, so users lowering quality for bandwidth do not get warned.
- Can turn the playback nag, GPU refusals and both transcode limits' blocks into a full warning with an install link for Jellyfin Web browser sessions (needs the JavaScript Injector plugin); every other client keeps the normal message.
- Can exclude Live TV channel streams from playback nags and login nag history.
- Can send a login nag when a user keeps hitting bad transcodes over the last week or month.
- Can refuse a user's next transcode outright once that same count passes a second, higher limit, so heavy transcoders are warned before they are stopped.
- Can cap how many videos each user transcodes at the same time, with a global maximum and per-user maximums that override it.
- Lets you exclude users from all nags.
- Includes a live session monitor in the plugin settings page.
- Can broadcast an optional Message of the Day to users at login, with its own user exclusions and client filters.
- Can refuse an NVIDIA hardware transcode before FFmpeg starts when that job's conservative VRAM budget will not fit.
- Can stop a transcode that has been left paused past a configurable timeout, so its FFmpeg process stops holding VRAM, an encoder session, and its output files for a viewer who is not coming back.
See here for all FEATURES.md.
Note
Migrating from Transcode Nag: run both until the config matches, then uninstall the old one.
- Go to Dashboard → Plugins → Repositories
- Add
https://raw.githubusercontent.com/voc0der/jellyfin-plugin-transcode-guard/main/manifest.json - Install Transcode Guard from Catalog
- Restart Jellyfin
Note
Full repository of this author's plugins: voc0der/jellyfin-plugins.
- Download the latest ZIP from the Releases page
- Extract it into your Jellyfin plugins directory:
- Linux:
/var/lib/jellyfin/plugins/ - Windows:
%AppData%\Jellyfin\Server\plugins\ - Docker:
/config/plugins/
- Linux:
- Restart Jellyfin
dotnet build --configuration ReleaseCopy bin/Release/net10.0/Jellyfin.Plugin.TranscodeGuard.dll into a versioned plugin folder, then restart Jellyfin.
Open Dashboard → Plugins → Transcode Guard.







