Stream KitDocs

OBS

Connect OBS Studio via WebSocket — scene, stream, recording, media, and filter triggers and handlers.

OBS

The OBS plugin connects to OBS Studio via WebSocket for scene changes, stream/recording control, media sources, filters, and more.

Settings

Open Plugins → OBS:

SettingDescription
HostWebSocket host (127.0.0.1 default). Use the IP only — do not put ws:// or :4455 in this field unless you paste a full URL.
PortWebSocket port (4455 default). Ignored when host is a full ws:// / wss:// URL.
PasswordOBS WebSocket password. Required when authentication is enabled in OBS; leave empty if auth is off.

Use Test connection, Connect, or Disconnect. The plugin auto-connects on enable when host and port are set, and keeps retrying every 5 seconds until OBS is available or you disconnect manually.

The plugin reports configured when host and port are set. Connection status is shown separately in the settings alerts — auth or protocol errors show as Connection error (not “Waiting for OBS”).

Enable the WebSocket server in OBS: Tools → WebSocket Server Settings. Copy the password from there into Stream Kit when authentication is enabled.

After an OBS update

OBS often regenerates the WebSocket password (or migrates settings) when you update. If the connection worked before and suddenly fails:

  1. Open Tools → WebSocket Server Settings in OBS.
  2. Confirm the server is still enabled and note the port.
  3. Click Show Connect Info / copy the current password into Stream Kit.
  4. Use Test connection.

If the password keeps changing after every OBS restart, check for a conflicting old obs-websocket plugin, or software that rewrites OBS config (commonly Logitech Logi Options+ / G Hub Plugin Service).

Triggers

Triggers are grouped under OBS in the action editor. Highlights:

GroupExamples
Scene & transitionScene changed, preview scene, transition started/ended
StreamStarting, started, stopping, stopped, reconnecting
RecordingStarted, paused, resumed, stopped, file changed
SourceInput muted/unmuted, shown/hidden
MediaMedia started/ended, media action triggered
FilterFilter enabled/disabled

Scene, transition, and input triggers support name matching (equals, contains, starts/ends with).

Full list with IDs: OBS triggers.

Handlers

GroupExamples
StreamStart / stop / toggle stream, send caption, get stream status
RecordingStart / stop / pause / resume / split, get record status, chapters
MediaSet file, trigger action, seek, get media status
FilterEnable/disable/toggle, set settings, create/remove
SceneSet program/preview scene, transitions, studio mode, virtual cam

Set Media Input File updates ffmpeg_source, vlc_source, or media_source and can wait for playback duration before continuing the chain. Cloud file refs (/api/files/...) resolve to a local offline-cache path when Keep cloud files offline is enabled (with authenticated URL fallback if the file is not on disk yet), otherwise to an authenticated PocketBase URL, and are set as local_file (OBS network mode is avoided because it reconnects and loops finite files).

Get Stream/Record/Media Status writes action-scoped variables for later handlers (streamActive, recordDuration, mediaState, …).

Full list: OBS handlers.

Trigger variables

Common fields for \{interpolation\}:

VariablesSource
sceneName, sceneUuidScene triggers
inputName, inputUuidSource / media
outputState, outputPathStream / recording
filterName, filterEnabledFilter triggers

Each trigger page lists its variables in the API Reference.

On this page