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.
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.
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(())
}This project is licensed under MIT License (or http://opensource.org/licenses/MIT).