REST API and remote Web Controller access for vMix Live Video Streaming
A REST API for vMix Live Video Streaming.
Read the full API documentation to see what the vMix REST API can do.
In these examples, replace http://localhost:3000/api/rest/v1 with your own base URL given when you start the vMix REST API.
GET /inputs
curl -i -H 'Accept: application/json' http://localhost:3000/api/rest/v1/inputs
Returns:
[
{
"inputId": 1,
"type": "ImageSequence",
"title": "MVC-001F.JPG",
"state": {
"running": false,
"paused": false,
"completed": true
},
"isActive": false,
"isPreview": true,
"media": {
"position": 0,
"duration": 0,
"loop": false,
"muted": null,
"volume": null,
"balance": null,
"solo": null,
"audiobusses": null,
"audioMeter": {
"left": null,
"right": null
}
},
"list": null,
"fields": []
},
{
"inputId": 2,
"type": "VirtualSet",
"title": "CircularStudio",
"state": {
"running": false,
"paused": true,
"completed": false
},
"isActive": false,
"isPreview": false,
"media": {
"position": 0,
"duration": 0,
"loop": false,
"muted": null,
"volume": null,
"balance": null,
"solo": null,
"audiobusses": null,
"audioMeter": {
"left": null,
"right": null
}
},
"list": null,
"fields": []
}
]
GET /inputs/4
curl -i -H 'Accept: application/json' http://localhost:3000/api/rest/v1/inputs/4
Returns:
{
"inputId": 4,
"type": "Xaml",
"title": "NewsHD.xaml",
"state": {
"running": false,
"paused": true,
"completed": false
},
"isActive": true,
"isPreview": false,
"media": {
"position": 0,
"duration": 0,
"loop": false,
"muted": null,
"volume": null,
"balance": null,
"solo": null,
"audiobusses": null,
"audioMeter": {
"left": null,
"right": null
}
},
"list": null,
"fields": [
{
"fieldId": "Headline",
"type": "text",
"text": "News Brief"
},
{
"fieldId": "Description",
"type": "text",
"text": "January 1, 2020"
}
]
}
PUT /inputs/1
Request body
{
"isActive": true,
"transitionEffect": "wipe"
}
curl -i -H 'Accept: application/json' -X PUT -d '{"isActive": true,"transitionEffect": "wipe"}' http://localhost:3000/api/rest/v1/inputs/1
Returns 200 on success.
PUT /inputs/4/fields/Headline
Request body
{
"text": "Breaking News"
}
curl -i -H 'Accept: application/json' -X PUT -d '{"text": "Breaking News"}' http://localhost:3000/api/rest/v1/inputs/4/fields/Headline
Returns 200 on success.
GET /vmix
curl -i -H 'Accept: application/json' http://localhost:3000/api/rest/v1/vmix
Returns:
{
"version": "19.0.0.54",
"edition": "Basic HD"
}
docker build . -t vmix-rest-api
CONFIG_PATH
to something like /path/to/config
docker run -it -p 3000:3000 -d vmix-rest-api
CONFIG_PATH=/path/to/config.yml nodemon app/index.js