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 numberprotocol
attribute indicates version of the protocol, which is1.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 numbersource
should be a valid NDI source name inDEVICE (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 - offsource
: NDI source name; empty means not connectedtally
: 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