obs-websocketとは
obs-websocketはOBSをネットワーク経由で外部から操作するためのAPIです。
OBS 28以降は標準搭載されています。
活用例:
・スマートフォンからOBSを操作
・StreamDeckとの連携強化
・カスタムスクリプト・ツールでOBSを自動操作
・Touch Portalなどのコントローラーアプリとの連携
obs-websocketの有効化
OBS → ツール → obs-websocketサーバー設定
サーバーを有効化: チェックをオン
サーバーポート: 4455(デフォルト)
認証を有効にする: チェック(推奨)
パスワード: 任意のパスワードを設定
→ OK
スマートフォンからOBSを操作する(Touch Portal)
Touch PortalはiOS/Androidで動作するコントロールアプリです。
1. スマートフォンにTouch Portalをインストール
2. OBSプラグインをTouch Portalのプラグインページからインストール
3. OBSとの接続設定:
IPアドレス: PCのローカルIPアドレス(例: 192.168.1.100)
ポート: 4455
パスワード: 設定したパスワード
4. ボタンを配置してOBSのシーン切り替え等を操作
OBSのリモートコントロールアプリ
| アプリ名 | プラットフォーム | 特徴 |
|---|---|---|
| Touch Portal | iOS / Android | 高機能・カスタマイズ可能 |
| Deckboard | Android | 無料・シンプル |
| OBS Remote | iOS | OBS専用 |
| StreamDeck Mobile | iOS / Android | Elgato公式 |
OBS Webコントロール(ブラウザ)
OBSには簡易的なブラウザコントロールがあります。
OBS → ツール → obs-websocketサーバー設定
→「Webソケット サーバー情報をコピー」
→ ブラウザで obs-websocket対応のWebアプリを開く
プログラムからOBSを操作する
Python・Node.js等からobs-websocketを使ってOBSを自動制御できます。
Python(obs-websocket-pyライブラリ)
# インストール: pip install obs-websocket-py
from obswebsocket import obsws, requests
ws = obsws("localhost", 4455, "パスワード")
ws.connect()
# シーンを切り替える
ws.call(requests.SetCurrentProgramScene(sceneName="ゲームシーン"))
ws.disconnect()
JavaScriptライブラリ
obs-websocket-js を使用
npm install obs-websocket-js
APIでできる主な操作
| 操作 | APIリクエスト |
|---|---|
| シーン切り替え | SetCurrentProgramScene |
| 録画開始/停止 | StartRecord / StopRecord |
| 配信開始/停止 | StartStream / StopStream |
| ソースの表示/非表示 | SetSceneItemEnabled |
| 音声ミュート | SetInputMute |
| 音量変更 | SetInputVolume |
セキュリティの注意点
obs-websocketはポートを開放するため:
・パスワードを必ず設定する
・外部ネットワークへの公開はしない
(ローカルネットワーク内のみで使用)
・使わない場合はサーバーを無効化する
検証環境
CPU: Intel Core i9-14900K
GPU: Nvidia RTX 5070 Ti
メモリ: DDR5 64GB (32GB×2) 6000MHz
SSD: 3ドライブ構成
電源: 1000W
CPUクーラー: ROG RYUJIN III 360
OBS: 32.0.4
まとめ
- OBS 28以降はobs-websocketが標準搭載
- ツール→obs-websocketサーバー設定でサーバーを有効化する
- スマートフォンから操作するにはTouch Portal等のアプリを使う
- プログラムからOBSを制御するならobs-websocket-py(Python)等
- セキュリティのためパスワードを設定する