透過內建指令、自動化和 API 整合控制 Social Stream Ninja
Social Stream Ninja 包含多個內建指令,觀眾可以在聊天中使用,你也可以透過 API 觸發。
| 指令 | 說明 | 如何啟用 |
|---|---|---|
!joke |
隨機回覆一個極客風格的冷笑話 | 透過擴充功能選單開關啟用 |
hi |
自動歡迎在聊天中說「hi」的人 | 透過擴充功能選單開關啟用 |
!cycle |
啟用後,允許觀眾變更 OBS 場景 | 透過擴充功能選單開關啟用 |
注意: 只有正確設定自動回覆器,並且你有權在相應平台發佈訊息時,機器人指令才會生效。
要使自動回覆器正常運作:
若要隱藏觸發自動回覆時出現的藍色偵錯列,可在啟動 Chrome 時使用 --silent-debugger-extension-api 旗標。
Social Stream Ninja 提供強大的 API,讓你可以透過程式控制直播設定的各個方面。API 伺服器既可向你的設定傳送指令,也可監聽從整合的聊天服務傳入的訊息。
控制精選訊息、清除疊加畫面,並調整直播內容的外觀。
接收來自 Stripe、Ko-Fi 和 Buy Me A Coffee 等第三方服務的事件。
將聊天訊息匯出到檔案,或透過 webhook(POST)轉送,以實作自訂整合。
必要設定(全域設定 → 機制):
請參閱 完整 API 文件 ,瞭解詳細的設定指南和程式碼範例。
https://io.socialstream.ninja/{sessionID}/{action}/{target}/{value}
適合從 Stream Deck 或自訂指令碼傳送簡單指令。
wss://io.socialstream.ninja:443
用於即時雙向通訊,支援自動重新連線。
如果希望保持點對點連線而不啟用 WebSocket 模式,可以使用 Social Stream Ninja WebRTC SDK。它包含 Node 和瀏覽器範例,例如 Social Stream Ninja 監聽器.
https://io.socialstream.ninja/sse/{sessionID}
用於接收伺服器的單向即時更新。
API 使用頻道系統進行訊息路由:
- Channel 1: Remote control commands (default for StreamDeck/Bitfocus) - Channel 2: Dock page output - Channel 3: Extension receives commands from Dock - Channel 4: Chat messages from Extension (use this to receive Twitch/YouTube chat!) - Channel 5: Waitlist/giveaway communication - Channels 6-9: Reserved for future use
使用所需頻道進行連線:
// To receive chat messages (listen on channel 4): wss://io.socialstream.ninja/join/SESSION_ID/4 // To send commands (channel 1 default): wss://io.socialstream.ninja/join/SESSION_ID
| 操作 | 說明 | 範例 |
|---|---|---|
sendChat |
向所有已連接的聊天平台傳送訊息 | https://io.socialstream.ninja/SESSIONID/sendChat/null/Hello everyone! |
sendEncodedChat |
向所有平台傳送 URL 編碼的訊息 | https://io.socialstream.ninja/SESSIONID/sendEncodedChat/null/Hello%20everyone%21 |
clearOverlay |
從疊加畫面中清除精選訊息 | https://io.socialstream.ninja/SESSIONID/clearOverlay |
nextInQueue |
顯示佇列中的下一則訊息 | https://io.socialstream.ninja/SESSIONID/nextInQueue |
autoShow |
切換訊息自動精選功能 | https://io.socialstream.ninja/SESSIONID/autoShow/toggle |
blockUser |
封鎖某個特定平台上的使用者 | https://io.socialstream.ninja/SESSIONID/blockUser/null/{"chatname":"username","type":"twitch"} |
extContent |
將外部內容作為聊天訊息傳送 | https://io.socialstream.ninja/SESSIONID/extContent/null/{"chatname":"User","chatmessage":"Hello"} |
pin |
按訊息 ID 置頂停駐面板中已有的訊息,或置頂完整的訊息物件。需要 dock.html 在同一個工作階段中保持開啟。 |
https://io.socialstream.ninja/SESSIONID/pin/null/MESSAGE_MID |
unpin |
按訊息 ID 取消停駐面板中已有訊息的置頂。對於帶標籤的停駐面板,請使用 target 欄位/路徑區段。 | https://io.socialstream.ninja/SESSIONID/unpin/null/MESSAGE_MID |
nextPinned |
將停駐面板中第一則置頂訊息設為精選。 | https://io.socialstream.ninja/SESSIONID/nextPinned |
removefromwaitlist |
移除第一個有效的等候名單項目,或下列參數指定編號的有效項目: value |
https://io.socialstream.ninja/SESSIONID/removefromwaitlist/null/1 |
highlightwaitlist |
醒目顯示第一個有效的等候名單項目,或下列參數指定編號的有效項目: value |
https://io.socialstream.ninja/SESSIONID/highlightwaitlist/null/1 |
stopentries / startentries |
停止或恢復接收新的等候名單報名,不會清除現有名單。 openentries 和 resumeentries 是下列指令的別名: startentries. |
https://io.socialstream.ninja/SESSIONID/stopentries |
selectwinner |
從等候名單/抽獎中隨機選出一個或多個獲勝者 | https://io.socialstream.ninja/SESSIONID/selectwinner/null/1 |
downloadwaitlist |
從執行中的 Social Stream 頁面/應用程式下載目前的等候名單,格式為 TSV 檔案 | https://io.socialstream.ninja/SESSIONID/downloadwaitlist |
drawmode |
開啟/關閉抽獎模式,或在下列條件成立時切換: value 等於 toggle |
https://io.socialstream.ninja/SESSIONID/drawmode/null/toggle |
waitlistmessage |
設定等候名單頁面顯示的等候名單或抽獎標題訊息 | https://io.socialstream.ninja/SESSIONID/waitlistmessage/null/Type%20!join%20to%20enter |
resetwaitlist |
清空等候名單並重新開放報名 | https://io.socialstream.ninja/SESSIONID/resetwaitlist |
使用我們的互動式沙箱試用 API,輕鬆存取所有指令和功能:
如需在 OBS 中使用更精簡的直播控制按鈕,請使用 Social Stream 控制停駐面板 並遵循 OBS 設定指南.
在安全環境中試用所有 API 指令
取得 HTTP、WebSocket 和 SSE 的程式碼範例
查看指令的即時回應
產生隨機內容的測試訊息
注意: 記得替換 SESSIONID 為你在 Social Stream Ninja 中實際使用的工作階段 ID!
Social Stream Ninja 透過多種方式與 StreamDeck 整合:原生 HTTP 動作和 Bitfocus Companion 整合。
使用 StreamDeck 的「Website」動作,並啟用「GET request in background」,即可直接向 API 傳送指令。
原生整合,提供預設動作、即時回饋,以及用於動態內容的變數。
Bitfocus Companion 可透過 WebSocket 或 HTTP API 對 Social Stream Ninja 進行強大的控制。
| 操作 | 說明 | API 方式 |
|---|---|---|
| 清除精選訊息 | 從疊加畫面中移除目前的精選訊息 | WebSocket/HTTP |
| 佇列中的下一則 | 顯示下一則排隊的訊息 | WebSocket/HTTP |
| 切換自動顯示 | 啟用/停用自動精選訊息 | WebSocket/HTTP |
| 傳送聊天訊息 | 向所有已連接的平台傳送訊息 | WebSocket/HTTP |
featured_message - 目前的精選訊息文字featured_username - 目前精選使用者的使用者名稱queue_size - 佇列中的訊息數量Social Stream Ninja 提供全面的 AI 整合,透過 AI 聊天回覆、內容審核等功能增強直播。可根據需要選擇本機或雲端 AI 供應商。
讓 AI 自動與你的觀眾互動、回答問題,即使你專注於自己的內容,也能保持對話活躍。
使用 AI 識別可能有害的訊息,並按你的偏好自動處理,輔助管理聊天。可選擇不封鎖模式或嚴格封鎖模式。
檢索增強生成使 AI 能搜尋你的自訂知識庫,提供準確且貼合你內容的回答。
執行不同的機器人執行個體,滿足不同用途:公開聊天機器人、私人一對一機器人、審查機器人,甚至能看能聽的多模態 AI 搭檔。
Social Stream Ninja 支援多種 AI 供應商,從完全在本機執行的瀏覽器/執行階段模型到託管 API:
免費、注重隱私的自行託管 AI 模型,透過 Ollama 本身的 API 在你的電腦上執行。
先將模型檔案鏡像到自己的資源伺服器,再在瀏覽器中執行 Gemma 4;SSN 的 largefiles 伺服器目前不包含 Gemma 資源。
使用自行託管的模型檔案在瀏覽器中執行 Qwen 3.5,在本機產生私密回覆。
OpenAI API,包括現代聊天和即時語音模型。
Google Gemini 模型,包括目前的 Gemini 2.5 文字和即時多模態選項。
針對對話任務最佳化、高效且經濟的 AI 模型。
xAI Grok API,包括使用暫時性用戶端密鑰時的即時語音工作階段。
來自不同供應商的企業級 AI 模型,包括 Claude 和 Llama。
透過統一的 API 介面存取多種 AI 模型。
相容於 OpenAI 的低延遲聊天推論,實現快速的對話回覆。
連接到 llama.cpp、LM Studio、vLLM 或其他任何相容於 OpenAI 的端點。
注意: Ollama 使用本身的原生 API。對於 llama.cpp、LM Studio、vLLM 或其他相容於 OpenAI 的伺服器,請選擇 自訂 API.
Social Stream Ninja 為機器人訊息和精選聊天內容提供全面的 TTS 支援:
免費的內建 TTS,使用作業系統的語音合成器。
免費的本機 TTS,使用 WebGPU/CPU 執行,適合注重隱私的使用者。
輕量級的瀏覽器 TTS,下載小型模型後可在本機產生語音。
優質語音合成,提供自然且可自訂的聲音。
高品質聲音,提供豐富的語言和自訂選項。
Google 的預覽版神經語音模型,可選擇聲音和語言。
由 AI 驅動的文字轉語音,具備自然的聲音轉換能力。
OpenAI 語音合成,可選擇聲音、模型,並可使用相容端點。
注意: TTS 功能需要在 OBS 中開啟相應的疊加畫面頁面。不同 TTS 供應商有不同的聲音選項、延遲,以及價格或硬體需求。
Social Stream Ninja 為不同使用情境提供多個機器人執行個體:
| 機器人類型 | URL | 說明 |
|---|---|---|
| 主要聊天機器人 | /bot.html |
主要機器人疊加畫面,可選 TTS 和公開聊天回覆 |
| 私人聊天介面 | /chatbot.html |
專用的一對一機器人頁面,不與主要機器人共用 RAG 資料集或聊天記錄 |
| 審查機器人 | (在背景執行) | 自動篩選、清理或封鎖傳入訊息 |
| AI 搭檔 | /cohost.html |
能夠查看螢幕、聽取音訊並互動的多模態 AI |
按照以下步驟,在目前選單中設定 AI 整合:
在下列位置選擇供應商: 設定 LLM 服務提供者 ,並填寫對應欄位:
使用內建的 測試所選聊天機器人 按鈕,在開播前驗證供應商、模型和憑證。
自訂機器人在聊天中的行為:
開啟所需的機器人相關功能:
/bot.html;使用 clearBotOverlay 進行手動清除/bot.html, /chatbot.html,或 /cohost.html ,按需在 OBS 或瀏覽器中使用使用 MIDI 控制器、鍵盤快捷鍵或搭配 MIDI 外掛的 StreamDeck 控制 Social Stream Ninja。
| CC 編號 | 值 | 操作 | 說明 |
|---|---|---|---|
| 102 | 1 | 向聊天傳送「1」 | 快速回應 |
| 102 | 2 | 向聊天傳送「LUL」 | 表情回應 |
| 102 | 3 | 講個笑話 | 觸發機器人回覆 |
| 102 | 4 | 清除疊加畫面 | 移除精選訊息 |
提示: MIDI 控制最適合實體控制器,也可透過虛擬 MIDI 裝置觸發。
使用鍵盤快速鍵快速存取常用功能。
可在選單設定中設定快速鍵;當瀏覽器取得焦點或使用應用程式時,快速鍵可在系統範圍內生效。
Social Stream Ninja 可以透過 webhook 接收第三方服務的贊助和事件;以下列出幾個熱門服務:
直接透過你的 Stripe 帳號處理信用卡贊助。
https://io.socialstream.ninja/SESSIONID/stripecheckout.session.completed&server 到停駐面板 URL接受支持者請你喝咖啡的贊助。
https://io.socialstream.ninja/SESSIONID/kofi 作為 webhook URL&server 到停駐面板 URL透過熱門的 Buy Me A Coffee 平台接受贊助。
https://io.socialstream.ninja/SESSIONID/bmac 作為 webhook URL&server 到停駐面板 URL,以接收事件安全提示: 請保密你的工作階段 ID,因為任何持有它的人都能向疊加畫面傳送虛假贊助。應將 webhook URL 視為敏感資訊。
Social Stream Ninja 也可以向第三方服務傳送資料:
| 服務 | URL 參數 | 說明 |
|---|---|---|
| Singular Live | &singular=IDENTIFIER |
將選定訊息傳送到 Singular Live,用於精選訊息疊加畫面 |
| H2R | &h2r=IDENTIFIER |
將選定訊息傳送到本機 H2R 伺服器 |
| 通用 POST | &postserver=URL |
透過 POST 將選定訊息傳送到自訂端點 |
| 通用 PUT | &putserver=URL |
透過 PUT 將選定訊息傳送到自訂端點 |
這些參數應加入停駐面板頁面的 URL 中。
你可以透過自訂 JavaScript 程式碼,建立自己的指令和功能:
custom_sample.js 為檔名 custom.js此方法可實作複雜的自訂功能和觸發器。
你可以從頭建立完全自訂的聊天疊加畫面,配合直播獨特的風格和功能。Social Stream Ninja 提供彈性的基礎,供你繼續擴充。
timer.html計時器頁面刻意保持精簡:一個計時器、選用的操作員控制項、警告狀態、超時計時和幾種視覺樣式。
實用動作包括 starttimer, pausetimer, resettimer, timeradd, timersubtract,以及 settimer.
{
"action": "settimer",
"value": {
"seconds": 300,
"label": "Interview",
"mode": "countdown",
"style": "stage",
"warnSeconds": 60,
"dangerSeconds": 15
}
}
如需查詢目前計時器狀態,請使用 gettimerstate 並附上回呼權杖。
{ "action": "gettimerstate", "get": "timer-state-1" }
開啟頁面時使用 timer.html?session=YOUR_SESSION&server ,即可直接透過 API 伺服器控制它。
startgiveaway, closegiveaway, drawgiveaway, resetgiveaway,以及 getgiveawaystate 使用同一套 API/Stream Deck 控制項操作專用抽獎池。抽獎會自動關閉報名。新回合會保留先前的中獎記錄,並拒絕未付款的預留。取消並退款會退還尚未結算的票款。付費票券、數字尋蹤、擲硬幣獎池和 Event Flow 使用同一個主機服務。 設定、展示、指令值與復原.