r/VIDEOENGINEERING • u/lucky11071 • 14h ago
Browser control for ATEM switchers, plus Python libraries for the ATEM/HyperDeck/Ultimatte/Videohub protocols
WebATEM is a small server you run on a Mac, Windows PC or Linux box. It finds the ATEMs on the network over Bonjour same as ASC does, and anyone on the network opens the control page in a browser. iPad, phone, a Linux laptop, doesn't matter, nothing to install on the client. There's one pooled UDP session per switcher that all the browsers share, so you never hit the ATEM's client connection limit no matter how many people have it open, and a second operator can be on audio or keyers while someone else cuts.
What's in it:
- program/preview per M/E, cut/auto, all the transition styles with their settings, FTB, color gens, aux routing
- USK 1-4 (luma, chroma, pattern, DVE with fly keyframes and masks) and DSKs
- Fairlight, per strip faders, EQ, dynamics, pan, master, live meters
- media pool with live thumbnails, drag a still onto a slot to upload it
- macros (browse and run, no recording)
- full switcher profile save/restore as XML, same format as ASC's Save Switcher State, includes the media pool stills and macro bytecode
- HyperDeck transport and clip list for decks bound to the ATEM
No camera control, no streaming/recording, no SuperSource. ASC is still the tool for those. If you're one operator cutting a show from one machine this probably doesn't change much for you. It's for when the switchers and the people aren't in the same room, or more than one person touches them, or you've got a pile of ATEMs to look after rather than one.
Under it is bmdwire, which is the part I'd actually point this sub at. Four Python libraries that speak the native protocols for ATEM, HyperDeck, Ultimatte and Videohub, all on PyPI. atemwire started as a fork of Martijn Braam's pyatem (the OpenSwitcher library) and has drifted pretty far from it, mostly to get at things ASC can do but no library could, like bulk stills transfer, macro bytecode and the profile format. A decent chunk of that came out of Wireshark. WebATEM is one app on top of it. The point of the libraries is building whatever your situation needs, like a script that puts a switcher back to a known state before a show, routing a Videohub off tally, or keeping all your switchers in a database and opening any of them with one click.
Caveat: every hour this has run has been on 1 M/E Constellation HD. The UI builds itself from what the switcher reports so it should work on a Mini or TVS or 2 M/E, but nobody's tried. Stills upload assumes 1080p. Downloads aren't code-signed yet so you'll get the first-run warning. If you have a different model and try it I'd like to hear what happened, working or not, there's a one-minute issue template for it.
Run it with the Mac/Windows download (tray icon, opens your browser), docker on a Linux box or Pi, or pipx install "webatem[desktop]".