Skip to content

Repository files navigation

Trickplay Filter

(AI Generated Readme)

Trickplay Filter

A Jellyfin server plugin that stops trickplay (seek-bar thumbnail) generation for anything that isn't the actual movie or episode.

What it does

By default, Jellyfin generates trickplay thumbnail sprites for every video file it scans — including trailers, featurettes, behind-the-scenes clips, deleted scenes, interviews, samples, shorts, and other extras. This wastes CPU time and disk space on content nobody scrubs through.

This plugin skips trickplay generation for anything that isn't the main feature:

  • Still generated normally: the main video file of a Movie or Episode.
  • Skipped: trailers, featurettes, behind-the-scenes, deleted scenes, interviews, scenes, samples, shorts, clips, and theme songs/videos.

Each extra type can be individually re-enabled from the plugin's configuration page, and filtering can be turned off entirely for movies or episodes if you want default behavior back.

How it works

Jellyfin classifies extras (trailers, featurettes, etc.) automatically during library scanning, based on folder name, filename, or filename suffix conventions, and stores the result on each item's ExtraType property. This plugin doesn't do any of its own file or folder parsing — it just reads that existing classification.

At startup, the plugin registers a wrapper around Jellyfin's real ITrickplayManager service, replacing the server's original registration. The wrapper intercepts only RefreshTrickplayDataAsync — the entry point that generates trickplay tiles:

  • If the item's ExtraType (and the plugin's configuration) says it's an excluded extra, the call is skipped and the real manager is never invoked, so no tiles are generated for it.
  • If the item is the main feature/episode, or filtering for that type is turned off, the call passes straight through to the real manager, unchanged.

Every other method on ITrickplayManager (fetching tiles, deleting data, resolving paths, etc.) is a plain pass-through — this plugin only ever changes whether generation happens, nothing else about how trickplay works.

An optional path-substring check exists as a defense-in-depth fallback, in case an item somehow reaches the plugin without ExtraType set. It's off by default from being the primary check and shouldn't normally trigger.

A separate, opt-in scheduled task can clean up trickplay data that was already generated for extras before this plugin was installed.

Configuration

Available from the plugin's page in the Jellyfin dashboard:

  • Scope: turn filtering on/off separately for movies and episodes.
  • Exclude by extra type: individually toggle trailers, behind-the-scenes, deleted scenes, interviews, scenes, samples, shorts, featurettes, clips, and unknown/other extras. (Theme songs and theme videos are always excluded and aren't shown here.)
  • Advanced: enable/disable the path-substring fallback check.

Compatibility

Verified against Jellyfin 10.11.x. The plugin checks the running server's version at startup; if it doesn't recognize the version, filtering is disabled and a warning is logged, so Jellyfin's default trickplay behavior is used instead of the plugin silently doing something unverified.

Installation

  1. Build the plugin or download a release build.
  2. Copy the plugin folder into your Jellyfin plugins directory.
  3. Restart the Jellyfin server.
  4. Configure it from Dashboard → Plugins → Trickplay Filter.

About

Skips Jellyfin trickplay generation for trailers, featurettes, and other extras -- only the actual movie or episode gets trickplay.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages