OBSをPythonから制御してみる

はじめに

最近Youtubeで配信を始めて、配信ソフトとしてOBSを使用しているまりもです。
こちらのチャンネルで配信していますので、見に来てもらえると嬉しいです。

配信している時に、PythonからOBSを触れたら便利だなぁと思うことが多々あり、
ある程度触れるようになったので、備忘録としてまとめておきます。

準備

obs-websocketのインストール

まず、OBSを外部から制御する上で欠かせないobs-websocket(プラグイン)を導入します。
これを導入することにより、WebSocketを用いた通信でOBSの様々な制御が行えるようになります。

私が導入した時点ではver4.9.1が最新リリースで、ver5.0.0-alpha3がプレリリースとしての最新でしたが、基本的に最新リリース(Latest)のもの(ここでは4.9.1)を導入してください。
※プレリリース版で実装された内容によってはobs-websocket-pyと嚙み合わずエラーになります。

obs-websocket-pyのインストール

インストールはいつものやつです。

OBSのWebSocketサーバー設定

obs-websocketのインストールが完了していると、OBSでツール>WebSocketサーバー設定という項目が追加されているはずです。
こちらからサーバーポートとパスワードを設定し、OKボタンを押下します。

ドキュメント

こちらを見るのが一番だと思います。

サンプル

公式サンプル(シーン変更)の他に使いそうな内容のサンプルをあげておきます。
気が向いた時に徐々に追加していくかもです。

テキスト変更

テキスト(GDI+)のテキスト変更サンプルです。
アクティブシーンのソース名称を用いて、テキストを変更する動きです。
※SetTextGDIPlusPropertiesを使用する方が適切かと思いますが、とりあえずテキスト変更程度なら下記でも動きます。