Короткий ответ: obs websocket нужен, чтобы управлять OBS Studio извне: переключать сцены, получать статус записи, менять источники, реагировать на события. В OBS Studio 28 и новее WebSocket уже встроен. Обычно достаточно открыть Tools -> obs-websocket Settings, включить сервер, поставить пароль и подключиться к адресу ws://127.0.0.1:4455
Если у вас свежий OBS, отдельный плагин чаще не нужен. Отдельный obs-websocket скачивают в основном для старых версий OBS
Что проверить в OBS
Откройте OBS Studio и проверьте:
- меню
Tools; - пункт
obs-websocket Settings; - порт, обычно
4455; - включена ли аутентификация;
- какой пароль задан.
Пароль лучше не отключать. Через WebSocket можно управлять сценами и источниками, поэтому открытый доступ к OBS — плохая идея даже на локальной машине
Подключение из JavaScript
Самый удобный путь для практики — использовать готовую клиентскую библиотеку:
mkdir obs-ws-demo
cd obs-ws-demo
npm init -y
npm install obs-websocket-js
Создайте index.mjs:
import OBSWebSocket from "obs-websocket-js";
const obs = new OBSWebSocket();
try {
await obs.connect("ws://127.0.0.1:4455", "ВАШ_ПАРОЛЬ");
console.log("Подключились к OBS");
const version = await obs.call("GetVersion");
console.log("OBS:", version.obsVersion);
console.log("obs-websocket:", version.obsWebSocketVersion);
const scene = await obs.call("GetCurrentProgramScene");
console.log("Текущая сцена:", scene.currentProgramSceneName);
await obs.disconnect();
} catch (error) {
console.error("Ошибка подключения:", error);
}
Запустите:
node index.mjs
Если пароль и порт указаны правильно, в терминале появится версия OBS и название текущей сцены
Как переключить сцену
Когда подключение работает, можно отправить команду:
await obs.call("SetCurrentProgramScene", {
sceneName: "Scene 2",
});
Название сцены должно совпадать с тем, что есть в OBS. Если сцены Scene 2 нет, OBS вернет ошибку
Для диагностики сначала получите список сцен:
const scenes = await obs.call("GetSceneList");
for (const scene of scenes.scenes) {
console.log(scene.sceneName);
}
Так вы не будете гадать, как именно называется сцена в OBS
Что происходит под капотом
obs-websocket использует обычное WebSocket-соединение, но поверх него работает собственный протокол OBS. После подключения OBS отправляет сообщение Hello, клиент отвечает Identify, а затем можно отправлять Request и получать RequestResponse
На практике новичку не обязательно руками собирать все эти JSON-сообщения. Клиентская библиотека делает рукопожатие, а вы работаете с понятными вызовами вроде GetVersion, GetSceneList, SetCurrentProgramScene
Частые ошибки
ECONNREFUSED или похожая ошибка означает, что OBS не запущен, WebSocket-сервер выключен или порт указан неверно
Ошибка аутентификации означает неправильный пароль. Проверьте настройки obs-websocket Settings и не путайте пароль от трансляции с WebSocket-паролем
Если код подключается к localhost, а OBS запущен на другой машине, используйте IP этой машины и проверьте firewall. Для удаленного доступа особенно важно оставить пароль и не открывать порт в интернет без защиты
Если команда переключения сцены не работает, сначала получите список сцен через GetSceneList. В названиях важны пробелы, регистр и символы
Самопроверка
Сделайте три шага:
- Получите
GetVersion. - Получите
GetSceneList. - Переключитесь на одну из реально существующих сцен.
Если все три шага проходят, obs websocket настроен правильно: OBS принимает соединение, авторизация работает, клиент отправляет команды, а OBS меняет состояние
Что почитать дальше по WebSocket
Если нужен общий маршрут по теме, откройте рубрику WebSocket. Для соседних задач пригодятся эти разборы:
- OBS WebSocket скачать: как установить плагин и проверить подключение
- OBS Web: как связать OBS с веб-управлением через WebSocket
- OBS WebSocket: подключение к стриму и автоматизация сцен
- WSS: что это и как использовать защищенный WebSocket



