C#でOBSを操作する

いろいろ自動化したかったので、OBSをC#から操作する方法を調べました。
その備忘録です。
だいたいみんなPythonなんですかね?
※OBS、obs-websocketはインストールしているものとする。

必要なもの・準備するもの

https://www.nuget.org/packages/obs-websocket-dotnet/

⇒2019のCommunity(Version 16.10.0)でやりました

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

パッケージマネージャコンソールで下記を入力して、実行

Install-Package obs-websocket-dotnet -Version 4.9.0

OBS側の設定

[ツール]タブから「Websocketサーバー設定」
サーバーポートとパスワードを設定
f:id:YaliYalice:20210606232712p:plain

C#で実装

要所要所だけ。。。

  • OBSへ接続
OBSWebsocket obs;
obs = new OBSWebsocket();
obs.Connect(”ws://127.0.0.1:4444”, "パスワード");

Connect関数の第1引数の末尾"4444"はOBS側で設定した「サーバーポート」を書くこと。
第2引数"パスワード" もOBS側で設定したものを入力すること

Connectした後に下記関数を呼ぶとスクリーンショットが撮れる。

obs.TakeSourceScreenshot("ソース", "画像の拡張子", "ファイルパス");

第1引数のソースはOBS側のソース名 ※下記画像参照
第2引数の画像の拡張子は"jpg"、"png"などなど ※第3引数でファイルパスを書けばnullでもOK
第3引数のファイルパスは"C:\test\ss\hoge.png"こんな感じでファイル名まで書くこと。
f:id:YaliYalice:20210606234131p:plain

あとは煮るなり焼くなり好きにしよう。