|3 min read

I Made Adult Swim Bumpers for My Plex Server

TL;DR

I grew up on Toonami and Adult Swim, and the bumpers stuck with me more than most of the shows. So I built a small CLI that turns a few lines of YAML into Adult Swim-style bumpers, loaded 121 of them into NeXroll, and now every movie on my Plex server Joeflix opens with one.

I grew up on Toonami after school, and later on staying up way too late for Adult Swim, which was the first TV I ever watched that seemed like weirdos made it for other weirdos. I loved it. The bumpers stuck with me longer than most of the shows did.

You know the ones. Black screen, plain white text, one card at a time. Sometimes a joke, sometimes weirdly sincere, and then [adult swim] and you’re back in the show.

Now I’m an adult (allegedly) and I run a Plex server called Joeflix for my friends and family. So I built the thing younger me would have lost it over: a little CLI that makes Adult Swim-style bumpers. Every movie on Joeflix now opens with a personal message from me to my friends. The jellyfish at the top of this post is one of them.

Why does a Plex server need bumpers?

Plex is great at playing movies and has zero personality. You hit play and it could be anyone’s server.

But Plex will play a pre-roll video before every movie, and that’s your one chance for the server to say something. I wanted it to sound like me.

Trade Offer meme: a man in a suit steeples his fingers under "TRADE OFFER." I receive: "10 seconds before every movie." You receive: "my opinions on St. Paul."

Most of them are about Minnesota or my hard drives

I have 121 of them in rotation right now. Here are a couple that I made.

My friends and family know exactly how much I spend on hard drives. Now the server makes fun of me for it too.

And some of them are just dumb. I’m fine with that. Adult Swim was dumb sometimes too.

Oprah You Get A meme: Oprah shouting with her arms spread, captioned "You get a bumper!" and "Every movie gets a bumper!"

It’s just YAML and ffmpeg

The tool is adult-swim-bumper, a small Python CLI on top of ffmpeg. Each bumper is a few lines of YAML with the cards, a background clip, and a music track:

- name: hotdish
  cards:
    - 'a hotdish'
    - 'is just a casserole'
    - 'made with more intention.'
  video: videos/hotdish.mp4
  music: music/ambient-01.mp3

Run bumper render and you get a ten-second MP4 with the cards fading through one at a time, a little music underneath, and your server name in brackets at the end.

Evil Kermit meme: Kermit says "It's a movie server. It doesn't need a personality." and hooded Kermit replies "Write 121 jokes in YAML."

I didn’t build the Plex side, and you shouldn’t either. NeXroll is a self-hosted pre-roll manager that already does it well. I dumped the rendered bumpers into an “Adult Swim” category, and NeXroll shuffles through them before every movie, next to the seasonal ones it plays around Christmas and Halloween.

One catch: Plex only plays pre-rolls before movies, so TV episodes still start cold. Half of Joeflix has no personality yet.

Nobody compliments my transcoding settings

I get compliments on the bumpers all the time from people who join the server. Nobody has ever said a word about my transcoding settings. But a jellyfish telling them there’s no algorithm? That gets brought up.

If you run a server for your own people, steal the code. Set your server name and write some bad jokes. Building the rest of the setup? Start with my homelab starter guide. Two years later is what it turned into.

sit back. breathe. it’s just a movie.

[joeflix]

Joe Karlsson

Joe Karlsson

Developer Marketing Engineer at CData, leading developer growth for the managed MCP platform that connects AI agents to live enterprise data. Writing about databases, self-hosting, and the things I build. Runs a 60+ container Proxmox homelab with AI-powered automations.

cat newsletter.md

Works on My Machine is my newsletter: thoughts and reactions on tech writing, AI, homelab builds and open source, plus whatever I'm working on. It goes out when I have something to say.

Free, no spam, unsubscribe anytime. Read past issues.

Related Posts