OBS WebSocketとは、OBS Studio(Open Broadcaster Software)をリモートから操作するためのプラグインであり、外部アプリケーションやスクリプトを通じてOBSの機能を制御することが出来ます。
これにより、配信や録画の自動化、カスタムインターフェースの作成、他のアプリケーションとの連携が可能となり便利な機能を追加したりすることが可能です。
OBS WebSocketとは?
OBS WebSocketは、OBS StudioをWebSocket経由でリモート操作するためのプラグインであり、配信や録画の自動化、外部アプリケーションからの操作、インタラクティブな配信体験の構築を可能にします。
シーンの切り替え、ソースの管理、配信や録画の制御、音声ソースのミュートや音量調整、リアルタイムでの状態監視など、幅広い操作をプログラムから実行できます。
インストール方法
OBS WebSocketはOBS Studioに依存しているため、まずOBS Studioがインストールされていることを確認します。まだインストールしていない場合は、OBS Studio公式サイトからOBS Studioをダウンロードしてインストールしてください。
OBS WebSocketはOBS Studioバージョン28.0.0以降に標準で組み込まれています。
それ以前のOBS Studioを使用している場合は、最新のOBS Studioにアップデートすることをおすすめします。
以前であれば、OBS WebSocketの追加プラグインをインストールする必要がありましたが現在はインストールする必要がありません。
OBS WebSockeの確認方法は、「ツール」メニューから「WebSocketサーバー設定」があることを確認してください。
OBS WebSocketの使い方
OBS WebSocketに接続するには、Pythonスクリプトや外部アプリケーションを使用しなければなりません。
今回は、Pythonを使用して接続する方法までを紹介したいと思います。
OBS WebSocketの設定
メニューから「ツール」→「WebSocketサーバー設定」を選択します。
選択することで、「WebSocketサーバー設定」画面が表示されます。
- サーバーの有効化: 「WebSocketサーバーを有効にする」にチェックを入れます。
- ポート番号: デフォルトのポートは
4455
です。必要に応じて変更しますが、通常はこのままで問題ありません。 - 認証の有効化: 「認証を有効にする」にチェックを入れ、パスワードを設定します(セキュリティを強化するために推奨されます)。
設定が完了したら、「適用」をクリックしてから「OK」をクリックして設定を保存します。
これでOBS Studio側の設定が完了です。
サーバーパスワードは、強力なパスワードに設定し、この後スクリプトで使用します。
OBS WebSocketへの接続
今回は、Pythonを使いOBS WebSocketに接続に接続しようと思うのでライブラリをインストールします。
コマンドプロンプトを開き以下のコードを入力します。
pip install obs-websocket-py
今回は接続のテストで、スクリプトを「実行したら録画が開始し、10秒後に録画を終了」するというスクリプトを書いていきたいと思います。
import time
from obswebsocket import obsws, requests, exceptions
# OBS WebSocketの接続設定
HOST = "localhost"
PORT = 4455 # OBS WebSocketのデフォルトポート(5.xの場合)
PASSWORD = "設定したパスワード" # 設定したパスワードを入力(設定していない場合は空)
# WebSocketの接続を確立
def connect_to_obs():
try:
ws = obsws(HOST, PORT, PASSWORD)
ws.connect()
print("Connected to OBS WebSocket.")
return ws
except exceptions.ConnectionFailure as e:
print(f"Failed to connect to OBS: {e}")
return None
# 録画を開始し、10秒後に停止する関数
def start_and_stop_recording(ws):
if ws:
try:
# 録画を開始
ws.call(requests.StartRecord())
print("Recording started.")
# 10秒間待機
time.sleep(10)
# 録画を停止
ws.call(requests.StopRecord())
print("Recording stopped.")
except Exception as e:
print(f"Failed to start/stop recording: {e}")
else:
print("WebSocket is not connected.")
# OBS WebSocket接続の確立
ws = connect_to_obs()
# 録画を開始し、10秒後に停止
if ws:
start_and_stop_recording(ws)
# WebSocket接続を切断
ws.disconnect()
print("Disconnected from OBS WebSocket.")
7行目の”設定したパスワード”部分には、「OBS WebSocketの設定」にある、サーバーパスワードを入力してください。
このスクリプトを実行すると実際に、録画が始まり10秒後に録画が停止しフォルダ内に録画した動画が追加されます。
このように、OBS WebSocketとPythonを組み合わせることで様々なことが出来るようになります。
まとめ
OBS WebSocketとPythonを使用することで、効率的な配信やOBS Studioの操作をすることが可能です。
また、シーンの切り替え自動化したりチャットボットに表示されたテキストに合わせてエフェクトを追加することもできます。
私自身も、OBS WebSocketを使って面白いことが出来そうだと感じたので、アイディアを考えて当サイトで紹介できればと思います!
スクリプトが書けないという方でもChat GPTを使用することでスクリプトを自動で書いてくれるのでアイディアを考えてあとはAIに任せるのも良いかと思います。
今回のスクリプトは、AIに自動で書いてもらいました(笑)