ErsatzTV - Custom channels using your own media

For anyone looking to stream their own media through custom channels in Channels DVR, I have spent the past few months developing a solution: ErsatzTV. Some of the features:

  • Collection-based scheduling
  • No need for Plex as a media source (though it is supported). Folders with optional NFO files work fine.
  • Multiple hardware-accelerated normalization options (VAAPI, NVENC, QSV)
  • Channel-specific language selection and transcoding profiles

The project lives on GitHub.
A quick start guide can be found at with a Channels DVR configuration section.
Discord is available for troubleshooting or other questions.

The project supports multiple IPTV clients, but Channels DVR certainly gives the best experience!


Looks impressive! I may give this a try to create a 24x7 “Yo Gabba Gabba”
Channel for my son, who watches it on repeat!

1 Like

Noob question... Can this be installed on qnap?

Edit. Never mind. Found it doing a search in Container station.

what are the steps to make this run properly on a mini m1 with the osx package? i cant seem to allow libcoreclr.dylib to run since the developer cant be verified. osx just lets me move it to trash even though i allowed ersatztv to run. thanks.

The software runs on .NET 5 which unfortunately only supports x64 macOS. See I will keep my eye out for updates.

1 Like

Got it, I missed that page. Thanks.

Did a windows install and now it’s scanning the path of shows. Once it’s done, will metadata download? Or do I have to connect to plex in order for metadata to show up and provide info for the xml?


The short answer is no, without Plex or pre-generated NFO metadata, no metadata will download.

There are three metadata options with ErsatzTV: Plex, NFO or fallback which essentially parses file names but doesn't provide artwork, plots, tags, etc. I'm working on docs now to describe the optimal folder layout to work with fallback metadata.

1 Like

Docs have been updated with the recommended folder layout and some details about local metadata

thanks, but can you clarify more on how to create a channel. its not easy and it looks like i have to go to multiple windows in order to make a channel.

i just want to make a channels with one show in chronological order by season adn adding other episodes in between like specials that correspond with air date but im seeing that its complicated.

think about how dizquetv does it, create a channel, browse the media, pick a whole show, or a whole season or sprinkle other things in between, i cant seem to figure it out on ersatz.

any tips?


edit: you should allow to add a url for the logo, not just upload an image.


This is great! Immediately found a use for this by creating a channel for my Looney Tunes collection.

If anyone's like me and has a relatively underpowered Synology NAS (mine's the DS916+), I found that creating a standard-def FFMpeg profile and using "mpeg2video" as the encoder helped mitigate high CPU use and buffering.

Ideas/wishlist for the developer:

  • Tool tips/hints for each option. The documentation is helpful but incomplete. For instance, I entered a "Custom Title" for my schedule which superseded the actual movie titles/thumbnails/summaries in the guide data. Only through trial and error did I figure out that I'd get the result I wanted by leaving it blank. So a little tip saying that it's optional and what its function is would help.

  • Option for custom ffmpeg flags

  • Express mode where you can select some videos and create a Channel+Schedule+Playout with one click

  • Tie-in with existing Plex collections...definitely took a lot of individual clicking to recreate my Looney Tunes collection while sifting through my entire movie collection. Alternatively, you could add some search functions and filters that allow you to narrow your view to what you want.

  1. so i added a channel with a number and name

  2. added what i wanted under collections and named it the same as above (this step is not on your website) not sure if thats the next step. added the seasons and episodes in the order i wanted but collections shows in alphabetical order. Season 10 is before Season 1, season 2 is between season 19 and season 20. dont know if the display order will be the broadcast order but thats wrong.

  3. added a schedule with the same name and playback order is chronological.

  4. i did the playout but nothing happens. looking at log i get this:

4/10/2021 4:43:33 PM Debug Built playout 1
4/10/2021 4:43:33 PM Error Unable to rebuild playout; collection { "CollectionType": 0, "CollectionId": 2, "MediaItemId": null } contains items with zero duration!
4/10/2021 4:43:33 PM Debug Building playout 1 for channel 100 - Top Gear

any ideas? thanks.

The search functionality is next on my list for documentation, though note that it (like other functions) depends on the quality of the metadata in your library. Some available search fields are title, genre, tag, plot, library_name, release_date, studio and language. Also clicking on any of the studios/tags/genres on a movie or show page will bring up other items with the same tags.

The names of channels, collections and schedules have no impact, if you want a collection as part of a schedule you need to add it to the schedule. See here - if you already did that, the error message indicates that you have a media item with a stream that has no duration, which can't be scheduled. FFmpeg can be used to fix the file manually, otherwise Plex does additional processing to determine the duration, so that problem would be less likely to happen with Plex libraries.

Oh, that's huge...didn't realize clicking into a movie revealed some clickable metadata. Looking forward to the documentation.

I’m only using plex libraries. Thanks.

is this basically dizquetv but with the ability to bypass plex?

I would argue that is under-selling it, and the bullets in the OP are some of the differentiators. Nonetheless, if it helps to put the project in context then yes, dizquetv is the closest alternative.

1 Like

Added search docs with some example searches


Emby and Jellyfin media sources are now supported.


Very cool project but could you expand on what is the use case for this?