I use Ersatz like others mentioned and it works fine, though I don't fully understand how everything works. Following a guide was enough to get several channels setup, but since I also have an antenna and HDHomerun set up, I had to also use xTeve to combine the real and fake programming guides.
This works as expected in Emby (which means it probably also works in Jellyfin), but in Plex it breaks the guide as the channels get all mixed up with respect to their programming data meaning I never know what I'm going to be watching when I click on it. If you don't have an antenna set up already, this probably won't be an issue for you.
And in this case, "tech" is short for "technically."