Stéphane Lepin 68db13fc24
Merge pull request #549 from Palakis/feature/more-output-statuses
Requests: Add Replay Buffer and Recording Statuses
2020-07-03 14:29:25 +02:00
2018-12-31 20:23:16 +01:00
2016-10-10 00:33:56 +02:00
2020-04-07 17:35:49 +02:00
2018-10-19 18:22:34 +02:00
2017-11-14 10:09:14 +01:00
2016-11-16 13:52:12 +01:00

obs-websocket

WebSockets API for OBS Studio.

Discord Build Status Twitter

Downloads

Binaries for Windows, MacOS, and Linux are available in the Releases section.

Using obs-websocket

A web client and frontend made by t2t2 (compatible with tablets and other touch interfaces) is available here : http://t2t2.github.io/obs-tablet-remote/

It is highly recommended to protect obs-websocket with a password against unauthorized control. To do this, open the "Websocket server settings" dialog under OBS' "Tools" menu. In the settings dialogs, you can enable or disable authentication and set a password for it.

Connecting over a TLS/secure connection (or remotely)

Before doing this, secure the WebSockets server first by enabling authentication with a strong password!

If you want to expose the WebSockets server of obs-websocket over a secure TLS connection (or to connect remotely), the easiest approach is to use a localhost tunneling service like ngrok or pagekite.

Please bear in mind that doing this will expose your OBS instance to the open Internet and the security risks it implies. You've been warned!

ngrok

Install the ngrok CLI tool, then start ngrok bound to port 4444 like this:

ngrok http 4444

The ngrok command will output something like this:

ngrok by @inconshreveable

Tunnel Status                 online
Version                       2.0/2.0
Web Interface                 http://127.0.0.1:4040
Forwarding                    http://TUNNEL_ID.ngrok.io -> localhost:4444
Forwarding                    https://TUNNEL_ID.ngrok.io -> localhost:4444

Where TUNNEL_ID is, as the name implies, the unique name of your ngrok tunnel. You'll get a new one every time you start ngrok.

Then, use wss://TUNNEL_ID.ngrok.io to connect to obs-websocket over TLS.

See the ngrok documentation for more tunneling options and settings.

PageKite

Install the PageKite CLI tool, then start PageKite bound to port 4444 like this (replace NAME with one of your choosing):

$ python pagekite.py 4444 NAME.pagekite.me

Then, use wss://NAME.pagekite.me to connect to obs-websocket over TLS.

Possible use cases

  • Remote control OBS from a phone or tablet on the same local network
  • Change your stream overlay/graphics based on the current scene
  • Automate scene switching with a third-party program (e.g. : auto-pilot, foot pedal, ...)

For developers

The server is a typical Websockets server running by default on port 4444 (the port number can be changed in the Settings dialog). The protocol understood by the server is documented in PROTOCOL.md.

Here's a list of available language APIs for obs-websocket :

I'd like to know what you're building with or for obs-websocket. If you do something in this fashion, feel free to drop a message in #project-showoff in the discord server!

Compiling obs-websocket

See the build instructions.

Contributing

See the contributing document

Translations

Your help is welcome on translations.

Please join the localization project on Crowdin

Special thanks

Thank you so much to all of the contibutors (here) for your amazing help.

And also: special thanks to supporters of the project!

Supporters

These supporters have contributed financially to the project and made possible the addition of several features into obs-websocket. Many thanks to them!


Support Class designs and develops professional livestreams, with services ranging from broadcast graphics design and integration to event organization, along many other skills.

Support Class


MediaUnit is a Norwegian media company developing products and services for the media industry, primarly focused on web and events.

MediaUnit

Description
No description provided
Readme 65 MiB
Languages
C++ 94.7%
C 2.6%
CMake 2.5%
Shell 0.2%