Multicam Logger uses port 8888 by default, but this can be configured in the preferences of Multicam Logger.
This API is meant to be RESTful, then, using different verbs on requests leads to different behaviour on request processing. In general manner, consider theses verbs to have the described behaviour:
GET -> Retrieve data of a processable entity.
POST -> Create a new entity.
PUT -> Update a specified entity.
DELETE -> Delete an entity.
When you modify or retrieving data, be sure to handle properly the return code that is returned by the API as it indicates if the operation was successfull or not.
For POST & PUT requests you MUST supply the 'Content-Type' header with value 'application/json'.
Here is a short list common codes returned by the API:
"success": Indicates if the request was accepted and processed or not by Multicam Logger. "error": In case of success false, indicates what was wrong when processing the request.
NOTE: OPTIONAL marked parameters indicates that these parameters can be or not be present in the response object, this is due to internal logics.
However for requests that require a body, like PUT or POST, it means that it can be passed but they are not mandatory.
General requests
Which document will "reply"?
As Multicam Logger is a "document based" application, you can have multiple documents opened. You should note that it's the front most document that will answer to your requests.
Start and Stop logging
Once a document is created (you can not do that with the API), you can start and stop logging using the following requests.
Returns a list of inputs that are available for the "front" document. So it represents that inputs that were available when the document was created and thus can be different to what you can see in the preferences.
GET http://localhost:8888/inputs
Response (Example):
[
"INPUT 1",
"INPUT 2",
"INPUT 3",
"INPUT 4",
]
Retrieve the current state
Returns a few information, such as which input is selected in program and which one is in preview (their zero based index). Or the current timecode, the front document name and if it is currently logging or not.
When creating markers, to indicate at which position they should be created, you will have to set what reference to use, either:
"live": the marker will be set at the current "Live" time, even if the user has scrubbed and is playing back at a different position.
"absolute": the marker will be set at the time indicated in the "time" value you pass in the JSON.
Seconds, Timecode, positive or negative
Additionally to the reference, you will define either an offset relative to that reference, or an absolute time:
When using "live", "playhead", "in_point", or "out_point", you must also specify an "offset", even if it is zero. It can be either positive or negative
When using "absolute" time, you must specify a "time" value. It can only be positive. You should also make sure that the TC you indicate is within the range of the session.
You can use either seconds or timecode, and these values can be positive or negative. Note that nothing will need to be specified, we will interpret according to what we receive):
seconds: You can set the position in seconds. Just enter something like 10 for 10 seconds, 3600 for one hour, etc.
timecode: You can set the position using timecode. As the : don't go well in an URL, replace them with %3A. So a 01:00:00:00 timecode will look like this: 01%3A00%3A00%3A00
positive or negative: set a negative value if you want to go in the past, and a positive value to go in the future. Of course an "absolute" timecode will only be positive as it's not relative to a previous time.
Working with Markers
To add a marker, you can either use GET or POST.
Creating markers using "POST"
When using the POST method, you should pass a json dictionary with "name" to set the title of the marker.
POST http://localhost:8888/add_marker
Body:
{
"name": string, eg: "My Marker"ⓘ
"reference": string,
You can also change the selected angle in program and preview.
IMPORTANT NOTE: If you are working with an ATEM or Tricaster, changing in the UI of Multicam Logger also changes in the production switcher. So it means you can control your production switcher from a simple web page.
Note that the index is 0 based. This also can be done either with a POST or a GET.
When using You can indicate both the program and preview, or just set the program, or just the preview.You can do it using POST:
Note that the "program" value shows the index of the inputs that was used in program. You can use GET /inputs to retrieve the names of these.
For more information
If you need more info or support about Multicam Logger, you can find it on our support desk. And if you need additional information on the API and/or the websockets, submit a ticket and we'll be happy to guide you.