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.
Official module (recommended)
Repository path: ecosystem/companion-module-diria-player.
Load the module
- Open Bitfocus Companion → Settings → Developer modules path (or install from your release channel when published).
- Point Companion at the folder that contains the built module, then restart Companion.
- Add a connection: search for diria / DearScenario Player.
- Set Target IP and Target port (
18290by default =network.base_port). - 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
| Surface | Examples |
|---|---|
| Actions | Play / pause / toggle, load or play_media with source, cue, stop, seek, volume / mute, loop, calibration patterns, quit |
| Feedbacks | All seven playback states, mute, loop, volume threshold, time remaining, connection |
| Variables | Playback state, timecode-style position/duration/remaining, volume, mute, loop, filename |
| Presets | Transport, 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.
- Add a Generic HTTP connection.
- Base URL:
http://<player-ip>:18290. - Button action: Generic HTTP → Send HTTP Request →
POST /api/commandwith JSON body.
| Action | Body |
|---|---|
| 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.
Related
Previous / Next
- Previous: Web Console
- Next: Node-RED

