Control

Bitfocus Companion

Control DearScenario Player from a Stream Deck or other Companion-supported surface.

You can use either the official DearScenario Player module (recommended) or a Generic HTTP connection that posts the same POST /api/command envelopes.

Put Companion on a network that can reach the configured listener. If network.controller_ip_whitelist is non-empty, add the Companion host's exact source IP.

Repository path: ecosystem/companion-module-diria-player.

Load the module

  1. Open Bitfocus Companion → Settings → Developer modules path (or install from your release channel when published).
  2. Point Companion at the folder that contains the built module, then restart Companion.
  3. Add a connection: search for diria / DearScenario Player.
  4. Set Target IP and Target port (18290 by default = network.base_port).
  5. Optionally tune the status poll interval.

One connection maps to one player. Add multiple connections with different IPs to drive a wall of players from a single Companion instance.

What the module provides

SurfaceExamples
ActionsPlay / pause / toggle, load or play_media with source, cue, stop, seek, volume / mute, loop, calibration patterns, quit
FeedbacksAll seven playback states, mute, loop, volume threshold, time remaining, connection
VariablesPlayback state, timecode-style position/duration/remaining, volume, mute, loop, filename
PresetsTransport, audio, seek, status readouts, calibration

Use module variables on button text for on-deck feedback without hand-rolled HTTP polling.

Full developer notes live in the module README.md inside the repository.

Generic HTTP (manual envelopes)

Use this when you cannot load the official module.

  1. Add a Generic HTTP connection.
  2. Base URL: http://<player-ip>:18290.
  3. Button action: Generic HTTP → Send HTTP Request → POST /api/command with JSON body.
ActionBody
Play{"cmd":"play","params":{}}
Pause{"cmd":"pause","params":{}}
Cue{"cmd":"cue","params":{}}
Stop{"cmd":"stop","params":{}}
Load{"cmd":"load","params":{"source":"D:\\media\\main.mp4"}}
Play media{"cmd":"play_media","params":{"source":"D:\\media\\main.mp4"}}
Seek{"cmd":"seek","params":{"position_sec":30.0}}
Volume{"cmd":"volume_set","params":{"volume":0.8}}
Loop{"cmd":"loop_set","params":{"enabled":true}}
Mute{"cmd":"mute_set","params":{"enabled":true}}

Faster path: try the action in the debug panel, then Copy as… → HTTP.

Use the Command Reference for full schemas. Poll /api/status if you need playback state on Generic HTTP buttons.

Previous / Next