使用 Social Stream Ninja 控制 OBS

直接從 Event Flow 控制 OBS,無需 Streamer.bot。本指南涵蓋設定、所有 OBS 觸發條件和動作、實用方案,以及舊版停駐面板/瀏覽器來源控制項。

繁體中文

1. 將 Flow Actions 連接至 OBS

OBS WebSocket v5 內建於 OBS 28 及更新版本。Social Stream Ninja 使用它進行完整的 OBS 控制並接收媒體事件。

  1. 在 OBS 中,開啟 工具 → WebSocket 伺服器設定(Tools → WebSocket Server Settings).
  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。
Chat / stream event │ ▼ Social Stream Ninja Event Flow │ same session ID ▼ Flow Actions page (actions.html) │ OBS WebSocket v5 · ws://127.0.0.1:4455 ▼ OBS Studio

兩種 OBS 連接模式

模式支援內容需求
OBS WebSocket v5本指南中的每個觸發條件和動作。OBS 28+、已啟用 WebSocket 伺服器、Flow Actions 頁面已開啟。
OBS 瀏覽器來源 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 或瀏覽器來源 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 或瀏覽器來源 API 備援方式
停止錄製(Stop Recording)停止 OBS 錄製。WebSocket 或瀏覽器來源 API 備援方式
開始直播(Start Streaming)啟動已設定的 OBS 直播輸出。WebSocket 或瀏覽器來源 API 備援方式
停止直播(Stop Streaming)停止 OBS 直播輸出。WebSocket 或瀏覽器來源 API 備援方式
控制重播緩衝區(Control Replay Buffer)啟動、停止或切換重播緩衝區。WebSocket
儲存重播緩衝區(Save Replay Buffer)儲存目前正在執行的重播緩衝區。WebSocket 或瀏覽器來源 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 傳送的文字。

媒體來源控制項

播放 / 暫停(Play / Pause)

播放(Play) 繼續播放暫停的媒體。 暫停(Pause) 保持目前位置。

重新開始 / 停止(Restart / Stop)

重新開始(Restart) 從頭開始。 停止(Stop) 結束播放並重設輸入。

下一個 / 上一個(Next / Previous)

在支援播放清單的輸入(例如 VLC Video Source)中移動。單一檔案的 Media Source 可能忽略這些動作。

音量、靜音和濾鏡

設定來源音量(Set Source Volume) 使用 dB,與 OBS 混音器刻度一致: 0 dB 表示增益不變,負值更安靜,而 -100 dB 實際相當於靜音。Mute 是單獨的狀態。Toggle Filter 僅變更現有濾鏡的啟用狀態,不會編輯濾鏡設定。

重播緩衝區

首先在以下位置啟用重播緩衝區: OBS 設定 → 輸出(Settings → Output)。使用 控制重播緩衝區(Control Replay Buffer) 以啟動/停止它,然後 儲存重播緩衝區(Save Replay Buffer) 將最近緩衝的片段寫入磁碟。

直播輸出警告: Start/Stop Streaming 和 Start/Stop Recording 會立即執行。使用嚴格的觸發條件、權限和冷卻時間,防止一般聊天訊息意外觸發它們。

5. 實用方案

OBS 直播期間每小時傳送訊息

在 Event Flow 編輯器中,選擇 從範本開始 → 中階 → OBS 直播期間每小時傳送訊息(Start with a template → Intermediate → Hourly message while OBS is live)。它初始為停用狀態,在一個流程中包含三個分支:

  • OBS Stream Started → Set Gate State: ON
  • Time Interval (3600 seconds) → 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。

時序: 間隔依自己的排程執行,因此第一次提醒可能在開播後一小時以內抵達。之後,當開關為 ON 時,提醒每小時重複。變更 Time Interval 值可調整頻率;單位為秒。

OBS 中的計數器文字

放置 設定文字來源(Set Text Source) 放在計數器/檢查路徑之後,並使用:

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

影片結束後執行某項動作

OBS 媒體結束(OBS Media Ended) (篩選為 Intro Video) → 切換場景(Change Scene) 為 Main.

由聊天控制的媒體重新啟動

訊息等於(Message Equals) !replayintro → 權限條件 → 控制媒體來源:重新開始(Control Media Source: Restart).

重新整理提醒頁面

訊息等於(Message Equals) !refreshalerts → 管理員條件 → 重新整理瀏覽器來源(Refresh Browser Source).

提醒期間降低音樂音量

設定來源音量(Set Source Volume) 為 -24 dB → 提醒動作 → Delay → 還原為 0 dB.

重播工作流程

OBS 直播開始(OBS Stream Started) → 控制重播緩衝區:開始(Control Replay Buffer: Start);另一個可信命令執行 儲存重播緩衝區(Save Replay Buffer).

6. 其他內建 OBS 控制項

Social Stream Ninja 在 Streaming Chat 停駐面板中也有舊版 OBS 瀏覽器來源控制項。這些控制項不使用 Flow Actions WebSocket 橋接。

選項功能需求
目前 OBS 場景指示器在 Streaming Chat 停駐面板中顯示目前場景。以讀取權限載入於 OBS 內的停駐面板。
訪客可以使用 !cycle循環切換至下一個 OBS 場景,頻率限制為每 10 秒一次。啟用彈出視窗選項;停駐面板以 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 or Group。
文字沒有變化使用 Text (GDI+) 或 Text (FreeType 2),確認輸入名稱,並停用 從檔案讀取(Read from file).
Media Ended 從不觸發使用 OBS WebSocket v5 和真實媒體輸入。循環媒體不會達到結束狀態。
Next/Previous 沒有效果使用支援播放清單的來源,例如 VLC Video Source。
儲存重播失敗在 OBS 輸出設定中啟用重播緩衝區,並在儲存前啟動它。
場景變化時動作停止停用 不可見時關閉來源(Shutdown source when not visible) 在 Flow Actions 瀏覽器來源上,或在其他位置保持頁面開啟。
診斷順序:開啟 測試器 → 確認 GetVersion → 確認場景/輸入 → 測試個別請求 → 測試完整 Event Flow。