obws/examples/screenshot.rs

35 lines
811 B
Rust
Raw Normal View History

2020-12-27 13:52:56 +00:00
use std::env;
use anyhow::Result;
use obws::{requests::SourceScreenshot, Client};
2020-12-27 13:52:56 +00:00
use tokio::fs;
#[tokio::main]
async fn main() -> Result<()> {
dotenv::dotenv().ok();
env::set_var("RUST_LOG", "obws=debug");
pretty_env_logger::init();
let client = Client::connect("localhost", 4444).await?;
client.login(env::var("OBS_PASSWORD").ok()).await?;
let screenshot = client
.sources()
.take_source_screenshot(SourceScreenshot {
source_name: "Start",
2020-12-29 03:08:48 +00:00
embed_picture_format: Some("png"),
..Default::default()
2020-12-27 13:52:56 +00:00
})
.await?;
let image = screenshot.img.unwrap();
let pos = image.find("base64,").unwrap();
let image = base64::decode(&image[pos + 7..])?;
fs::write("screenshot.png", &image).await?;
Ok(())
}