~allie/website-2020 unlisted

0b7315d5e9566fe50848b0f0d3f1160d77107896 — Alfie Pates 13 days ago aa728b8 master
blogpost about mimolive + bitfocus companion
1 files changed, 49 insertions(+), 0 deletions(-)

A content/2020-07-31-mimolive-companion.md
A content/2020-07-31-mimolive-companion.md => content/2020-07-31-mimolive-companion.md +49 -0
@@ 0,0 1,49 @@
title: Controlling MimoLive with Bitfocus Companion

I was recently asked how I control the video mixer software I use at work,
BoinxTV MimoLive, with an Elgato Streamdeck. 

Here are the important configuration bits to know. I'll assume you already have
Bitfocus Companion and MimoLive installed, on the same network. I'm also
assuming you've secured the network, so we won't be using any authentication on
the MimoLive API. 

Head to the MimoLive preferences, and ensure "Allow Remote Control Access" is
enabled. Make a note of the MimoLive Base URL - in my case,
`http://10.200.10.240:8989/`. 

In Bitfocus Companion, add a new "Generic HTTP" instance. Set the Base URL to
the URL you noted above. 

Back in MimoLive, pick something you wish to control. I'm going to use a new
Layer Set. Right-click, and choose "Copy [item]'s API Endpoint to Clipboard" -
`/api/v1/documents/1107045768/layer-sets/7FC83F18-7E04-4778-802F-3963CE2161FC`.

In Companion, add a new button. Add an action "HTTP: Post", and paste in the API
endpoint you copied earlier. **It is important to delete the leading slash, or
Companion will not call the API correctly.**

Next, head to the [MimoLive Docs](https://docs.mimo.live/docs/endpoints) and
find the API call for the action you want to execute. In my case, I'm recalling
a layer set, so the action I want is `/recall`. Append this to the API endpoint
in Companion, which should give you
`api/v1/documents/1107045768/layer-sets/7FC83F18-7E04-4778-802F-3963CE2161FC/recall`

Click "Test actions", and if you've done everything correctly, you'll see the
action reflected in MimoLive!

If it doesn't work, check you've deleted the leading slash of the API endpoint.
This is the thing that catches me out most often. 

You can also use the tool [HTTPie](https://httpie.org/) to test API calls.
Installing HTTPie is outside the scope of this tutorial, but to test the API
call we used above, I'd use the terminal command `http POST
http://10.200.10.240:8989/api/v1/documents/1107045768/layer-sets/7FC83F18-7E04-4778-802F-3963CE2161FC/recall`. 

I will come back to this blogpost at some point and add images, but I hope this
is easy to follow! 

----

_No blogpost soundtrack today, since I wrote this as a quick reference and
there's nothing playing in my flat right now!_