For my latest monthly sponsored Plex video, I took on a fun project that turned my Plex library into a fully programmed, always-on TV channel. Using an open-source tool called ErsatzTV, I set out to recreate the experience of traditional broadcast television—with scheduled shows, filler ads, and a sense of timing you just don’t get from on-demand shuffling.
I step through how to get it up and running in my latest video.
The idea behind ErsatzTV is pretty straightforward: it links into your Plex server and plays back episodes from your media library on a set schedule. It even keeps track of what episode aired last, so it will step through a season of a show each day or week. It can also shuffle episodes each time. If you tune in halfway through, that’s where you start watching—just like the old days.
To make it work with Plex, you do need a Plex Pass since it ties into the live TV and DVR features.
I installed ErsatzTV on a Windows machine for demonstration purposes, but it’s cross-platform, and you can run it on Linux, macOS, or via Docker. After downloading and extracting the app, I launched the server and configured it through the web interface. The first tweak was enabling hardware acceleration for better performance, which in my case meant selecting the VAAPI option for Intel graphics.
From there, I connected ErsatzTV to my Plex server and synced my TV show library. My mix included old episodes of David Letterman and Johnny Carson, Star Trek: The Next Generation, some 80s cartoons, and a healthy dose of Bluey for the kids. I also added a folder of vintage commercials and PSAs as filler content to help round out the schedule to clean half-hour or hour blocks.
ErsatzTV doesn’t let you slot individual files—everything has to be bundled into collections. So I grouped the ads into a “filler” collection and set up presets for midroll and fallback padding. This way, the system could drop in the right number of ads to stretch shorter content to the next block precisely.
Then came the fun part: building out the channel. I created a schedule starting at 6 a.m. with “Star Blazers and “He-man”, Bluey from 9 to 1, some afternoon Star Trek, and nighttime talk shows beginning at 10 p.m. with Johnny Carson. I used a mix of fixed and dynamic scheduling depending on the content length. ErsatzTV handled the logic to round everything off nicely with filler content when needed.
Once the channel was ready, I registered ErsatzTV as a tuner device inside Plex using its HDHomeRun emulation feature. That let me pull the guide data from ErsatzTV’s built-in XMLTV feed, and just like that, my custom channel showed up alongside my antenna broadcasts. Everything worked as expected: metadata, descriptions, proper timing—it all lined up. If I tuned in late, I caught shows mid-episode, and the transition between shows and filler felt natural.
There’s definitely something satisfying about turning Plex into a virtual broadcast network. It’s more work than hitting “shuffle,” but the end result feels more alive. There’s structure, nostalgia, and the bonus of always having something ready to play, exactly when and where I want it. Now that the framework is in place, I can add more shows, create additional channels, or even bring back “Tuesday Night Movies.” The only real limit is how much media I can cram onto my server.
See more of my Plex videos here.
Disclosure: This was a sponsored video from Plex, however they did not review or approve this before it was uploaded.
