【2026年版】OBS WebSocketとPythonで動画配信を自動化する方法まとめ

タイトル。OBS WebSocketまとめ OBS

obs-websocket-py(OBS Websocket v4準拠)を使ってツールを作っていたら、「あれ・・・?obsws-python(OBS WebSocket v5)があるじゃん・・・」と気づいたのでココに情報を残します。

今後はOBS WebSocket v5がメインとなるとのことなので、obs-websocket-py(OBS WebSocket v4準拠)でいろいろ作ったツールをobsws-python(OBS WebSocket v5準拠)に修正していきます。

ここではv4とv5の違いについて触れながら、obsws-pythonの使い方を説明します。

OBS WebSocket v4からきた方は変化点抜粋からどうぞ。

OBS WebSocketとは

OBS WebSocketとは、配信ソフトウェア「OBS Studio」を外部から制御するための拡張機能(プラグイン)です。  

通常、OBSの操作はGUI上で行いますが、OBS WebSocketを導入すると WebSocket通信を介して外部プログラムからOBSを操作できるようになります。

OBS WebSocketでできること

PythonやJavaScriptなどのスクリプトから以下のような制御が可能になります。

– 録画や配信の開始・停止を自動化
– シーンの切り替えやソースの変更を外部から実行 
– シーンアイテム(テキスト・画像・動画)の表示/非表示を制御 
– リプレイバッファの操作

v4とv5の違い

変更点は以下のようです。

OBS WebSocket v5 は v4 から大幅に刷新され、API 名や構造が統一されました。
sceneItemId や inputName を使った厳密な操作が可能になり、機能も大幅に拡張。
その分コードは少し複雑になりますが、より柔軟で正確な制御ができます。

私の場合はOBS WebSocket APIを直接呼び出している作り方なので、以下2点を修正します。

  • obsws-pythonに合わせたOBS WebSocket APIの呼び出し方法
  • OBS WebSocket v5のレスポンス構造の統一化に伴う取り出し方法

変化点抜粋

ここに辿りついた人はある程度触ったことがある人だと思うので必要そうな情報を抜粋します。
もっと詳細に書いてほしいなどの要望があれば追記・補足します。

APIを直接呼び出す方法を取っているため、obsws-pythonで提供されている機能を使いたい方は公式のGitHubを確認してください。

やりOBS Websocket v4OBS WebSocket v5
インストールpip install obs-websocket-pypip install obsws-python
インポートfrom obswebsocket import obswsimport obsws_python as obsws
接続obsws(host,port,password)obsws.ReqClient(host=host, port=port, password=password)
録画開始ws.call(obs_req.StartRecord())ws.base_client.req(“StartRecord”)
録画終了ws.call(obs_req.StopRecord())ws.base_client.req(“StopRecord”)
シーンアイテムの有効と無効ws.call(obs_req.SetSceneItemEnabled(~)ws.base_client.req(“SetSceneItemEnabled”,{~})
シーンアイテムの変更ws.call(obs_req.SetInputSettings(~))ws.base_client.req(“SetInputSettings”,{~})
シーンアイテムの作成ws.call(obs_req.CreateInput(~))ws.base_client.req(“CreateInput”,{~})
シーンアイテムの削除ws.call(obs_req.RemoveSceneItem(~))ws.base_client.req(“RemoveSceneItem”,{~})

使い方

以下に具体的な使い方を記載しています。

コメント

タイトルとURLをコピーしました