Social Stream NinjaからのOBS操作

Streamer.botを使わず、Event FlowからOBSを直接操作できます。このガイドでは、設定、すべてのOBSトリガーとアクション、実用的なレシピ、従来のドック/ブラウザーソース操作を説明します。

日本語

1. Flow ActionsをOBSに接続する

OBS WebSocket v5はOBS 28以降に組み込まれています。Social Stream Ninjaはこれを使って、OBSのすべての操作やメディアイベントを扱います。

  1. OBSで開く項目: ツール → WebSocketサーバー設定.
  2. WebSocketサーバーを有効にします。既定のポートを維持します: 4455。必要に応じてパスワードを設定します。
  3. Social Stream Ninjaで次を開きます: Flow Actions セクションを開き、OBS WebSocketのURLと任意のパスワードを設定します。
  4. Flow ActionsのURLをコピーして開いたままにします。オーバーレイや音声のアクションには、OBSのブラウザーソースを推奨します。
  5. 使用するもの: OBS WebSocketテスター で、フローを作る前に接続を確認します。
直接URLの例
https://socialstream.ninja/actions.html?session=YOUR_SESSION&obsws=ws://127.0.0.1:4455

追加する項目: &obspw=YOUR_PASSWORD はOBSで認証が必要な場合だけ指定します。次を追加します: &obsdebug=1 を追加すると、問題の診断中に小さな接続状態バッジが表示されます。
Flow Actionsページを起動したままにします。 これはEvent Flowのアクションを受信し、OBS WebSocketのリクエストを送る橋渡し役です。OBSのブラウザーソースとして使う場合は、次をオフにします: 表示されていないときにソースをシャットダウンする(Shutdown source when not visible) (非表示中もソースからOBSを操作し続ける必要がある場合)。
チャット/配信イベント │ ▼ Social Stream Ninja Event Flow │ 同じセッションID ▼ Flow Actionsページ(actions.html) │ OBS WebSocket v5 · ws://127.0.0.1:4455 ▼ OBS Studio

2つのOBS接続モード

モード対応する機能要件
OBS WebSocket v5このガイド内のすべてのトリガーとアクション。OBS 28以降でWebSocketサーバーが有効になっており、Flow Actionsページが開いていること。
OBS Browser Source APIシーン変更、配信の開始/停止、録画の開始/停止、リプレイバッファーの保存に使える代替接続。Advanced Access LevelでOBS内に読み込まれたFlow Actions。ソース、フィルター、テキスト、音量、メディア、再読み込み、メディア終了の機能にはWebSocketが必要です。

2. フローにOBSノードを追加する

  1. 開く項目: Event Flowエディター を開き、フローを作成または編集します。
  2. トリガーをキャンバスにドラッグします。
  3. 展開する項目: OBS Studio をActions一覧で選び、必要なOBSアクションをドラッグします。
  4. トリガーをアクションに接続し、OBSのシーン名/ソース名を正確に設定して保存し、フローを有効にします。
Social Stream NinjaのEvent FlowエディターにあるOBS Studioのアクション一覧
OBS Studioグループには、シーン、ソース、テキスト、メディア、音声、フィルター、出力、リプレイバッファーの操作があります。
OBSの名前は、スペースや句読点も含めて完全に一致する必要があります。ソースアクションが指定するのはOBSの入力名です。シーン項目のラベルを個別に変更した場合、そのラベルではありません。

3. OBSトリガー

OBSが該当イベントを報告すると、これらがフローを開始します。次の形式で届きます: type: "obs"。OBS固有の詳細は次にあります: meta.

トリガー発火するタイミング利用できるデータ
OBS配信開始(OBS Stream Started)配信が開始状態になったとき。meta.outputState, meta.outputActive
OBS配信停止(OBS Stream Stopped)配信が停止状態になったとき。meta.outputState, meta.outputActive
OBS録画開始(OBS Recording Started)録画が開始したとき。meta.outputState
OBS録画停止(OBS Recording Stopped)録画が停止したとき。meta.outputState
OBSシーン変更(OBS Scene Changed)現在のプログラムシーンが変更されたとき。meta.sceneName
OBSメディア終了(OBS Media Ended) WebSocketメディア入力の再生が終了したとき。必要に応じて、Media Source Nameの完全一致で絞り込めます。meta.inputName, meta.inputUuid
OBSリプレイバッファー保存(OBS Replay Buffer Saved)OBSがリプレイの保存を完了したとき。meta.savedReplayPath

4. OBSアクション

操作設定と動作接続
シーンを変更(Change Scene)シーン名の完全一致で、現在のプログラムシーンを切り替えます。WebSocketまたは代替のBrowser Source API
ソースを切り替え(Toggle Source)シーン項目を表示、非表示、または切り替えます。SceneとGroupは対象を指定する任意のフィールドです。WebSocket
テキストソースを設定(Set Text Source)テンプレートのプレースホルダーを使ってText (GDI+)またはText (FreeType 2)を更新します。WebSocket
メディアソースを操作(Control Media Source)再生/再開、一時停止、再スタート、停止、次へ、前へ。WebSocket
ソース音量を設定(Set Source Volume)入力の値を次の範囲で設定します: -100 → +26 dB。WebSocket
ブラウザーソースを再読み込み(Refresh Browser Source)キャッシュを使わずにブラウザーソースを再読み込みします。WebSocket
フィルターを切り替え(Toggle Filter)名前を指定したソースフィルターを有効化、無効化、または切り替えます。WebSocket
音声のミュート/解除(Mute/Unmute Audio)入力をミュート、ミュート解除、または切り替えます。WebSocket
録画開始(Start Recording)OBSの録画を開始します。WebSocketまたは代替のBrowser Source API
録画停止(Stop Recording)OBSの録画を停止します。WebSocketまたは代替のBrowser Source API
配信開始(Start Streaming)設定済みのOBS配信出力を開始します。WebSocketまたは代替のBrowser Source API
配信停止(Stop Streaming)OBSの配信出力を停止します。WebSocketまたは代替のBrowser Source API
リプレイバッファーを操作(Control Replay Buffer)リプレイバッファーを開始、停止、または切り替えます。WebSocket
リプレイバッファーを保存(Save Replay Buffer)現在実行中のリプレイバッファーを保存します。WebSocketまたは代替のBrowser Source API

Set Text Sourceとフロー変数

テキスト欄は、次のような通常のメッセージプレースホルダーに対応しています: {username}, {message}, {source}、および {donation}や、前のフローノードが追加した次のような値: {counterValue}, {counterTarget}、および {counterRemaining}.

{username}: now {counterValue}, need {counterTarget}
カウンターのテンプレート変数を使用したSet Text Sourceのプロパティ
Set Text Sourceは、変数を展開した値を、名前で指定したOBSのテキスト入力に直接書き込みます。
Text (GDI+)またはText (FreeType 2)ソースでは、次をオフにします: ファイルから読み取り(Read from file)。そうしないと、OBSはEvent Flowから送ったテキストではなく、ファイルの内容を表示し続ける場合があります。

メディアソースの操作

再生/一時停止

再生 は一時停止中のメディアを再開します。 一時停止 は現在の再生位置を維持します。

再スタート/停止

再スタート は先頭から再生を開始します。 停止 は再生を終了し、入力をリセットします。

次へ/前へ

VLC Video Sourceなど、プレイリスト対応の入力を前後に移動します。単一ファイルのMedia Sourceでは、これらのアクションが無視される場合があります。

音量、ミュート、フィルター

ソース音量を設定(Set Source Volume) はOBSミキサーと同じdB単位を使用します: 0 dB はゲインを変更せず、負の値は音量を下げます。また、 -100 dB は実質的に無音です。ミュートは別の状態です。Toggle Filterが変更するのは既存フィルターの有効/無効だけで、フィルターの設定は編集しません。

リプレイバッファー

最初に次でリプレイバッファーを有効にします: OBSの設定 → 出力。使う項目: リプレイバッファーを操作(Control Replay Buffer) で開始/停止し、その後、 リプレイバッファーを保存(Save Replay Buffer) で直近のバッファー区間をディスクに保存します。

配信・録画の操作に関する注意: Start/Stop StreamingとStart/Stop Recordingは直ちに実行されます。通常のチャットメッセージで誤って発火しないよう、トリガー、権限、クールダウンを適切に制限してください。

5. 便利なレシピ

OBSで配信中に1時間ごとにメッセージを送信する

Event Flowエディターで次を選択します: テンプレートから開始 → 中級 → OBSで配信中に1時間ごとにメッセージを送信。初期状態では無効で、1つのフローに3つの分岐が含まれています:

  • OBS Stream Started → Set Gate State:ON
  • Time Interval(3600秒)→ ON/OFF Switch → Send Message
  • OBS Stream Stopped → Set Gate State:OFF

両方のSet Gate Stateアクションは、初期値がOFFの同じスイッチを指定済みです。次を編集します: メッセージを送信(Send Message) でチャットプラットフォーム(例ではTwitch)とメッセージを選びます。プラットフォームまたはAll Platformsを選択してください。Reply to SourceではOBSイベントやタイマーに返信できません。

Flow ActionsをOBSに接続するを選び、Social Streamと送信先のチャットを接続したまま、フローを保存して有効にします 配信を開始する前に。スイッチはOBSの開始イベントを待つため、配信中に読み込んでもONにはなりません。Social Streamを再起動した場合もOFFに戻ります。

実行タイミング: インターバルは独自のスケジュールで動くため、最初の通知は配信開始から1時間未満で届く場合があります。その後はスイッチがONの間、1時間ごとに繰り返します。頻度を変えるには、秒単位のTime Intervalの値を変更してください。

OBSでカウンターのテキストを表示する

配置するノード: テキストソースを設定(Set Text Source) をカウンター/チェックの経路の後に配置し、次を使用します:

{username}: now {counterValue}, need {counterTarget}

動画の終了後に処理を実行する

OBSメディア終了(OBS Media Ended) (フィルター条件: Intro Video) → シーンを変更(Change Scene) → Main.

チャットからメディアを再スタートする

メッセージの完全一致(Message Equals) !replayintro → 権限条件 → メディアソースを操作:再スタート.

アラートページを再読み込みする

メッセージの完全一致(Message Equals) !refreshalerts → モデレーター条件 → ブラウザーソースを再読み込み(Refresh Browser Source).

アラート中に音楽の音量を下げる

ソース音量を設定(Set Source Volume) → -24 dB → アラートアクション → Delay → 次の値に戻す: 0 dB.

リプレイのワークフロー

OBS配信開始(OBS Stream Started) → リプレイバッファーを操作:開始。別の信頼できるコマンドで次を実行します: リプレイバッファーを保存(Save Replay Buffer).

6. その他の組み込みOBS操作

Social Stream NinjaのStreaming Chatドックには、従来のOBSブラウザーソース操作もあります。これらはFlow ActionsのWebSocket接続を使いません。

選択肢動作要件
現在のOBSシーンの表示Streaming Chatドックに現在のシーンを表示します。読み取り権限を持ち、OBS内に読み込まれたドック。
ゲストは!cycleを使用できます次のOBSシーンに切り替えます。実行頻度は10秒に1回までです。ポップアップの設定を有効にし、Advancedアクセスを持つドックをOBS内に読み込みます。
権限のあるユーザーは!start/!stopを使用できます信頼できるチャットユーザーの操作で配信を開始または停止します。ポップアップの設定を有効にし、Full/Advancedの操作権限を持つドックをOBS内に読み込みます。
リモートOBS操作パネルシーンを表示します。対象のOBSドックで必要な操作権限が許可されていれば、シーンの切り替えや配信/録画の開始・停止もできます。OBS内で実行しているドックとペアリングされたStreaming Chatドック。
OBS WebSocketテスターEvent Flowを使う前に、バージョン、接続、シーン、個別のリクエストを確認します。テスターを開く

7. トラブルシューティング

問題確認する項目:
何も起きないフローを保存して有効にしていること、Flow Actionsを開いていること、両方で同じセッションIDを使っていることを確認します。
OBSに接続できないWebSocketサーバーが有効で、URLが次の値であること: ws://127.0.0.1:4455で、パスワードが一致していることを確認します。ポート 4444 は旧v4の既定値です。
シーン/ソース/フィルターが見つからないOBSの名前を正確にコピーしてください。表示の切り替えでは、項目が入れ子になっている場合や現在のシーン以外にある場合、SceneまたはGroupを設定します。
テキストが変わらないText (GDI+)またはText (FreeType 2)を使用し、入力名を確認して次を無効にします: ファイルから読み取り(Read from file).
Media Endedが発火しないOBS WebSocket v5と実際のメディア入力を使用してください。ループ再生のメディアは終了状態になりません。
次へ/前へが動作しないVLC Video Sourceなど、プレイリスト対応のソースを使用してください。
リプレイの保存に失敗するOBSの出力設定でリプレイバッファーを有効にし、保存する前に開始してください。
シーンが変わるとアクションが止まる無効にする項目: 表示されていないときにソースをシャットダウンする(Shutdown source when not visible) をFlow Actionsのブラウザーソースでオフにするか、別の場所でページを開いたままにします。
診断の順序:次を開きます: テスター → 次を確認: GetVersion → シーン/入力を確認 → 個別のリクエストをテスト → Event Flow全体をテスト。