Quick answer: Jellyfin has no pre-roll setting of its own, so you add one with the official Local Intros plugin. Install it from the plugin catalog, restart, point its Local Source at a folder of videos, click Load Videos, and save. Then each viewer turns on Cinema mode under Settings > Playback in the app they watch on.
Jellyfin handles pre-rolls through plugins. The good news is that the plugin most people need is maintained by the Jellyfin team and sits in the default plugin repository, so you don’t have to add anything to your server first.
What you need
- Jellyfin Server 10.11 or 12.x with admin access. Local Intros 4.0 targets 10.11, and 5.0 (September 2026) targets 12.0.
- A folder of pre-roll videos the server can read. Our Jellyfin collection is a good place to start.
- A Jellyfin client with Cinema mode. The web app, the desktop app, and most official apps have it.
A note on names: you’ll find old guides pointing to a plugin called Intros by dkanada, which pulled videos from prerolls.video. That repository was archived in November 2025 and its last build targets Jellyfin 10.8. Don’t use it. Local Intros is the official fork that replaced it.
Step-by-step setup
1. Put your pre-roll files on the server
Create a folder for your intros, for example /media/prerolls on Linux or D:\Prerolls on Windows, and copy your videos into it. Keep it separate from your movie folders so the clips don’t show up as movies.
Two things to check:
- The account Jellyfin runs as needs read access to the folder. On Linux that’s usually the
jellyfinuser. - If Jellyfin runs in Docker, mount the folder into the container and use the container path (for example
/prerolls) in the plugin.
2. Install Local Intros
- Open the Jellyfin web app and go to Dashboard (Administration).
- Open Plugins and browse the catalog of available plugins.
- Find Local Intros and install the latest version offered for your server.
- Restart Jellyfin when it asks you to. Plugins don’t load until you do.
Local Intros lives in the default Jellyfin repository, so there’s no repository URL to add.
3. Point the plugin at your folder
- In Dashboard > Plugins, open Local Intros from your installed plugins to reach its settings page.
- In Local Source (“Location of intro videos”), enter the path to your folder.
- Click Load Videos. The plugin scans the folder and lists the videos it found.
- Click Save.
If you only want intros before films, tick Only show intros for movies. Otherwise they play before TV episodes too.
4. Turn on Cinema mode in each client
Intros only play when the client asks for them. In the Jellyfin app, open your user menu, go to Settings > Playback, and tick Cinema mode. Jellyfin describes it as playing “trailers and custom intros before the main feature.”
The setting belongs to the app on that device, so turn it on on your TV, your browser, and anywhere else you watch.
Random rotation and rules
Local Intros plays one intro per video, picked at random from the intros that apply. Out of the box it uses a single default video. To rotate between several, set Rule Type to Default and use Add All, or add videos one at a time. Save when you’re done.
The other rule types are where the plugin gets fun:
- Tag: play a specific intro before anything carrying a tag you set in Jellyfin’s metadata.
- Genre: a horror intro before horror films, a Pixar-style one before animation.
- Studio: a Marvel Studios opening before Marvel movies.
- Current Date: a Christmas intro between two dates.
Each rule has two numbers. Prevalence sets how likely an intro is to win when its rule applies (16 is eight times as likely as 2). Precedence sets which rules count at all: when several rules match, only the ones with the highest precedence are used.
The alternative: Cinema Mode plugin
If you want trailers and pre-rolls together, like a real cinema, there’s a community plugin called Cinema Mode. It isn’t in the default catalog. Add it through Manage Repositories on the plugins page with this URL:
https://raw.githubusercontent.com/CherryFloors/jellyfin-plugin-cinemamode/main/manifest.json
It reads pre-rolls from a Jellyfin library, can play a block of local trailers first, and supports seasonal tags. Its latest release (0.6.0, October 2025) targets 10.11. We couldn’t confirm a 12.x build yet, so check the repo before you upgrade.
For scheduling across a whole year, NeXroll is a third-party manager that supports Jellyfin as well as Plex and Emby.
Recommended file format
Use MP4 with H.264 video and AAC audio, at 1080p. Nearly every Jellyfin client can direct play that, so the intro starts right away instead of waiting on a transcode. Short is better: the clips in our library mostly run 4 to 40 seconds.
Troubleshooting
Nothing plays before the movie
Check Cinema mode first. It’s off by default and it’s set per device. Then go back to the plugin page and make sure Load Videos actually listed your files and that you clicked Save. If the list is empty, the path is wrong or Jellyfin can’t read the folder.
The intro plays, then the screen goes black
This one has been reported since Jellyfin 10.9, including on 10.11, mostly in web-based clients (the browser, the desktop app, LG webOS). The intro ends and the movie doesn’t start until you press Next. A Jellyfin core team member said on the forum that it’s a client-side issue, not the plugin. Pressing Next works as a stopgap. Keeping your server and apps updated is the best bet for a real fix.
It works on one device but not another
The iOS app skips intros when it uses the native video player, and some Android TV setups don’t play them at all. Try another client to confirm the server side is working.
I added new videos and they don’t show up
Go back to Local Intros and click Load Videos again, then add the new ones to your rules.
Can I use a network share?
Yes, as long as it’s mounted on the server and readable by the Jellyfin account. A local folder is more reliable.
Find a pre-roll
Grab a few from our Jellyfin pre-rolls, or browse the full library. They’re free MP4 downloads.
Sources we checked
- github.com/jellyfin/jellyfin-plugin-intros
- repo.jellyfin.org/files/plugin/manifest.json
- github.com/dkanada/jellyfin-plugin-intros
- github.com/CherryFloors/jellyfin-plugin-cinemamode
- github.com/jellyfin/jellyfin-web/blob/master/src/strings/en-us.json
- forum.jellyfin.org/t-offical-local-intros-plugin-failing-to-start-the-movie-after-pre-roll-video-ends
- forum.jellyfin.org/t-does-anyone-have-the-intros-plugin-working
- github.com/JFLXCLOUD/NeXroll
