All Projects → curtgrimes → Vmix Rest Api

curtgrimes / Vmix Rest Api

Licence: gpl-3.0
REST API and remote Web Controller access for vMix Live Video Streaming

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Vmix Rest Api

Bmw Tensorflow Training Gui
This repository allows you to get started with a gui based training a State-of-the-art Deep Learning model with little to no configuration needed! NoCode training with TensorFlow has never been so easy.
Stars: ✭ 736 (+3988.89%)
Mutual labels:  rest-api
Oapi Codegen
Generate Go client and server boilerplate from OpenAPI 3 specifications
Stars: ✭ 806 (+4377.78%)
Mutual labels:  rest-api
Django Ninja
💨 Fast, Async-ready, Openapi, type hints based framework for building APIs
Stars: ✭ 875 (+4761.11%)
Mutual labels:  rest-api
Luya
LUYA is a scalable web framework and content management system with the goal to please developers, clients and users alike.
Stars: ✭ 741 (+4016.67%)
Mutual labels:  rest-api
Dalfox
🌘🦊 DalFox(Finder Of XSS) / Parameter Analysis and XSS Scanning tool based on golang
Stars: ✭ 791 (+4294.44%)
Mutual labels:  rest-api
Uplink
A Declarative HTTP Client for Python
Stars: ✭ 824 (+4477.78%)
Mutual labels:  rest-api
Swagger Parser
Swagger 2.0 and OpenAPI 3.0 parser/validator
Stars: ✭ 710 (+3844.44%)
Mutual labels:  rest-api
Farwest
Framework for building RESTful HATEOAS-driven applications.
Stars: ✭ 18 (+0%)
Mutual labels:  rest-api
Never Blink
👀Blink and lose.
Stars: ✭ 802 (+4355.56%)
Mutual labels:  video-streaming
Core
Pluf is an open source PHP framework, which is very light and fast.
Stars: ✭ 6 (-66.67%)
Mutual labels:  rest-api
Laravel Adminpanel
A Laravel Admin Panel (Laravel Version : 6.0)
Stars: ✭ 774 (+4200%)
Mutual labels:  rest-api
Ngx Restangular
Restangular for Angular 2 and higher versions
Stars: ✭ 787 (+4272.22%)
Mutual labels:  rest-api
Gen
Converts a database into gorm structs and RESTful api
Stars: ✭ 825 (+4483.33%)
Mutual labels:  rest-api
Node Typescript Koa Rest
REST API boilerplate using NodeJS and KOA2, typescript. Logging and JWT as middlewares. TypeORM with class-validator, SQL CRUD. Docker included. Swagger docs, actions CI and valuable README
Stars: ✭ 739 (+4005.56%)
Mutual labels:  rest-api
Go Book Store Api
Go Sample project to understand Mysql CRUD operation with best practises Includes logging, JWT, Swagger and Transactions
Stars: ✭ 18 (+0%)
Mutual labels:  rest-api
Shlink
The definitive self-hosted URL shortener
Stars: ✭ 727 (+3938.89%)
Mutual labels:  rest-api
Scala Pet Store
An implementation of the java pet store using FP techniques in scala
Stars: ✭ 812 (+4411.11%)
Mutual labels:  rest-api
Foxcross
AsyncIO serving for data science models
Stars: ✭ 18 (+0%)
Mutual labels:  rest-api
Great Big Example Application
A full-stack example app built with JHipster, Spring Boot, Kotlin, Angular 4, ngrx, and Webpack
Stars: ✭ 899 (+4894.44%)
Mutual labels:  rest-api
Apispec
A pluggable API specification generator. Currently supports the OpenAPI Specification (f.k.a. the Swagger specification)..
Stars: ✭ 831 (+4516.67%)
Mutual labels:  rest-api

vMix REST API

vMix REST API

A REST API for vMix Live Video Streaming.

Features

  • Well-documented API for vMix that's built with REST principles in mind.
  • Remote access to the REST API and vMix's native Web Controller.
  • Easily get inputs, overlays, transitions, and send actions to a running vMix instance.
  • Standalone Windows executable that exposes the REST API.
  • Runs alongside vMix's existing XML-based API.

Installation

  1. Download the latest Windows release
  2. Run vMix and enable the Web Controller.
  3. Open the included config.yml file in a text editor and update it with your Web Controller URL. Optionally enable settings for remote API access and remote Web Controller access.
  4. Run the vMix REST API and you'll be given the local base URL to your REST API (and also remote access URLs if you enabled remote access). Check out the examples to get started or read the full API documentation.

Full API Documentation

Read the full API documentation to see what the vMix REST API can do.

Examples

In these examples, replace http://localhost:3000/api/rest/v1 with your own base URL given when you start the vMix REST API.

Get a list of all inputs

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 a single input

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"
    }
  ]
}

Make input 1 active with a wipe transition effect

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.

Update the title called "Headline" on input 4

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 version information

GET /vmix

curl -i -H 'Accept: application/json' http://localhost:3000/api/rest/v1/vmix

Returns:

{
  "version": "19.0.0.54",
  "edition": "Basic HD"
}

Development

Docker

  1. Build: docker build . -t vmix-rest-api
  2. Set environment variable CONFIG_PATH to something like /path/to/config
  3. Run locally on port 3000: docker run -it -p 3000:3000 -d vmix-rest-api
  4. Go to http://localhost:3000/api/rest/v1 and start making requests (like http://localhost:3000/api/rest/v1/inputs)

Nodemon

  1. Run CONFIG_PATH=/path/to/config.yml nodemon app/index.js
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].