turns out I was building the wrong thing. the thing I actually wanted was a protocol.
so tltv is that. a channel is an ed25519 key pair. you sign your metadata with it. you serve hls video from wherever you want. your public key becomes a tltv:// address that anyone can tune into.
relay nodes can re-serve your stream but they can't modify it. they verify signatures on everything. you can move servers and keep your channel because the key is the identity, not the hostname. nodes find each other through peer exchange. no central registry.
the cli is probably the fastest way to see what I mean:
curl -fsSL timelooptv.org/install | sh
tltv keygen
tltv server test --name "my channel" -k TV*.key
that's a fully compliant origin server. pure go, generates smpte bars with audio, no ffmpeg. one binary, ~20mb of ram.
there's also a full gstreamer-based server (cathode), a web viewer (phosphor), and bridge/relay servers in the cli. everything mit licensed.live demo at https://demo.timelooptv.org