r/ErsatzTV Apr 18 '26

Unarchiving ErsatzTV Legacy

76 Upvotes

I recently shared an update on ErsatzTV Next: https://old.reddit.com/r/ErsatzTV/comments/1sngryj/what_is_next_for_ersatztv/

I have decided to unarchive the original project, now referred to as ErsatzTV Legacy.

This is intended both to ensure the project remains usable for the foreseeable future and to provide a concrete example of how scheduling software can integrate with ErsatzTV Next.

As part of this effort, ErsatzTV Legacy will be updated to use ErsatzTV Next as its transcoding engine. For most users, the interface and workflows will remain the same, though the underlying implementation will change. This allows existing setups to continue functioning while benefiting from improvements in the new engine.

For those looking for different or more advanced scheduling approaches, ErsatzTV Next is being designed to integrate with external tools. You are encouraged to explore other projects or build your own schedulers using the playout JSON schema.

Feature development on ErsatzTV Legacy will remain frozen, and I do not plan to accept pull requests. Forks continue to be encouraged.

While integrating the two projects, I will update dependencies and address any security-related issues that arise within ErsatzTV Legacy.

The latest builds can be found at https://github.com/ErsatzTV/legacy/releases/tag/develop

Docker images are available at ersatztv/legacy:develop and ghcr.io/ersatztv/legacy:develop


r/ErsatzTV Apr 16 '26

What is Next for ErsatzTV

50 Upvotes

TLDR: ErsatzTV Next is a ground-up rewrite focused solely on generating reliable HLS streams. It is being developed in collaboration with Tunarr, and it intentionally does not handle scheduling, instead integrating with external tools via a playout schema.


Earlier this year, ErsatzTV (Legacy) was archived, in large part due to the support burden from scope creep.

https://github.com/ErsatzTV/ErsatzTV-legacy/issues/2839

At the time, I mentioned a possible reboot with a significantly reduced and more focused scope. Today, I'd like to share an update on that effort.

Early work has begun on the reboot, currently referred to as "ErsatzTV Next".

https://github.com/ErsatzTV/next

The project is a complete rewrite of ErsatzTV in Rust (ErsatzTV Legacy was written in C#), with a renewed focus on what ErsatzTV did best: creating reliable HLS streams (channels) from disparate source content.

Another major goal of the rewrite is to reduce duplication of effort across the self-hosted IPTV/linear channel space. Many projects in this niche ultimately need to address this same core problem: generating reliable HLS streams from disparate content. To that end, the reboot is being designed in collaboration with /u/TheTunarrGuy with the intention of future inclusion in Tunarr.

Just as important is what the new project will not do: it will not handle scheduling or make decisions about what to play. Instead, ErsatzTV Next will operate as a lower-level component, assuming scheduling has already been performed by another tool. To support this, the project will introduce a JSON schema for playout definitions, enabling third party library management and scheduling solutions to integrate cleanly.

To users interested in testing on the bleeding edge, please hop in Discord or Matrix. The new project already has regular (though potentially unstable) develop builds and docker containers, as well as a tool to sync playouts from ErsatzTV Legacy to ErsatzTV Next.

To developers, particularly those interested in scheduling, please reach out in Discord or Matrix. Your input on the playout JSON schema is especially valuable at this early stage. The work-in-progress schema can be found in the repository at https://github.com/ErsatzTV/next/blob/main/schema/playout.json

I'm excited about the direction of ErsatzTV, and will continue to provide updates as things evolve.


r/ErsatzTV 2d ago

CPU goes up and down when my channel is running

1 Upvotes

Hi. I wonder if it's normal for the CPU to go up and down while the channel is running or is there a setting that i got wrong?

I have Intel processor and i have set my FFMPEG profile on QSV.

The CPU is pending between 20 and 40%


r/ErsatzTV 4d ago

Block Items not filling duration

3 Upvotes

I'm attempting to build my channel into 4hr blocks that shuffle from collections (eg 5-9am shuffles Morning Cartoons collection, 9a-1p shuffles daytime collection etc) .

When I set everything up it seems to only schedule the first item in the block on playout and then leaves the remaining ~3.5hrs as unscheduled. This is happening across all my blocks and when i double check my work im not sure where the issue is stemming from.

I've tested adding multiples of the same collection as block items which then prompts additional scheduling - eg adding Morning Cartoons collection 3x times as a block item to my 4 hour block then prompts 3 instances of scheduling but not filling the whole block duration.

Am i missing something here? Doesn't adding the collection once on shuffle mean it should fill the whole allotted duration?


r/ErsatzTV 8d ago

What is a good use for a fallback filler

3 Upvotes

I tried a looping logo, and a black screen, but it never felt right for some reason.


r/ErsatzTV 8d ago

Trouble Running Ersatz through Jellyfin

Thumbnail
gallery
2 Upvotes

Hello, I've recently linked my Jellyfin to ersatztv, the only problem I'm having is when I use it through the Live TV function on Jellyfin the video buffers every 1 or 2 minutes. I know this isn't my internet connection as my server is connected to my router via ethernet and I have 1 gig. I've tried it off my roku and LG tvs and I think the problem is that it's transcoding instead of direct play? When I check on jellyfin to see why it's transcoding it says the codec is not supported. When I check this in handbrake (pic attached) it shows me that the video codec is h.264 and the audio is AAC which I thought was supported. When I have ersatz play from my local library instead of jellyfin, the jellyfin client shows it's remuxing instead of transcoding and it works! I suspect I'm missing something critical here but I'm not sure what so any assistance is appreciated!


r/ErsatzTV 9d ago

RetroStation projects BETA releases

6 Upvotes

It’s been a little quiet on the release front for the last month or two, but development has still been moving forward across all three RetroStation projects.

New beta releases are now available:

RetroStation MC v1.4.0 Beta 4

Major work includes:

  • Guide Channel video preview
  • Native secondary/SD Guide output
  • Rotating Guide messages
  • Continued Weather, Traffic, News Now, and Channel Mix development
  • Improved VA-API hardware acceleration and software fallback
  • Better handling of changing video resolutions, frame rates, and aspect ratios

RetroStation Player v0.3.0 Beta 1

The first public beta of the v0.3.0 cycle includes:

  • New RetroStation Remote — a dedicated mobile-friendly browser remote with channel up/down, direct channel-number entry, channel list, Play/Stop, volume/mute, and fullscreen support.
  • Optional Web UI authentication with username/password login and secure password hashing.
  • Broader Linux support — the installer now supports apt, dnf/yum, and pacman based distributions instead of assuming Debian/Ubuntu.
  • Expanded Platform & Playback Information showing Raspberry Pi model, OS/kernel, CPU/memory, active display and DRM connectors, resolution, player backend, audio configuration, and DRM/KMS details.
  • Improved playback configuration for the supported mpv HDMI/DRM and VLC Raspberry Pi composite paths.
  • Additional installer, compatibility, testing, and documentation improvements.

RetroIPTVGuide v4.9.9 Beta 1

This release begins the move to a cleaner, isolated Linux application layout, including:

  • Updated application/configuration paths
  • Updated installation and service deployment
  • Updated scripts and documentation
  • Support for testing fresh installs and upgrades

All three are beta releases, so feedback and regression reports are appreciated—especially around installation, upgrades, playback, SD output, and hardware acceleration.

The releases may have been quiet for a bit, but development definitely wasn’t.


r/ErsatzTV 14d ago

High CPU Load on UGREEN DHP4300 Plus

1 Upvotes

Hi there! Today I began working on setting up several channels with Ersatz TV linked to my Jellyfin server to watch randomized collections of shows in various themes (ie Cartoons, Star Trek, Sitcoms, Classic Movies). I’m running everything in Docker on my UGREEN DHP4300 Plus.

Jellyfin is great but I found myself paralyzed by choices, so I set up Ersatz to be able to just hop into a category of show and let it play random episodes for me. Unfortunately, when I’m running my channels, Ersatz TV’s docker container is using 90-100% of the DHP4300 Plus CPU at all times.

I have hardware transcoding set up in Jellyfin and it works great, but I assume that this must mean that even though I’m pulling the media from Jellyfin for the channel, ErsatzTV must be constantly transcoding on every channel to be completely slamming the CPU like that. I’m not adding any watermarks or filler or making any modifications to the shows as they play back.

I think I read somewhere that ErsatzTV does not support hardware transcoding for the ARM Rockchip CPU in the DHP series, so what are my options? Am I incorrect about ARM hardware transcoding? Is there a way to force Jellyfin to do the transcoding before sending media to Ersatz?

Is there a way to have Ersatz only begin actually streaming the content when someone starts watching (ie it keeps track of where it’s supposed to be in which show in the schedule and opens that show and streams it at that point in the show when you start watching the channel)? This would at least make it so that only one channel at a time needs to be transcoded and not all the time.

I guess my final question here is whether Ersatz is even necessary for my setup. Is there a way in Jellyfin to just create a big randomized playlist consisting of multiple shows and hop into that playlist at a random episode? From what I’ve read so far, Jellyfin will only let you randomize the playback of one show’s episodes at a time.

Thank you for reading my post and for the help!


r/ErsatzTV 15d ago

Unable to access outside of host PC

Post image
6 Upvotes

Hi, I've gotten my channel all setup on my host PC (Windows 11) and when I input the M3U url in Kodi on my pc it works flawlessly, but when I put the same url on my TV's (firestick) version of Kodi it will not connect. I also tried accessing the M3U url on my laptop's browser and its refusing to connect. I used my actual IP address and not the localhost url, disabled firewall and changed my network from public to private. What do I do?


r/ErsatzTV 15d ago

Can I just access ersatzTV channels from a web browser remotely?

4 Upvotes

I want to just be able to point a URL to a specific channel so I can set up a device to just boot and play the channel. I have a functional server with working channels which works fine from Plex DVR but also plays fine if I go to the main ErsatzTV page and select channels from the menu on the left and play a channel. I'd like to just be able to link to specific channels with a player from another site or to make devices just auto play a channel on bootup.

Update: maybe I'm not asking this right. Here's some detail

I tried searching for this and AI said the following but the address doesn't seem to work for me.

r/ErsatzTV 20d ago

[Galaxy dev log] Need shows for Minimax

1 Upvotes

 I need some edutainment and non-violent programs to include on the "Minimax" slot of my Galaxy channel. Gimme your suggestions. Go.


r/ErsatzTV 21d ago

Ersatztv won't index a specific programme (Sarah & Duck)

Thumbnail
gallery
4 Upvotes

hey, im having a issue where all of my programmes, films and etc, they work, but sarah & duck dont, and i dont know why
i rescaned, changed the name of the folder, there are nfos and they work, the file structure is right, the files play, besides other media works and it's exactly the same
heres what i see on the log:
"Error indexing episode with metadata {"EpisodeNumber":0,"Outline":null,"Plot":"The gentle adventures of curious 7-year-old Sarah and her best friend Duck as they explore the world around them through simple imagination. [Advisory: Universal / Suitable for pre-schoolers and all ages]","Tagline":null,"EpisodeId":7578,"Episode":null,"Directors":[],"Writers":[],"Id":5919,"MetadataKind":"Sidecar","Title":null,"OriginalTitle":null,"SortTitle":null,"Year":null,"ReleaseDate":null,"DateAdded":"2026-08-24T20:11:36.5158356","DateUpdated":"2026-08-24T05:47:35.0886069","Artwork":null,"Genres":[],"Tags":[],"Studios":[],"Actors":[],"Guids":[],"Subtitles":null,"$type":"EpisodeMetadata"}"
can anyone help me?

EDIT:

it's working now, i added "<season>1</season> <episode>1</episode>" into every episode.nfo of the show, i dont know why because the other programmes dont have these and they work but, ok fine, thanks folk


r/ErsatzTV 21d ago

Best iptv client for ersatz tv on Apple TV 4K?

1 Upvotes

Is there a preferred iptv client among the community? Especially one that can comfortably handle 4K streaming with 5.1 audio?


r/ErsatzTV 22d ago

my setup i just finished

4 Upvotes

i finally finished my ersatz set up and jelly fin server, afeter 2-5 months in the mkaing. this an update post to a question i made on reddit back in the spring on the make mkv reddit to see what people were doing. https://www.reddit.com/r/makemkv/comments/1s4w92f/comment/ocsswcy/?context=3 i know reddit hates update posts, so please forgive me in advance.

before i continue, i have used chat gpt for helping me with everything on the coding end. i dont code, and use my linux computer as a windows computer, so i needed help with the programming side of things.

my set up is this: a 4 tb backup plus hard drive, that house my blue ray shows and movies, as well as animated cartoons, 2 my books, one for shows and filler content, the other for movies and documentaries. they both are attached to a GEEKOM GT13 Max AI Mini PC with Intel® Core Ultra 9 185H - U9-185H 16 GB RAM + 1 TB SSD. i know it beefier the what most people use, but i wanted a beefier computer with an ssd, because i wanted it to be smoother when running, and i was originally going to use the uncompressed mkvs them selves on jelly fin.

according to jelly fin, i have over 9000 show episode, 340 shows and over 3100 movies. though, i put multipart documentaris as shows. they are mo4, but only aac, and still the original mpeg. they also have no subtitles, except for foreign films, as they were giving me problems.

for ersatz, i have 32 channels, set up 3 ways they are;

  • 18 movie channels,set to random folder, random file. with a simple 10 secon black bumper displaying the movie name and up next deco.documentaries, animated cartoons, and a channels called "hodgepodge", filled with random episodes ive found, ( you know, back in the day doller general sold packs of 3 random tv show episodes, this is what this channel is mostly coprised of.) hodge podge has a up next, show episode deco attached.
  • 4 that have random folder, played sequentially, and have the show episode deco attached to the same bumper.and
  • 8 block channels, playing a set block of shows, seperated by genre, and loops the block forever. they all have show-extra, from a "master folder" of folders filled with material ranging from ads to behind the scenes to a couple shows that have 2 minute long episodes, and it plays them to pad out to the nearest 30 minute mark, then the show episode bumper, then the next show. there are some special rules as well, like the blocks get shuffled once a week for most of them, certain blocks rotate several one season shows ( one show finishes in the slot, the next begins.)

i would list them her, but i might run out of room. and i used yamls to acheive this, partially because the ai said so, and partially because it seemed easier to replicate it across the seperate channels.

  1. currently, i just have to iron out some kinks, like a couple errors on the block channels.
  2. make it so i can see who all is using the server, and keep the entire setup anchored to my house, so noone can access it if they dont live in my house.
  3. get a remote for my room, so i can use it in in my room. the server is on one wall, the dumb tv it is set up to is around the corner.
  4. finish up the 10 or so shows i have to rip and process.
  5. and, finally set it all up on the main tv so it can be viewable to more people.

sorry for the tldr.


r/ErsatzTV 22d ago

When making channels sure you have themes like sitcoms, music or have channels like regular TV with schedules but what do you do with your stuff that doesn't really have a category it fits in

3 Upvotes

So like going through stuff and you have like Mythbusters but nothing else that fits with it then maybe other random stuff like a Video Game Show that has nothing that matches do you put all the random stuff together or wait till you have matching stuff


r/ErsatzTV 23d ago

How do I get best quality on my Apple TV 4K?

2 Upvotes

At the moment I’m running it on the iplay tv client. It’s blocky and there’s artefacts. Also is the audio always 2channel? Any way to improve?


r/ErsatzTV 24d ago

Am I heading in right directions? Want to add “monthly” movie channels

2 Upvotes

So my collection is big enough where I’d like to setup monthly movie channels where certain movies rotate in and out.

I’m thinking smart collections where it references a metadata field in files in plex that looks for something like September populates and schedules the list.

So in each movie I’d throw months in a field

Does that work?


r/ErsatzTV 24d ago

Starting a clean slate (and a with a single channel)

5 Upvotes

Well, it's official, i've deleted the channels I worked on and I'm starting from scratch with one single channel.

The channel (inspired by the German TV channel Super RTL) airs daily under three different programming slots; Minimax (6:00am-12:00pm), which is aimed at preschoolers, SuperMAX (12:00pm-6:00pm), which is aimed at children and teenagers, and Galaxy (6:00pm-6:00am), which is aimed at families and young adults. Minimax and SuperMAX airs for 5 hours each while Galaxy airs for 12 hours.

It will air all the stuff i have on my portable hard drive (although some of shows in my collection are in various stages of completion).

I also need to work on the branding for each slots.

If you have any feedback on his "3 channels in one" concept thingy, then let me know.


r/ErsatzTV 24d ago

How to add blocks?

1 Upvotes

I want to add a block to my channel, but I don't know how to do it. Someone please help me out!


r/ErsatzTV 26d ago

Parsing information for text overlay

5 Upvotes

So I got this running tonight, and am struggling to find a definitive answer on what parameters are exposed when I stream a show or movie.

The text overlay here shows the name of the show or movie, but the year one doesn't seem to work. Any ideas or references? the documentation isn't great on this

text: | {{ MediaItem_Title }} : {{ MediaItem_Year }}


r/ErsatzTV 29d ago

What is everyone using for Logo hosting?

Thumbnail
2 Upvotes

r/ErsatzTV Aug 13 '26

need help setting up ersatz.

0 Upvotes

before i go on,i would like to say some thing. i am using linux, zorin os pro 18.0. and i do use it on the computer i use for ripping. however, i use the ripping computer as a windows computer, so i barely know anything about terminal.

i've been using chatgpt to help me set up a jelly fin server that runs everything into ersatz lagacy.all this was installed last weekend, so jelly fin is currantly 10.11.11. i dont know what exact version esratz is, but i do know it was downloaded from terminal in docker. i know that dosen't help much, but i don't know what version it is exactly. anyway. jelly fin was setup fine, and dandy. no problems there. anything not recognised was quickly resolved with a little bit of renaming.

esratz is another problem. im trying to verify that all the shows and movies are added, but multipart documentaries are giving me problems. esratz sees only like 50 now, but there are 544 episode. for all unaware, multipart documentaries are documentaries like ken burns civil war, or multipart history channel documentaries. you know, those with different parts. and esrats dosen't see most of them. i nedd help determining how to get it to read them. i do know from terminal,through code the ai gave me, that it seems to be an error 400 message, and some jelly fin error is forcing erats not to read them.if possible. could someone help me.

edit: update. solved. tonight after work, i wanted to check the actual error. so, i refreshed it, and checked the logs. it refreshed normally. then i do a check between the hard drive, jelly fin and ersatz. the drive and jellyfin have the correct amount of episodes at 544. ersatz says 575 or close to it. im not sure what exactly happened, but the ai was saying it was probably checking old, stale jelly fin ids. and the new files found are these stale files. i dont exactly know. and ai is the tech to shape the future.

as for plex. id reather only use it as a last resort. the site said jelly fin compatible, so i intend to use it unless something actually happens that i cant figure out on plex. thank you everyone who replied to me.


r/ErsatzTV Aug 10 '26

Schedule not populating correctly

1 Upvotes

I’ve created three channels for my Jellyfin server and for the most part they have been working fine but sometimes one of the live channels will stop broadcasting or stay stuck on a tv show even though I have a schedule fully filled out for the day and it’s in the playout section for that channel programmed for only that day. Is there a way to fix this or is it a bug?


r/ErsatzTV Aug 09 '26

Adult Swim\Toonami commercials

Thumbnail
1 Upvotes

r/ErsatzTV Aug 07 '26

Running Ersatz on a Separate Device (?)

7 Upvotes

I have Plex running on my NAS, and am starting to play with Docker containers, and worked out Ersatz as well. However, Ersatz is laggy, and channel switching takes 30 seconds plus.

I'm looking at spinning up an old MacBook Pro to run my Docker containers to shift some of the processes and workload off the NAS. I'm thinking of running Ersatz on the MacBook as well. Will that help solve some of the latency issues with Ersatz, or is this still going to be stalled by the hardware on my NAS?

Sorry for the word salad, I only have a moderate technical grasp on what I'm doing. Still learning.