Resource icon

Connect OBS Studio With Any App Using Integromat / Zapier - Easy Automation Tutorial - No Coding!

Hi there! After a lot of fiddling, I've figured a way to connect OBS with automation platforms like Integromat and Zapier.

I want to say that I am aware that there are better solutions out there, that will allow for more functionality, like using obs-websocket and building APIS, or using tunnels to for webhooks on your local machine, but which also are a bit more complicated for the average OBS user (like myself) who don't like to set up all sorts of things. I like to think of creative ways to achieve stuff in an easier way and that are easy to pass of to others.

Summary:
  • Trigger automation workflows from OBS actions/states
  • Trigger OBS actions from automation softwares
  • (So, they work both ways!)
  • No coding skills needed. No server setup/port forwarding/remote access.
  • Easy & understandable logic
GIF Demonstration: https://i.imgur.com/TMxRBxm.gifv

This guide is a dumbed down version. Feel free to watch the video tutorial for more in-depth explanations.


If you prefer reading, keep reading!

Requirements:
- Advanced Scene Switcher

How to trigger OBS actions from automation softwares
So. We're using Dropbox as a "middle-man" to make the link between OBS and automation softwares work. We are using Advanced Scene Switcher macros to check the contents of a txt file in dropbox. If the file contains a phrase we choose, it will execute the action. So, with an automation platform, we simply update that txt file with whatever triggerword we want.

Okay, for example, let's say we want to trigger a scene switch in OBS from a checkbox in Google Sheets.

The automation workflow in Integromat/Zapier would look like this:
When we click the checkbox -> Update dropbox txt file with "switch_to_scene_2" (for example)

1647564416024.png


The macro in OBS would look like this:
If local file dropbox txt file matches "switch_to_scene_2" -> Switch scene

1647561205586.png

And just like that, magically, the scene has switched in OBS from a google sheet document.

IMPORTANT: Make sure to tick the box that says "Perform actions only on condition change".

So, that's all there is to it, really. You simply use triggerwords in a txt document to trigger anything you want in OBS from an automation platform.


How to trigger automation workflows/scenarios from OBS

And then there's the other way. How can you trigger an automation workflow in for example Integromat when something happens in OBS?

What we are doing is using webhooks as triggers in our automation platform. We will use OBS to send a request to that webhook, which will start the scenario/workflow. Easy-peasy! You can even pass on parameters to be used in the workflow!

Advanced Scene Switcher allows you to run stuff. We will run curl.exe to send a simple web request to webhook url provided by the automation platform.

Let's say we want to send a slack message when we hit the record button.

What Integromat/Zapier scenario would look like:
When webhook (wwww.webhookurlhere.com) receives signal -> run scenario

1647564498241.png


What OBS Macro would look like:
When we click "Start Record" -> Run curl.exe with "www.webhookurlhere.com" as an argument.

1647563252680.png


And magically..we've executed a scenario in a web-app from OBS!

You can add parameters to the end of the URL in OBS to act as triggers/filters in the scenario. This way, there is no need to have a bunch of separate webhooks and scenarios. You can keep everything in one scenario and using only one single webhook, and just use filters.

For example:
The base webhook url (provided to you by the module in the scenario. Just copy/paste).

In one OBS macro we could have a workflow trigger on record. So, we add a text to the end of the url.

So, when we press record, a signal will be sent to the webhook in Integromat (in this example) with that triggerword.

Here's what it receives:
1647564178390.png


In another macro we could trigger another workflow when dropped framed are detected

So, this is an example of how the scenario would look like. The webhook receives a signal. Then it gets filtered with these different triggerwords. If the triggerword is "started_recording", it goes one route and sets off a module. If it's "dropped_frames", it could go another route. You probably get it.

1647564020643.png



(The triggerword can be anything. You just need to make sure the triggerword is the same between the url-parameter and the filter in the automation workflow)

I think that pretty much covers the basics of what's possible using this little trick. Thanks for reading! :)

PS: The webhooks shown in this guide are inactive. So, no need to try ;)
Author
nicwillu
Views
6,759
First release
Last update
Rating
0.00 star(s) 0 ratings
Top