Команди й API

Керуйте Social Stream Ninja за допомогою вбудованих команд, автоматизації та інтеграції API

Команди бота

Вбудовані команди бота

Social Stream Ninja містить кілька вбудованих команд, які глядачі можуть використовувати в чаті або які ви можете запускати через API.

Команда Опис Як увімкнути
!joke Відповідає випадковим технічним «татівським» жартом Увімкніть перемикачем у меню розширення
hi Автоматично вітає кожного, хто пише «hi» в чаті Увімкніть перемикачем у меню розширення
!cycle Коли ввімкнено, дозволяє глядачам змінювати сцени OBS Увімкніть перемикачем у меню розширення

Примітка: Команди бота працюватимуть лише за правильного налаштування автовідповідача й наявності дозволу публікувати повідомлення на відповідних платформах.

Налаштування автовідповідей

Щоб автовідповідач працював правильно:

  1. Переконайтеся, що ви ввійшли на платформу (YouTube, Twitch тощо)
  2. Переконайтеся, що вікно чату видиме (не згорнуте)
  3. Спочатку спробуйте вручну надіслати тестове повідомлення, щоб перевірити дозволи
  4. Увімкніть перемикачі потрібних команд у меню розширення

Якщо під час запуску автовідповідей з’являється синя панель налагодження, її можна приховати, запустивши Chrome з прапорцем --silent-debugger-extension-api .

API сервера

Огляд

Social Stream Ninja надає потужний API для програмного керування всіма аспектами налаштування трансляції. Сервер API може як надсилати команди вашій системі, так і слухати вхідні повідомлення об’єднаних сервісів чату.

Керування оверлеями

Керуйте вибраними повідомленнями, очищуйте оверлеї та змінюйте вигляд вмісту на трансляції.

Інтеграція вебхуків

Отримуйте події від сторонніх сервісів, як-от Stripe, Ko-Fi та Buy Me A Coffee.

Експорт повідомлень

Експортуйте повідомлення чату у файл або пересилайте їх через вебхук (POST) для власних інтеграцій.

Обов’язкові налаштування (Global settings → Mechanics):

  • 🎮 Віддалене керування (StreamDeck/Bitfocus): Увімкнути «Увімкнути віддалене керування розширенням через API» (Перемикач 1) — підключіться до каналу 1
  • 📡 Приймач чату (застосунки Python/Node): Увімкніть перемикач 1 + «Надсилати повідомлення чату на сервер API» (Перемикач 3) — підключіться до каналу 4

Дивіться повну документацію API для докладних посібників із налаштування та прикладів коду.

Кінцеві точки API та способи підключення

HTTP GET/POST

https://io.socialstream.ninja/{sessionID}/{action}/{target}/{value}

Ідеально для простих команд зі Stream Deck або власних скриптів.

WebSocket

wss://io.socialstream.ninja:443

Для двостороннього зв’язку в реальному часі з автоматичним повторним підключенням.

Якщо хочете залишити з’єднання одноранговими без увімкнення режиму WebSocket, можна використати Social Stream Ninja WebRTC SDK. Він містить приклади для Node і браузера, зокрема Приймач Social Stream Ninja.

Події від сервера (Server-Sent Events)

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

Поширені команди API

Дія Опис Приклад
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 Завантажує поточний список очікування як файл TSV із запущеної сторінки/застосунку Social Stream 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

Спробуйте API в нашій інтерактивній пісочниці зі зручним доступом до всіх команд і функцій:

Для меншого набору кнопок керування ефіром в OBS використовуйте Док керування Social Stream і дотримуйтеся посібника з налаштування OBS.

Перевірка команд

Спробуйте всі команди API в безпечному середовищі

Згенерувати код

Отримайте приклади коду для HTTP, WebSocket і SSE

Переглянути результати

Переглядайте відповіді на команди в реальному часі

Створити перевірки

Генеруйте тестові повідомлення з випадковим вмістом

Примітка: Не забудьте замінити SESSIONID на справжній ID вашої сесії Social Stream Ninja!

StreamDeck і Companion

Інтеграція StreamDeck

Social Stream Ninja інтегрується зі StreamDeck кількома способами: через власні HTTP-дії та інтеграцію Bitfocus Companion.

Метод HTTP/API

Використовуйте дію «Website» у StreamDeck з увімкненим «GET request in background», щоб надсилати команди безпосередньо до API.

Bitfocus Companion

Вбудована інтеграція з готовими діями, зворотним зв’язком у реальному часі та змінними для динамічного вмісту.

Інтеграція Companion

Bitfocus Companion надає потужні можливості керування Social Stream Ninja через WebSocket або HTTP API.

Дія Опис Метод API
Очистити вибране повідомлення Прибирає поточне вибране повідомлення з оверлею WebSocket/HTTP
Наступне в черзі Показує наступне повідомлення з черги WebSocket/HTTP
Перемкнути автоматичний показ Вмикає/вимикає автоматичний вибір повідомлень WebSocket/HTTP
Надіслати повідомлення чату Надсилає повідомлення на всі підключені платформи WebSocket/HTTP

Динамічні змінні

  • featured_message — текст поточного вибраного повідомлення
  • featured_username — ім’я користувача поточного вибраного повідомлення
  • queue_size — кількість повідомлень у черзі

Інтеграція ШІ

Режим чат-бота ШІ

Social Stream Ninja надає широку інтеграцію ШІ для відповідей у чаті, модерації та інших можливостей на трансляціях. Виберіть локальних або хмарних постачальників ШІ відповідно до своїх потреб.

Автоматичні відповіді в чаті

Дозвольте ШІ автоматично спілкуватися з глядачами, відповідати на запитання та підтримувати жваву розмову, навіть коли ви зосереджені на своєму вмісті.

Модерація вмісту

Використовуйте ШІ для допомоги в модерації: визначайте потенційно шкідливі повідомлення й автоматично обробляйте їх за своїми вподобаннями. Виберіть режим без блокування або суворе блокування.

Пошук RAG

Генерація з доповненням через пошук дозволяє ШІ шукати у власній базі знань, щоб давати точні відповіді, пов’язані з вашим вмістом.

Кілька екземплярів ботів

Запускайте різних ботів для різних завдань: публічного чат-бота, приватного особистого бота, бота-цензора й навіть мультимодального співведучого ШІ, який може бачити й чути.

Підтримувані постачальники ШІ

Social Stream Ninja підтримує кількох постачальників ШІ: від повністю локальних браузерних моделей і моделей середовища виконання до розміщених API:

Ollama (власний локальний API)

Безкоштовні приватні моделі ШІ на власному комп’ютері через власний API Ollama.

Local Gemma 4

Запускайте Gemma 4 у браузері після дзеркального копіювання файлів моделі на власний хостинг ресурсів; хостинг SSN largefiles наразі не містить ресурсів Gemma.

Local Qwen 3.5

Запускайте Qwen 3.5 у браузері з власноруч розміщених файлів моделі для локальних приватних відповідей.

ChatGPT / OpenAI

API OpenAI, зокрема сучасні моделі чату й голосового спілкування в реальному часі.

Google Gemini

Моделі Google Gemini, зокрема поточні текстові Gemini 2.5 і мультимодальні варіанти реального часу.

DeepSeek

Ефективні й економні моделі ШІ, оптимізовані для розмовних завдань.

xAI (Grok)

API xAI Grok, зокрема голосові сесії реального часу з використанням тимчасових клієнтських секретів.

AWS Bedrock

Моделі ШІ корпоративного рівня від різних постачальників, зокрема Claude та Llama.

OpenRouter

Доступ до кількох моделей ШІ через єдиний інтерфейс API.

Groq

Генерація відповідей чату з малою затримкою, сумісна з OpenAI, для швидкого спілкування.

Власний API (сумісний з OpenAI)

Підключайтеся до llama.cpp, LM Studio, vLLM або будь-якої іншої кінцевої точки, сумісної з OpenAI.

Примітка: Ollama використовує власний API. Для llama.cpp, LM Studio, vLLM або інших серверів, сумісних з OpenAI, виберіть Власний API.

Інтеграція озвучення тексту

Social Stream Ninja має широку підтримку озвучення повідомлень ботів і вибраного вмісту чату:

Системне озвучення

Безкоштовне вбудоване озвучення, що використовує синтезатор голосу операційної системи.

Kokoro

Безкоштовне локальне озвучення через WebGPU/CPU для користувачів, які цінують приватність.

Kitten TTS

Легке браузерне озвучення, що завантажує невелику модель для локальної генерації голосу.

ElevenLabs

Преміальний синтез мовлення з природними голосами, що налаштовуються.

Google Cloud TTS

Високоякісні голоси з широким вибором мов і налаштувань.

Gemini (попередня версія озвучення)

Попередні нейронні голосові моделі Google з вибором голосу та мови.

Speechify

Озвучення тексту на базі ШІ з можливостями природного перетворення голосу.

OpenAI TTS

Синтез мовлення OpenAI з вибором голосів, моделей і необов’язкових сумісних кінцевих точок.

Примітка: Для озвучення відповідна сторінка оверлею має бути відкрита в OBS. Кожен постачальник озвучення має свої голоси, затримку, ціни або вимоги до обладнання.

Екземпляри ботів та оверлеї

Social Stream Ninja надає кілька екземплярів ботів для різних випадків використання:

Тип бота URL Опис
Основний чат-бот /bot.html Оверлей основного бота з необов’язковим озвученням і відповідями в публічному чаті
Інтерфейс приватного чату /chatbot.html Окрема сторінка бота для розмови віч-на-віч, яка не використовує набір даних RAG або історію чату основного бота
Бот-цензор (працює у фоновому режимі) Автоматично фільтрує, очищує або блокує вхідні повідомлення
Співведучий на базі ШІ /cohost.html Мультимодальний ШІ, який може бачити екран, чути аудіо й взаємодіяти

Налаштування інтеграції ШІ

Виконайте ці кроки, щоб налаштувати інтеграцію ШІ в поточному меню:

1

Виберіть і підключіть постачальника LLM

Виберіть свого постачальника в розділі Налаштувати постачальника сервісу LLM і заповніть відповідні поля:

  • Ollama: Установіть локально й за потреби вкажіть кінцеву точку
  • Local Gemma / Local Qwen: Використовуйте розміщені ресурси браузерної моделі й необов’язкове перевизначення папки моделі; Qwen може використовувати SSN largefiles, а Gemma потребує власної дзеркальної папки
  • ChatGPT, Gemini, DeepSeek, xAI, Groq, OpenRouter, Bedrock: Додайте свій ключ API та бажану модель
  • Власний API: Введіть кінцеву точку, сумісну з OpenAI, ID моделі та необов’язковий ключ API
2

Перевірити вибраний чат-бот

Використовуйте вбудовану кнопку Перевірити вибраний чат-бот щоб перевірити постачальника, модель і облікові дані перед виходом у прямий ефір.

3

Налаштуйте поведінку бота

Налаштуйте поведінку бота в чаті:

  • Увімкнути чат-бота на базі мовної моделі ШІ
  • Задайте ім’я бота, слова-тригери та обмеження частоти відповідей
  • Виберіть, чи відповіді повертаються в чат, чи лише на сторінку оверлею бота
  • Додайте власні інструкції щодо тону, ролі та правил модерації
4

Увімкніть необов’язкові можливості

Увімкніть потрібні супутні функції бота:

  • Увімкніть озвучення відповідей бота й виберіть постачальника
  • Виберіть автоматичне приховування за фіксованим часом, довжиною повідомлення або після озвучення для /bot.html; використовуйте clearBotOverlay для ручного очищення
  • Увімкніть RAG і завантажте документи для відповідей на основі знань
  • Увімкніть бота-цензора для модерації або суворого блокування
  • Відкрити /bot.html, /chatbot.html, або /cohost.html в OBS або браузері за потреби

Керування через MIDI та гарячі клавіші

Інтеграція MIDI

Керуйте Social Stream Ninja за допомогою контролерів MIDI, сполучень клавіш або StreamDeck із плагінами MIDI.

Вимоги до налаштування

  1. Увімкніть підтримку MIDI в налаштуваннях розширення
  2. Установіть віртуальний пристрій зворотного з’єднання MIDI (наприклад, loopMIDI)
  3. Налаштуйте контролер MIDI або плагін MIDI для StreamDeck
Номер CC Значення Дія Примітки
102 1 Надіслати «1» у чат Швидка реакція
102 2 Надіслати «LUL» у чат Реакція емотом
102 3 Розповісти жарт Запускає відповідь бота
102 4 Очистити оверлей Прибирає вибране повідомлення

Порада: Керування MIDI найкраще працює з фізичними контролерами, але його також можна запускати через віртуальні пристрої MIDI.

Підтримка гарячих клавіш

Використовуйте сполучення клавіш для швидкого доступу до поширених функцій.

Гарячі клавіші можна налаштувати в меню; вони працюють у всій системі, коли браузер у фокусі або коли використовується застосунок.

Інтеграція вебхуків

Сервіси донатів

Social Stream Ninja може отримувати донати й події від сторонніх сервісів через вебхуки; нижче наведено кілька популярних:

Stripe

Stripe

Обробляйте донати з кредитних карток безпосередньо через свій обліковий запис Stripe.

  • Створіть платіжне посилання на stripe.com
  • У Stripe Dashboard перейдіть до Developers → Webhooks
  • Додати кінцеву точку: https://io.socialstream.ninja/SESSIONID/stripe
  • Виберіть подію checkout.session.completed
  • Додайте &server до URL дока
Ko-Fi

Ko-Fi

Отримуйте донати на каву від своїх прихильників.

  • Увійдіть у свій обліковий запис Ko-Fi
  • Відкрийте Налаштування вебхуків
  • Додайте https://io.socialstream.ninja/SESSIONID/kofi як URL вебхука
  • Додайте &server до URL дока
  • Перевірте кнопкою «Send Single Donation Test»
Buy Me A Coffee

Buy Me A Coffee

Збирайте донати через популярну платформу Buy Me A Coffee.

  • Увійдіть у свій обліковий запис Buy Me A Coffee
  • Перейдіть до налаштувань вебхуків
  • Додайте https://io.socialstream.ninja/SESSIONID/bmac як URL вебхука
  • Додайте &server до URL дока для отримання подій
  • Підтримуються події донатів і членства

Примітка щодо безпеки: Зберігайте ID сесії в таємниці, адже будь-хто з ним може надсилати фальшиві донати у ваш оверлей. 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

Ви можете створювати власні команди й функції, змінюючи код JavaScript:

Використання custom.js

  1. Перейменувати custom_sample.js на custom.js
  2. Відредагуйте файл, щоб додати власні функції
  3. Відкрийте файл dock.html локально, щоб завантажився custom.js

Цей метод дозволяє складні налаштування та тригери.

Власні оверлеї

Створення власних оверлеїв

Ви можете створювати повністю власні оверлеї чату з нуля відповідно до стилю та функцій своєї трансляції. Social Stream Ninja надає гнучку основу для цього.

Початок із шаблону

Почніть із нашого зразка шаблону оверлею, щоб зрозуміти основи:

// View the sample overlay
https://socialstream.ninja/sampleoverlay?session=SESSIONID

Цей мінімальний шаблон містить лише основний код, потрібний для робочого оверлею.

Переглянути зразок оверлею

Основні можливості налаштування

  • Перемикає між вибраними повідомленнями та показом усіх повідомлень
  • Налаштуйте вигляд за допомогою CSS
  • Додайте власні анімації для нових повідомлень
  • Реалізуйте власну фільтрацію повідомлень
  • Додайте інтерактивні елементи за допомогою JavaScript

Кроки реалізації

  1. Завантажте зразок HTML-файлу оверлею
  2. Змініть HTML для власного макета
  3. Налаштуйте CSS для бажаного вигляду
  4. За потреби змініть JavaScript для власної поведінки
  5. Збережіть файл локально, щоб використовувати в OBS як джерело браузера

API таймера

Дистанційне керування 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. Draw автоматично закриває прийом заявок. New round зберігає історію попередніх переможців і відхиляє неоплачені резервування. Cancel and refund повертає неповернені платежі за квитки. Платні квитки, Number Hunt, Coin Flip Pot і Event Flow використовують ту саму службу ведучого. Налаштування, подання, значення команд і відновлення.

Готові вивести трансляцію на новий рівень?

Завдяки цим потужним командам і можливостям API можна створити унікальну інтерактивну трансляцію.