Photo by GR Stocks on Unsplash
Jellyfin Cinema Mode is a plugin built with .NET that allows users to enable Jellyfin's Cinema Mode functionality with local trailers and pre-rolls. The system admin can configure a set number of trailers to play before a movie. In addition, pre-roll videos can be played before and after the block of trailers. All of this can be disabled at the user level by turning off 'Cinema Mode' in the users Playback settings. Pro-tip: Skip any pre-roll or trailer by pressing the next button in the player. For more details see the User Guide
To install this plugin, you will first need to add the repository in Jellyfin. Under 'Repositories' in the 'Plugin' section of the dashboard, click the plus sign to add a new repository. You can give this repository any name you like but be sure to paste the following URL in the 'Repository URL' field exactly as it appears:
https://raw.githubusercontent.com/CherryFloors/jellyfin-plugin-cinemamode/main/manifest.json
Now that you have added the repository, click on the Catalog section at the top of the screen. Under General, you should see the Cinema Mode plugin. Click on the thumbnail and then click the 'install' button. Restart the server and you're ready to configure.
More information about installing plugins can be found in the official docs here. A quick web search will also turn up plenty of great tutorial videos for setting up Jellyfin, including how to install 3rd party plugins.
The plugin is designed to enable Jellyfin's Cinema Mode with local content. Trailers stored alongside movies (as described here) and Pre-Roll videos stored in their own library can be configured to play prior to movies in the order illustrated in the diagram above. Each intro type can be configured/turned off using the plugins' configuration page. All can be disabled at the user level by turning off Cinema Mode in the users Playback settings. Pro-tip: Skip any pre-roll or trailer by pressing the next button in the player.
The plugin can be configured to play Pre-Roll content prior to movies. Pre-Rolls should be stored in their own library. Jellyfin does not currently have a "Pre-Rolls" content type so the "Movies" content type must be used. The plugin only supports playback of Pre-Rolls organized in libraries of this content type. The "Movies" content type allows for adding metadata (Tags, Genre, Studios) to apply Selection Rules based on the feature they will play before.
The plugin supports two types of Pre-Rolls, 'Trailer Pre-Roll' and 'Feature Pre-Roll'. The 'Trailer Pre-Roll' type is meant to play prior to a block of trailers (think "Now playing on Jellyfin"). The 'Feature Pre-Roll' type is meant to be the last intro played right before the movie (think "Now your feature presentation"). It is recommended that two different libraries are used for storage, one for 'Trailer Pre-Rolls' and one for 'Feature Pre-Rolls'.
Select the library that contains the relevant Pre-Roll type. Setting this to "-" will disable the section.
Selection Rules are used to filter Pre-Rolls based on metadata. For selection rules to work, Pre-Rolls must have metadata. A description of the behavior of each Selection Rule can be found below. A '(t)' denotes the Selection Rule is based on Tags. If there are no Selection Rules or none of the Selection Rules are successful, a random Pre-Roll will be played.
When enabled, this setting will filter out any Pre-Rolls that match Seasonal Tags not currently in season. Enabled by default.
Example: If you have a Seasonal Tag 'christmas' defined from 12/1 - 12/25, this setting will prevent that Pre-Roll from being played any other time of the year.
Pre-Roll's use the 'Movies' content type allowing them to be assigned ratings. This setting can be used if you have Pre-Roll's that may not be suitable for all audiences and will ensure the rating of the Pre-Roll does not exceed that of the feature. Rating limits for Pre-Rolls are slightly different from trailers as Pre-Roll's that are not assigned ratings are considered suitable for all audiences. Enabled by default.
The plugin will automatically find any trailers you have stored alongside the movies in your Jellyfin library. The plugin does not support playback of remote trailers. For information on how to add local trailers to Jellyfin, follow this guide.
This setting will set the number of trailers to play. Setting this to '0' will disable the section. Set to '2' by default.
Selection Rules are used to filter trailers based on metadata. A description of the behavior of each Selection Rule can be found below. If there are no Selection Rules or none of the Selection Rules are successful, random Trailers will be played until the desired number of trailers has been reached.
When enabled, consume mode will play only one trailer from a selection rule before moving on to the next. When consume mode is disabled, the plugin will move on to the next rule only if all trailers are played and the limit has not been reached. Disabled by default.
This ensures the rating of the trailer content does not exceed that of the feature (i.e. trailers for an "R" rated movie will not be shown before a "PG-13" movie). This setting will cause any unrated content to have no trailers played prior and not be shown as a trailer. In this case "unrated" refers to content where the "Parental Rating" field is blank. It does not refer to content with an "NR" or "Not Rated" rating. Jellyfin considers content with a rating of "NR" as exceeding an "R" rating. Enabled by default.
Seasonal Tag Definitions can be used to link a Pre-Roll with a specific time of year using Tags. The plugin will only use the Month and Day from the 'Start Date' and 'End Date' from the selection. The year will be ignored so definitions do not need to be updated.
If the plugin is not providing intros check the following:
Clone or download this repository
Ensure you have .NET Core SDK setup and installed
Build plugin with following command
dotnet publish --configuration Release --output bin
plugins
folder