Stream live gameplay to YouTube from macOS without running OBS
Switch between gameplay, BRB, and Starting Soon scenes with a single keystroke
Benchmark your Mac encoder and uplink before going live with the bitrate sweep and VMAF check
Recover from broken macOS camera and mic permissions using the repair subcommand
macOS and Apple Silicon only; needs Homebrew, ffmpeg, and macOS camera and mic permissions reset on first run.
zeststream-cast is a command-line replacement for OBS Studio on macOS. The author built it after OBS started crashing on macOS 26 following a security update that Apple did not let users roll back. Instead of a windowed application, this project drives ffmpeg directly from shell scripts to capture a video signal, mix it with a webcam and microphone, and push the result to YouTube Live. The core pipeline takes input from an HDMI capture card, a webcam, and a microphone, then composites them in the style users expect from OBS: full-screen game footage with a webcam picture-in-picture and the mic mixed over the game audio. Encoding uses Apple's hardware h264 encoder (h264_videotoolbox) and the output is sent to YouTube over RTMPS. A local ffplay window shows a preview. The tool also supports OBS-style scenes (gameplay, no-cam, Be Right Back, Starting Soon) that can be switched with one keystroke from a small terminal menu. The project is intentionally narrow. It is macOS and Apple Silicon only because it uses AVFoundation and videotoolbox. There is no drag-and-drop GUI, no browser sources, and no audio plugin support. The author points users to OBS, ecamm Live, or Lightstream if they need those features. Installation is a clone-and-run script. It checks that Homebrew and ffmpeg are present, copies the zscast command into the user's local bin folder, and walks through device selection. macOS camera and microphone permissions are handled by a separate repair command that resets the privacy state and triggers the system permission dialogs. For going live, three options are documented: paste the YouTube stream key once into a file, run a self-hosted Nango deployment for OAuth, or write a custom key-fetcher script. The CLI is large and follows what the author calls a canonical CLI scoping spec. There are subcommands for diagnostics (doctor, health), idempotent repairs, audit logs, an encoder benchmark, a bitrate sweep that probes the uplink, and a VMAF quality check that scores rendered test content. A verify command chains several of these into a single go or no-go check before going live. The license is MIT.
Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.