How to Use Preroll Plus for Plex Pre-Roll Automation

1/21/2026 ·

Plex pre-rolls are one of those features that feel like they should be simple. Drop in a few videos, pick random or sequential, and enjoy a mini theater vibe at home. Then you try to mix “random intro” plus “scheduled seasonal bumper” plus “a consistent feature presentation tag” and Plex hits you with a wall. Commas play in order. Semi-colons pick one at random. You cannot mix them in a single string.

Preroll Plus exists because that limitation is annoying in a very specific way. It does not fight Plex. It works with Plex, then nudges Plex’s pre-roll setting at the right moments so you get the behavior you wanted in the first place. If you want variety without losing structure, Preroll Plus is the tool that finally makes it feel sane.

What Preroll Plus changes about Plex pre-rolls

Plex supports two modes for the Movie pre-roll video setting.

  • Comma separated files play in sequence. If you list four, Plex plays four, in that exact order.

  • Semi-colon separated files play randomly. Plex picks one from the list, then stops.

The problem shows up when your brain wants something like this.

random intro from set A, then random intro from set B

Plex cannot do that with a single string. Mixing delimiters does not work the way you want. Preroll Plus sidesteps that by building the string for Plex on demand, then updating Plex’s setting when it matters.

Instead of thinking in commas and semi-colons, Preroll Plus gives you two building blocks.

  • Buckets replace semi-colon lists. A bucket holds multiple videos and plays one at random.

  • Sequences replace comma lists. A sequence is an ordered list of buckets.

So you can create a sequence like: Bucket A then Bucket B then Bucket C. When Plex needs a pre-roll string, Preroll Plus picks one file from each bucket, builds a comma-delimited list, and writes that into Plex. Plex then plays them in order. You get structured randomness, without Plex needing to understand the concept.

What you need before you start

Preroll Plus is friendly, but the setup still has a few hard requirements. If one piece is missing, you will feel it fast.

  • Plex Pass for webhooks. Preroll Plus depends on Plex webhooks to know when a movie starts.

  • Admin access to your Plex server settings so you can add the webhook URL.

  • A place to store your pre-roll files. Local storage is easiest. Network shares can work, but you may need polling.

  • A Preroll Plus install via Docker or native Node.

If you still need pre-roll videos, grab a few you like and keep them organized by theme. You can browse options on the preroll browse page and then sort them into folders like “studio,” “feature presentation,” “holiday,” and “funny.” Folder structure matters because you may want directory-based buckets later.

Install Preroll Plus with Docker

Docker is the cleanest route. It keeps the app contained, updates are predictable, and you do not end up wrestling Node versions on your host. I prefer Docker for this kind of always-on helper app, because it feels like a small appliance.

Choose your folder layout

You need two host folders.

  • Config folder where Preroll Plus stores settings.

  • Preroll media folder where your pre-roll videos live.

Example layout.

/srv/prerollplus/config /srv/media/prerolls

Run with Docker CLI

This is the standard run command pattern. Keep /config and /prerolls as the container paths.

docker run -d \ --name=prerollplus \ --network host \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=America/Los_Angeles \ -e SCHEDULE_TIME=03:30 \ -v /srv/prerollplus/config:/config \ -v /srv/media/prerolls:/prerolls \ --restart unless-stopped \ chadwpalm/prerollplus:latest

A quick opinion. --network host is convenient and reduces networking confusion. It also makes your container feel less isolated. If you care about strict separation, you can avoid host networking and map ports. For most home servers, host mode is fine.

Run with Docker Compose

Compose makes this easier to maintain.

services: prerollplus: image: chadwpalm/prerollplus:latest container_name: prerollplus environment: - PUID=1000 - PGID=1000 - TZ=America/Los_Angeles - SCHEDULE_TIME=03:30 network_mode: "host" volumes: - /srv/prerollplus/config:/config - /srv/media/prerolls:/prerolls restart: unless-stopped

Understand SCHEDULE_TIME before you set it

SCHEDULE_TIME controls when Preroll Plus “rolls the day forward” for schedule evaluation. Midnight is the safest. If you set it to a late time, you can get a weird gap where the morning still uses yesterday’s schedule until the update time arrives. That might be fine. It might also drive you nuts when you are testing.

Install Preroll Plus natively

Native install works on Windows, Linux, and macOS. You install Node, clone the repo, install frontend modules, build the frontend, then run the backend.

I will be honest. Native installs are fine until you forget you did it, then months later you wonder why a Node app will not start after an OS update. Docker avoids that whole vibe. Still, native can be the right choice if you avoid containers on principle.

Native install overview

  • Clone the repo to your machine

  • Install frontend dependencies and build the UI

  • Install backend dependencies and start the server

  • Ensure the /config directory exists and has permissions

Once it runs, you access the UI at http://<server-ip>:4949 unless you changed the port.

Set up Plex webhooks for Preroll Plus

Webhooks are the heartbeat of this setup. Without them, Preroll Plus cannot reliably update Plex at the right moment. Plex sends events to Preroll Plus. Preroll Plus responds by updating the Movie pre-roll video string in Plex.

Add the webhook URL in Plex

In Plex server settings, find Webhooks and add a URL in this format.

http://<ip_address>:<port>/webhook

Notes that matter.

  • Include /webhook. If you omit it, Plex will hit the wrong endpoint.

  • Use the port you exposed. If you run host networking, it is usually 4949.

  • Make sure Plex can reach it. If Preroll Plus runs on another device, test connectivity across your LAN.

Fix webhooks that do nothing

If you set a webhook and nothing happens, check these Plex settings.

  • In Settings and Network with advanced options visible, confirm Webhooks is enabled.

  • In Settings and General, try enabling Push Notifications. It sounds unrelated. It has helped people.

Avoid webhooks to nowhere

This part is sneaky. Plex webhooks are synchronous. If Plex tries to send to a dead URL, Plex can stall future webhooks until a timeout. That can show up as strange delays in client actions. Remove webhook URLs you do not use. Do not leave broken ones sitting there “for later.”

Finish first run setup inside Preroll Plus

Open the UI at http://<server-ip>:4949. On first run, Preroll Plus creates a settings file and asks you to sign in with Plex.

This sign-in step can feel uncomfortable if you hate handing out tokens. I get it. The app needs a Plex token and server info so it can write the pre-roll string into Plex settings. That is the whole job. If you do not want an app to do that, you are back to manual strings in Plex.

Pick the Plex server connection

In Settings, refresh the server list and pick the server entry that matches your network reality. You will see options like local secure, local insecure, remote secure, remote insecure.

If your Preroll Plus instance sits on the same LAN as Plex, local is the path I choose. Secure versus insecure is your call. Secure encrypts traffic, but Preroll Plus only sends the completed string. It is not pushing media or scanning libraries.

Set preroll paths the right way

You configure two related paths.

  • Location of preroll media as Preroll Plus sees it. In Docker this is fixed as /prerolls and comes from your volume mount.

  • Plex location of preroll media as Plex sees it. This becomes the prefix in the string written into Plex.

This is the part where people trip. If Plex sees the file as:

/data/prerolls/feature-presentation.mp4

Then your Plex location should be /data/prerolls, and your bucket entries should match file names and subfolders under that root. If you get this wrong, Plex will attempt to play files that do not exist from its point of view.

Enable polling if your prerolls live on a network share

If your prerolls directory sits on SMB or another network filesystem, inotify events may not fire. Preroll Plus might not notice file changes. Turn on File Monitor Polling in the advanced settings if you see stale file lists after renames or deletes. Polling adds background activity, but it saves your sanity.

Create buckets that behave the way you want

A bucket is a list of pre-roll videos where one gets picked at random. Buckets are where you create variety. You can do it two ways.

Manual bucket mode for weighting and mixing folders

Manual mode lets you pick files one by one. You can add the same file multiple times to increase its chance of being chosen. That is weighting. It is blunt, but it works.

Manual mode is perfect when you want something like this.

  • Feature presentation tag should appear a lot.

  • Quieter studio bumpers should appear less.

  • Files come from different folders.

I like weighting more than I expected. It feels like cheating at first. Then you realize you are controlling tone. You are curating the vibe, not leaving it to a coin flip.

Directory bucket mode for set-and-forget folders

Directory mode points the bucket at a folder, and Preroll Plus uses whatever files exist there. Add a new file to the folder, it becomes eligible. Remove a file, it disappears from the pool. No extra clicks.

Directory mode is perfect for seasonal folders like “Halloween” or “Winter.” You can drop in new clips and never touch the UI again.

Preview your prerolls before you commit

Preroll Plus lets you preview one or more files. Use that. A surprising number of pre-roll clips have inconsistent audio levels. One loud clip can ruin the whole “theater” feel. If you want to make your own, the guide on creating your own preroll videos is a solid starting point for consistent results.

Build sequences that feel intentional

A sequence is an ordered list of buckets. Preroll Plus picks one clip from each bucket, then writes a comma-delimited list into Plex so Plex plays them in order.

Think in slots not files

When you build a sequence, think of each bucket as a slot in your cinema chain. For example:

  • Slot 1: A short “turn down your phone” PSA bucket

  • Slot 2: A studio bumper bucket

  • Slot 3: A feature presentation bucket

This approach keeps your pre-rolls from feeling like random noise. You get variety, but the structure stays consistent. That consistency is what makes it feel like a ritual, not a gimmick.

Repeat buckets when you want more chances for a theme

You can add the same bucket multiple times in one sequence. Preroll Plus will not play the same preroll twice in a row from that bucket. This is useful when you want two “funny bumpers” with different pacing, or when you want to increase the odds that a certain style appears without weighting the bucket itself.

Understand priority before you add schedules

Priority decides what sequence wins when more than one sequence applies on a given day. Lower numbers mean higher priority. Priority 1 beats priority 2.

Preroll Plus does not allow two schedules to share the same priority. That is a smart constraint. If you want deterministic behavior, ties are a trap.

Schedule sequences without making it fragile

Scheduling is where Preroll Plus goes from “cute trick” to “this is how Plex should have worked.” You can set sequences as:

  • No schedule as your default baseline

  • Date range for seasonal windows

  • Holiday based on a holiday calendar API

Use an unscheduled default sequence as your fallback

Create one no-schedule sequence with a priority that loses to your seasonal and holiday sequences. This is your everyday set. When no schedule matches, this one runs.

If you skip the fallback and no schedule matches, Preroll Plus can leave the pre-roll string blank. That might be what you want, but most people want something to play.

Layer schedules with priority on purpose

You can overlap schedules. Priority decides the winner. That means you can create a broad seasonal sequence and then create a single-day holiday sequence that overrides it.

Example priority approach.

Sequence Schedule type Priority Intent
Valentine sequence Holiday 1 Override everything on that day
Winter sequence Date range 2 Run most days in the season
Everyday sequence No schedule 50 Fallback when nothing else matches

Holiday scheduling and API keys

Holiday mode can pull dates from an API. You can use a free legacy source for public holidays, or a broader holiday database through Calendarific if you add an API key in Settings. Preroll Plus caches calendars locally to reduce API calls.

If you love the idea of holiday pre-rolls but hate the idea of another API key, I get it. My compromise is to use holiday scheduling only for a handful of days where it adds joy, and keep the rest as date ranges or unscheduled defaults.

Understand how the sequence string updates in Plex

Preroll Plus updates the Plex Movie pre-roll video string in a few situations.

  • When a movie starts playing after pre-rolls finish. This is triggered by webhooks.

  • When you save changes to a bucket or sequence.

  • When you save settings, even if you did not change anything.

  • On a daily schedule at midnight, or at your configured schedule time.

That first one is the magic. Preroll Plus waits until the actual movie file begins, then it updates Plex so the next playback uses a fresh string. This avoids the classic problem where random picks get “stuck” until you manually change something.

If you want to sanity-check that Preroll Plus can write to Plex, hit Save on the settings page and then look at Plex’s Movie pre-roll video field. You should see the string change.

A practical setup template you can copy

Here is a pattern that tends to feel right for most home servers.

Bucket ideas

  • PSA bucket with short “silence your phone” style clips

  • Studio bucket with a mix of studio-like bumpers

  • Feature presentation bucket with a consistent “now playing” vibe

  • Seasonal bucket that points to a folder you swap out when you feel like it

Sequence ideas

  • Everyday sequence: PSA then Studio then Feature presentation

  • Holiday override sequence: Holiday bumper then Feature presentation

  • Kids night sequence: Short fun bumper then Studio then Feature presentation

If you want a clean starting point for Plex cinema style, the setup tips in the Plex prerolls guide pair well with Preroll Plus. Plex still plays the final string, so Plex-side settings still matter.

Troubleshooting problems that waste your time

These are the issues that show up again and again.

Prerolls do not play at all

  • Confirm Plex Extras settings allow pre-rolls.

  • Check that the generated file paths in Plex match the Plex server’s filesystem view.

  • Verify the files are supported formats for Plex playback in your clients.

Preroll Plus UI shows files but Plex fails to find them

This almost always means your “Plex location of preroll media” path is wrong. Preroll Plus can see /prerolls inside the container, but Plex needs its own absolute path. Those two paths are not the same thing.

Changes in the prerolls folder do not show up

  • If you use Directory buckets and a network share, enable File Monitor Polling.

  • If you use Manual buckets, remember you must add new files manually.

Webhooks seem delayed or unreliable

  • Remove broken webhook URLs from Plex so Plex does not stall on timeouts.

  • Confirm Preroll Plus is reachable from the Plex server over the network.

  • Enable Plex webhooks and try enabling push notifications.

Make your prerolls feel intentional instead of noisy

Once you can randomize inside structure, you will start caring about pacing. That is when pre-rolls go from “fun” to “why does this feel like a real cinema.”

  • Keep total pre-roll time reasonable. Two short clips can feel better than four long ones.

  • Match audio loudness across clips. One loud file will make you hate your own setup.

  • Use schedules sparingly. A holiday bumper is charming. A constantly changing set can feel chaotic.

If you want to build a library that stays fun, I recommend grabbing a small set you love and living with it for a while. If you keep chasing novelty, you will end up with a folder of clips you never want to hear again.

Where Preroll Plus fits if you run multiple media servers

Preroll Plus is Plex-focused because it relies on Plex webhooks and writes into Plex settings. If you also run Emby or Jellyfin, you might end up running different tools and workflows for those servers. That split can feel messy, but it is also normal. Each server has its own idea of “cinema mode.”

If you are comparing platforms or you are tempted to switch, skim the Plex vs Emby vs Jellyfin comparison guide. It can help you decide whether you want one server for everything or different servers for different use cases.

Preroll Plus does one job. It keeps Plex pre-rolls feeling fresh without turning your Plex settings into a tangled string you fear touching. Once you set up buckets and sequences, you stop thinking about delimiters. You just press play.

Read Next

Featured Prerolls

Lucasfilm

Lucasfilm

jellyfin 10s medium
Neon Reflection 2

Neon Reflection 2

emby 7s short
Cyberpunk

Cyberpunk

emby 8s short