Get real time Twitch/Youtube events through Streamlabs Socket API
Go to file
2023-06-28 02:47:23 +01:00
examples/debug add debug example 2023-06-28 02:47:23 +01:00
streamlabsio lazy load tomllib/tomli 2023-06-28 02:45:04 +01:00
__main__.py use sio.sleep in example. add note about sio.wait 2022-11-13 14:41:03 +00:00
.gitignore initial commit 2022-11-13 10:07:08 +00:00
LICENSE Initial commit 2022-11-13 08:17:36 +00:00
poetry.lock initial commit 2022-11-13 10:07:08 +00:00
pyproject.toml guard against unwanted events 2022-11-14 19:29:08 +00:00
README.md guard against unwanted events 2022-11-14 19:29:08 +00:00

PyPI version License: MIT Code style: black Imports: isort

A Python client for Streamlabs Socket API

Requirements

  • A Streamlabs Socket API key.
    • You can acquire this by logging into your Streamlabs.com dashboard then Settings->Api Settings->API Tokens

How to install using pip

pip install streamlabsio

How to Use

You may store your api key in a config.toml file, its contents should resemble:

[streamlabs]
token = "<apikey>"

Place it next to your __main__.py file.

Otherwise:

You may pass it as a keyword argument.

Example __main__.py:

import streamlabsio


def on_twitch_event(event, msg):
    print(f"{event}: {msg.attrs()}")


def main():
    with streamlabsio.connect(token="<apikey>") as client:
        client.obs.on("streamlabs", on_twitch_event)
        client.obs.on("twitch_account", on_twitch_event)

        # run for 30 seconds then disconnect client from server
        client.sio.sleep(30)


if __name__ == "__main__":
    main()

note

From the SocketIO docs, client.sio.wait() may be used if your application has nothing to do in the main thread.

Attributes

For event messages you may inspect the available attributes using attrs().

example:

def on_twitch_event(event, msg):
    print(f"{event}: {msg.attrs()}")

Official Documentation