Documentation

OBS Studio + Tevyr

OBS Studio is the open-source streaming and recording software most live producers use. Tevyr fits OBS three different ways: as a browser source overlay, as a Tevyr-controlled scene switcher (Tevyr fires webhooks → OBS changes scenes), and as a recording trigger (Tevyr starts and stops the recording from a session cue).

What's OBS?

OBS Studio is free, open-source software for streaming and recording video. It's the standard tool for livestreams, podcasts, sports broadcasts, and event recording. Get it from obsproject.com.

What you can do

Tevyr screens as overlay sources

Add the speaker timer, audience countdown, sponsor wall, or agenda as a transparent overlay on top of any OBS scene. The timer floats above your camera feed, slides, or game capture.

Webhook-driven scene switching

When a Tevyr session starts, OBS automatically cuts to the right scene. No operator clicking scenes. The producer programs the show flow once in Tevyr, and OBS follows along.

Recording control from Tevyr

A single Tevyr cue starts the OBS recording. Another Tevyr cue stops it. Output filenames can include the session title automatically — every recording is named correctly without manual rename.

Two-way: OBS shortcut → Tevyr

Bind an OBS hotkey to a Tevyr API call. Press the same key in OBS that you use to switch scenes — Tevyr advances at the same instant.

Pattern 1 — Browser source overlay

The simplest pattern. Tevyr's output URLs are full webpages, so OBS can render them as a video source.

Setup

  1. In OBS, click + under Sources → Browser
  2. Name it something like Tevyr Speaker Timer
  3. In the URL field, paste your Tevyr output URL (from Output Links → choose the output type → copy the link)
  4. Set:
    • Width: 1920 for a full-frame source, 400 for a corner overlay
    • Height: 1080 (full-frame) or 120 (corner timer)
    • FPS: 30 (default is fine — Tevyr doesn't push more than that)
    • Custom CSS: leave blank (Tevyr's outputs already use transparent backgrounds where appropriate)
  5. Tick Control audio via OBS if you want Tevyr's audio chimes to come through your stream
  6. Click OK

The browser source appears as a layer in your scene. Resize and position it like any other source.

Tip

Use Tevyr's Speaker output for a full-frame timer/teleprompter source. Use Audience for a clean public-facing countdown overlay. Use Sponsor Wall as a between-segments full-screen filler.

Transparent background

Tevyr's outputs support transparent backgrounds via URL parameter. Add ?bg=transparent to your output URL to make the timer float over whatever's underneath in OBS:

https://tevyr.com/output/YOUR_OUTPUT_ID?sig=...&bg=transparent

Now the timer's background pixels are alpha-zero, so your camera feed shows through.

Pattern 2 — Webhook → OBS scene change

When a Tevyr session starts, automatically cut OBS to a matching scene. Useful for multi-segment shows where each segment has its own camera angle / scene preset.

Setup

  1. In OBS, install the OBS WebSocket plugin (built-in since OBS 28)
  2. Open Tools → WebSocket Server Settings and note the port and password
  3. You need a small bridge between Tevyr's webhook and OBS's WebSocket. Easiest options:
    • Companion: Connect Companion to both Tevyr (HTTP) and OBS (WebSocket). Companion's "Trigger on event" can route Tevyr events to OBS commands.
    • Zapier: Use Zapier to listen for Tevyr webhooks and call the OBS WebSocket.
    • A small Node script: if you're comfortable with code, a 30-line script handles this with obs-websocket-js.

Recipe — auto-scene-switch on session change

Companion is the easiest option. In Companion:

  1. Add an OBS Studio connection (uses OBS WebSocket)
  2. Add a Generic HTTP server connection that listens for Tevyr webhooks (port 8080 is fine)
  3. Triggers → Add trigger with condition: incoming webhook with body matching {"event":"session.started","session":{"title":"Keynote"}}
  4. Action: OBS → Set Scene → "Keynote"

Repeat for each session/scene mapping. Now starting a Tevyr session named "Keynote" cuts OBS to the "Keynote" scene automatically.

Pattern 3 — Tevyr starts / stops the recording

Have Tevyr cue the recording so the file is always perfectly trimmed.

Setup

Same prerequisite as Pattern 2 — OBS WebSocket plugin enabled, plus a bridge (Companion is easiest).

Recipe — recording controlled by show flow

  1. In Companion, configure two triggers:
    • On Tevyr webhook event=session.started AND session.title=="Show Start" → OBS action Start Recording
    • On Tevyr webhook event=session.completed AND session.title=="Show End" → OBS action Stop Recording

The producer never touches OBS during the show. The recording is the show — bookended exactly by the start and end sessions.

For per-segment recording (each session = one file), set the OBS recording filename template to include the session title via Companion variables.

Pattern 4 — OBS hotkey → Tevyr action

The reverse direction. Bind an OBS hotkey to a Tevyr API call so pressing your usual OBS shortcut also drives Tevyr.

Setup

OBS doesn't have a built-in "fire a URL" action, so route through Companion:

  1. In Companion, create a button that fires a Tevyr API call (see the Companion guide for recipes)
  2. In Companion's Surfaces panel, bind the same keyboard shortcut OBS uses to switch scenes
  3. Press the key — both OBS and Tevyr respond

Alternatively, install the OBS Hotkey module in Companion for direct hotkey-to-action routing.

Recipes (browser-source overlays)

Replace YOUR_OUTPUT_ID and sig with your actual output URL parameters.

Speaker timer overlay (corner)

https://tevyr.com/output/YOUR_OUTPUT_ID?sig=...&bg=transparent&size=small

OBS settings: Width 400, Height 120, position bottom-right.

Full-screen sponsor wall (between segments)

https://tevyr.com/output/YOUR_SPONSOR_OUTPUT_ID?sig=...

OBS settings: Width 1920, Height 1080. Drop into a "Sponsors" scene; cut to it during transitions.

Audience countdown for stream viewers

https://tevyr.com/output/YOUR_AUDIENCE_OUTPUT_ID?sig=...&bg=transparent

OBS settings: position top-center, width 600, height 200. Visible to streamers throughout the show.

Troubleshooting

"Browser source is black / blank"

  • Confirm the output URL works in a regular browser tab
  • The URL must include the signature (?sig=...) — Tevyr rejects unsigned output requests
  • Try Refresh cache of current page in OBS's browser source settings (right-click the source)

"Browser source is laggy / dropping frames"

  • Browser sources are CPU-heavy. For 1080p outputs, expect ~5-10% CPU per source on a recent Mac/PC
  • Reduce the source resolution if you don't need full HD (a corner timer at 400×120 is much lighter)
  • For mission-critical broadcasts, the Phase 2 NDI Bridge (planned) will avoid the browser source overhead entirely

"Audio from Tevyr isn't reaching my stream"

  • In the browser source settings, enable Control audio via OBS
  • In OBS's audio mixer, confirm the browser source isn't muted
  • Tevyr only emits audio when audio alerts are configured on that output

"The 'Tap to enable sound' banner shows on stream"

  • Browsers block audio until the user interacts with the page. OBS's browser source has a Page interaction option — enable it and click the source once in OBS to dismiss the banner. After that, audio plays automatically for the session.
  • API reference — every endpoint Tevyr exposes
  • Webhooks — fire OBS scene changes from Tevyr events
  • Macros — alternative to webhooks: bundle "scene change + record + Slack ping" into one cue via flow.http_request → Companion connection
  • Bitfocus Companion — the easiest bridge between Tevyr and OBS WebSocket
  • vMix integration — same patterns for vMix users
  • Use case: Livestreams — full streamer workflow