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のインストール
インストールはいつものやつです。
1 |
pip install obs-websocket-py |
OBSのWebSocketサーバー設定
obs-websocketのインストールが完了していると、OBSでツール>WebSocketサーバー設定という項目が追加されているはずです。
こちらからサーバーポートとパスワードを設定し、OKボタンを押下します。
ドキュメント
こちらを見るのが一番だと思います。
サンプル
公式サンプル(シーン変更)の他に使いそうな内容のサンプルをあげておきます。
気が向いた時に徐々に追加していくかもです。
テキスト変更
テキスト(GDI+)のテキスト変更サンプルです。
アクティブシーンのソース名称を用いて、テキストを変更する動きです。
※SetTextGDIPlusPropertiesを使用する方が適切かと思いますが、とりあえずテキスト変更程度なら下記でも動きます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
from obswebsocket import obsws, requests #テキスト変更関数 def obsTextChange(source_name: str, strtext: str): ws.call(requests.SetSourceSettings(source_name, {"text": strtext})) host = "localhost" port = 4444 password = "設定したパスワード" ws = obsws(host, port, password) ws.connect() obsTextChange("変更したいソース名称", "変更後文字列") ws.disconnect() |
最近のコメント