TCP API

This API uses TCP for communication. Connections are accepted on a port selected in Settings (9099 by default).

Commands are in XML format. Each line has to end with \r\n.

Commands are processed asynchronously and it cannot be guaranteed that responses are sent in the same order that commands were sent in. Additionally there are event messages that you may receive at any time.

To keep track if a particular command succeeds or fails, set a unique ID in uid attribute. Response to that command will have the same ID. IDs can contain any combination od letters and digits of a reasonable length. Setting the ID is optional.

Welcome message

At the beginning of the connection you will receive a following welcome message:

<hello app="Livemind Recorder" release="X.X.X.X" protocol="X.X" />\r\n
  • release attribute indicates application release number
  • protocol attribute indicates version of the protocol, which is 1.0 for now, but may change with future releases as new features get introduced

Standard responses

Most commands will be followed by either success or failure response:

<success uid="XXXXXX" />\r\n
<failure reason="Detailed reason" uid="XXXXXX" />\r\n

Commands

Connect to a source

<connect slot="N" source="DEVICE (SOURCE-NAME)" uid="XXXXXX" />\r\n
  • slot in range [1;16] corresponds to the slot number
  • source should be a valid NDI source name in DEVICE (SOURCE-NAME) format
Possible responses

Standard responses


Disconnect from a source

<disconnect slot="N" uid="XXXXXX" />\r\n
  • slot in range [1;16] corresponds to the slot number
Possible responses

Standard responses


Start recording

<recording_start slot="N" uid="XXXXXX" />\r\n
  • slot in range [1;16] corresponds to the slot number; 0 starts recording on all connected slots
Possible responses

Standard responses


Stop recording

<recording_stop slot="N" uid="XXXXXX" />\r\n
  • slot in range [1;16] corresponds to the slot number; 0 stops recording on all connected slots
Possible responses

Standard responses


Listen to audio

<listen slot="N" uid="XXXXXX" />\r\n
  • slot in range [1;16] corresponds to the slot number
Possible responses

Standard responses


Stop listening to audio

<listen_off uid="XXXXXX" />\r\n
Possible responses

Standard responses


List available NDI sources

<sources uid="XXXXXX" />\r\n
Possible responses
<sources uid="XXXXXX">\r\n
  <source name="DEVICE1 (SOURCE-NAME)" />\r\n
  <source name="DEVICE2 (SOURCE-NAME)" />\r\n
  ...
</sources>\r\n

Get slots status

<status slot="N" uid="XXXXXX" />\r\n
  • slot in range [1;16] corresponds to the slot number; 0 returns status of all slots
Possible responses

When slot in the command is in the range [1;16] the response will be:

<slot id="N" recording="B" source="DEVICE (SOURCE-NAME)" tally="T" uid="XXXXXX" />\r\n

When slot in the command is equal to 0, the response will be:

<status uid="XXXXXX">\r\n
  <slot id="1" recording="B" source="DEVICE (SOURCE-NAME)" tally="T" />
  <slot id="2" recording="B" source="DEVICE (SOURCE-NAME)" tally="T" />
  ...
</status>\r\n
  • id: slot number in the range [1;16]
  • recording: 0 - on, 1 - off
  • source: NDI source name; empty means not connected
  • tally: 0 - none, 1 - preview, 2 - program

Subscribe to recording events

<recording_subscribe uid="XXXXXX" />\r\n
Possible responses

Standard responses

Possible event messages
<recording slot="N" state="B" />\r\n
  • slot: slot number in the range [1;16]
  • state: 0 - on, 1 - off
<recording_all state="B" />\r\n
  • state: 0 - on, 1 - off

Unsubscribe from recording events

<recording_unsubscribe uid="XXXXXX" />\r\n

Note that after unsubscribing, you still may receive event messages for a while.

Possible responses

Standard responses


Subscribe to tally events

<tally_subscribe uid="XXXXXX" />\r\n
Possible responses

Standard responses

Possible event messages
<tally slot="N" state="T" />\r\n
  • slot: slot number in the range [1;16]
  • state: 0 - none, 1 - preview, 2 - program

Unsubscribe from tally events

<tally_unsubscribe uid="XXXXXX" />\r\n

Note that after unsubscribing, you still may receive event messages for a while.

Possible responses

Standard responses