Skip to content

dnaka91/obws

Repository files navigation

OBWS - The obws (obvious) remote control library for OBS

Repository Documentation Code Coverage

Remote control OBS with the obs-websocket plugin from Rust 🦀.

Important

If you're viewing this project from GitHub, please note that the source is now living at my own forge and this is a mirror. Issues and PRs can still be opened here as well for the time being.

An article about this move will be posted at some point in the future.

Usage

Add obws to your project with cargo add obws@0.15.0 or add it manually to your Cargo.toml:

[dependencies]
obws = "0.15.0"

In addition, you will need to use the latest tokio runtime to use this library as it makes heavy use of async/await and is bound to this runtime.

Example

Here we connect to a OBS instance, get some version information and log in to access the whole API and lastly print out a list of available scenes.

For more usage instructions see the docs or check out the examples.

use anyhow::Result;
use obws::Client;

#[tokio::main]
async fn main() -> Result<()> {
    // Connect to the OBS instance through obs-websocket.
    let client = Client::connect("127.0.0.1", 4455, Some("password")).await?;

    // Get and print out version information of OBS and obs-websocket.
    let version = client.general().version().await?;
    println!("{version:#?}");

    // Get a list of available scenes and print them out.
    let scene_list = client.scenes().list().await?;
    println!("{scene_list:#?}");

    Ok(())
}

License

This project is licensed under MIT License (or http://opensource.org/licenses/MIT).

About

The obws (obvious) remote control library for OBS

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

 
 
 

Contributors