About this project

obs-studio-node provides Node.js bindings to libobs, the internal library of OBS Studio, so that its capture, scene-composition and streaming capabilities can be driven from a Node or Electron runtime. The README states that only Windows and macOS are currently supported. Building requires Git, Node.js, Yarn and CMake; on Windows, Visual Studio 2019/2022 and the Windows SDK are also needed, while macOS builds require Xcode. A typical build runs yarn install, initializes git submodules, configures CMake with a chosen CMAKE_INSTALL_PREFIX, and builds the install target. By default a pre-built libobs is downloaded; a custom OBS build can be supplied, but ENABLE_SCRIPTING and ENABLE_UI must be disabled and QTDIR left unset. An OSN_LIBOBS_DEPENDENCY_PREFIX_PATH option supports older local libobs development packages. The JavaScript surface is generated from js/module.ts via tsc into js/module.js and js/module.d.ts, which are committed because they ship in the npm package; yarn build:javascript regenerates them and CI checks for stale outputs. Static analysis targets include cppcheck and a Clang analyzer workflow. Tests are written in TypeScript with Mocha, electron-mocha and Chai, and require a built module plus an ELECTRON_PATH environment variable. Some tests interact with Twitch and can use SLOBS_BE_STREAMKEY as a fallback stream key. Tests can be run in full, filtered by describe name, or debugged through a provided VS Code launch configuration.