Video Switchers & Live Production
OSEE GoStream Control Software BETA
Controls OSEE GoStream switchers — Deck, Duet, Duet SDI and Duet 8 ISO — over the native GoStream Protocol (GSP) on TCP port 19010. The handler keeps its own connection open, mirrors the switcher state in real time (including changes made…
Handlers run inside Fantago — the file is a plugin, not a standalone program. Start with the free 60-day trial.
How to connect OSEE GoStream to Fantago
- Open the Fantago Dashboard and click Add Device.
- Pick the OSEE GoStream Series handler from the device type list (internal id
osee_gostream). - Enter the IP address of your OSEE GoStream, then set protocol TCP and port
19010. - Save and connect. Fantago starts polling the device and publishes its feedback variables, ready to use in panels, sequences and logic flows.
- Drag the actions below onto a panel button, a Stream Deck key, a schedule or a logic flow node.
| Protocol | TCP |
|---|---|
| Default port | 19010 |
| Handler version | 1.0.0 |
| Author | Fantago |
| Internal ID | osee_gostream |
Description & Instruction
Requires firmware 2.3.0 or later (2.1.0 or later on the Duet 8 ISO).
Variables written (prefix = sanitized device name):
{prefix}pgm / {prefix}pgm_id — program source{prefix}pvw / {prefix}pvw_id — preview source{prefix}in_transition, {prefix}transition_style, {prefix}ftb{prefix}usk1_onair, {prefix}dsk1_onair, ...{prefix}recording, {prefix}record_time, {prefix}streaming
Command Integration Guide
OSEE GoStream switchers speak a compact JSON protocol over TCP, referred to as GSP. This handler implements it natively: it opens the socket, reassembles the binary envelopes and keeps Fantago variables aligned with the switcher, so feedback also reacts to buttons pressed on the hardware itself.
Connection
- Protocol TCP, port 19010 (change the port on the device only if your unit uses a custom one).
- Leave Connection is Persistent unchecked — the handler manages its own socket and reconnects automatically every 5 seconds.
- No password or handshake is involved.
Wire format
Each message is a JSON object inside a length framed envelope:
| Field | Size | Value |
|---|---|---|
| Header | 2 bytes | EB A6 |
| Protocol id | 1 byte | 00 |
| Length | 2 bytes LE | JSON bytes + 2 |
| Payload | n bytes | UTF-8 JSON |
| CRC | 2 bytes LE | CRC-16/MODBUS over all preceding bytes |
The payload is always {"id":"<parameter>","type":"get|set|pus","value":[...]}.
A get requests a parameter, a set writes it, and the switcher answers
state changes with pus — including changes it made on its own.
Examples of the underlying parameters
| Action | Payload sent |
|---|---|
| Program to input 2 | {"id":"pgmIndex","type":"set","value":[2]} |
| CUT | {"id":"cutTransition","type":"set"} |
| Key 1 on air | {"id":"keyOnAir","type":"set","value":[0,true]} |
| Start PGM recording | {"id":"recordStart","type":"set","value":[0]} |
| Query program source | {"id":"pgmIndex","type":"get"} |
Source numbering
Sources are global numeric ids: 0 Black, 1-8 physical inputs,
1000 Color Bar, 2001/2002 Color 1/2, 3010/3020 Media
Player 1/2, 5001 Multi Source, 9001 Multiview, 10010 PGM,
10011 PVW. Keyers, DSKs, players and streams are 0-based on the wire; the
dropdowns and the feedback variables present them 1-based (Key 1 = index 0 = usk1_*).
Integration via HTTP GET (assuming device name "GOSTREAM"):
http://<Fantago_IP>:3001/sendTo/GOSTREAM?cmd=set_pgm&source=2
http://<Fantago_IP>:3001/sendTo/GOSTREAM?cmd=cut
http://<Fantago_IP>:3001/sendTo/GOSTREAM?cmd=usk_on_air&key=0&state=toggle
Integration via TCP/UDP Listener:
GOSTREAM:auto
GOSTREAM:set_pvw&source=3
GOSTREAM:record_toggle
Notes
- The switcher applies a
setasynchronously and confirms with a push a few tens of milliseconds later. When one action depends on the result of the previous one (for example setting a key type and then its fill source), insert a short delay of about 200 ms between the two. - Available parameters differ by model. The handler queries the device inventory on connect and only offers what the unit reports; FTB and the wipe geometry controls, for instance, are absent on the Duet 8 ISO.
- Use Sync Switcher after changing the switcher configuration to refresh the dropdown lists.
- Send Raw Parameter exposes any parameter not covered by a dedicated action.
OSEE GoStream control — frequently asked questions
Does Fantago support OSEE GoStream?
Yes. Fantago includes a ready-made OSEE GoStream Series handler (version 1.0.0) that talks to the device over TCP, default port 19010. It is bundled with every licence and with the 60-day free trial — there is no per-device fee.
What protocol does the OSEE GoStream handler use?
TCP, default port 19010. Fantago connects straight to the device over your production network, so no gateway, middleware or vendor software is needed in between.
Can I control OSEE GoStream from a Stream Deck?
Yes. Every OSEE GoStream action can be mapped to an Elgato Stream Deck key, to a button on a custom Fantago touch panel, to a timed schedule, or to a logic flow triggered by another device — including devices from a different manufacturer.
Can I modify the OSEE GoStream handler?
Yes. The handler is a plain JavaScript file (osee_gostream.js) that you can download from this page, edit and drop back into Fantago. You can also write your own handler from scratch — see the Developer Guide.
Control OSEE GoStream from a single interface
Fantago drives OSEE GoStream alongside 50+ other broadcast, lighting, audio and smart home devices — from custom touch panels, an Elgato Stream Deck, a schedule or a logic flow. One-time licence, no subscription, runs offline.