React Hooks for working with OBS Studio's obs-browser plugin
use-obs-studio
React hooks for working with the obs-browser JS bindings.
Install
npm install use-obs-studio
Usage
useOBSControlLevel
- Returns the control permission level of the Browser Source, as set by the user.
import { useOBSControlLevel, ControlLevel } from "use-obs-studio";
/**
* enum ControlLevel {
* NONE,
* READ_OBS,
* READ_USER,
* BASIC,
* ADVANCED,
* ALL,
*
* READ_ONLY = READ_USER,
* }
*/
export function ControlLevel() {
const level: ControlLevel | null = useOBSControlLevel();
return <h1>Control Level: {level ?? "Unknown"}</h1>;
}
useOBSCurrentScene
- Subscribes to receiving the current scene.
import { useOBSCurrentScene } from "use-obs-studio";
export function CurrentScene() {
const scene = useOBSCurrentScene();
return (
<div>
<h1>Scene: {scene ? scene.name : ""}</h1>
<p>Width: {scene ? scene.width : ""}</p>
<p>Height: {scene ? scene.height : ""}</p>
</div>
);
}
useOBSStatus
- Subscribes to receiving the current output status of OBS.
import { useOBSStatus } from "use-obs-studio";
export function CurrentStatus() {
const status = useOBSStatus();
return (
<div>
<p>Recording: {status.recording ? "Yes" : "No"}</p>
<p>Recording Paused: {status.recordingPaused ? "Yes" : "No"}</p>
<p>Streaming: {status.streaming ? "Yes" : "No"}</p>
<p>Replay Buffer: {status.replaybuffer ? "Yes" : "No"}</p>
<p>Virtualcam: {status.virtualcam ? "Yes" : "No"}</p>
</div>
);
}
useOBSRecording
- Subscribes to receiving the current recording status of OBS.
import { useOBSRecording } from "use-obs-studio";
export function CurrentRecording() {
const status = useOBSRecording();
return (
<div>
<p>Recording: {status.recording ? "Yes" : "No"}</p>
<p>Recording Paused: {status.recordingPaused ? "Yes" : "No"}</p>
</div>
);
}
useOBSStreaming
- Subscribes to receiving the current streaming status of OBS.
import { useOBSStreaming } from "use-obs-studio";
export function CurrentStreaming() {
const streaming = useOBSStreaming();
return (
<div>
<p>Streaming: {streaming ? "Yes" : "No"}</p>
</div>
);
}
useOBSReplayBuffer
- Subscribes to receiving the current replay buffer status of OBS.
import { useOBSReplayBuffer } from "use-obs-studio";
export function CurrentReplayBuffer() {
const replaybuffer = useOBSReplayBuffer();
return (
<div>
<p>Replay Buffer: {replaybuffer ? "Yes" : "No"}</p>
</div>
);
}
useOBSVirtualcam
- Subscribes to receiving the current virtualcam status of OBS.
import { useOBSVirtualcam } from "use-obs-studio";
export function CurrentVirtualcam() {
const virtualcam = useOBSVirtualcam();
return (
<div>
<p>Virtualcam: {virtualcam ? "Yes" : "No"}</p>
</div>
);
}
useSourceVisible
- Subscribes to receive the current visibility status of the source in OBS.
import { useSourceVisible } from "use-obs-studio";
export function SourceVisible() {
const visible = useSourceVisible();
return <h1>Source Visible: {visible ? "Yes" : "No"}</h1>;
}
useSourceActive
- Subscribes to receive the current active status of the source in OBS (whether it is currently visible in the program feed/output).
import { useSourceActive } from "use-obs-studio";
export function SourceActive() {
const active = useSourceActive();
return <h1>Source Active: {active ? "Yes" : "No"}</h1>;
}
License
MIT © Dillon Pentz (VodBox)