Управляйте Social Stream Ninja с помощью встроенных команд, автоматизации и интеграции API
В 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.
Экспортируйте сообщения чата в файл или пересылайте их через вебхук (POST) для собственных интеграций.
Обязательные настройки (Global settings → Mechanics):
См. полную документацию API с подробными руководствами по настройке и примерами кода.
https://io.socialstream.ninja/{sessionID}/{action}/{target}/{value}
Подходит для простых команд со Stream Deck или из собственных скриптов.
wss://io.socialstream.ninja:443
Для двусторонней связи в реальном времени с автоматическим переподключением.
Если вы предпочитаете прямое соединение между участниками без режима WebSocket, используйте WebRTC SDK Social Stream Ninja. В нём есть примеры для 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 |
Закрепляет существующее сообщение док-панели по идентификатору или полный объект сообщения. Требуется страница dock.html открытая в том же сеансе. |
https://io.socialstream.ninja/SESSIONID/pin/null/MESSAGE_MID |
unpin |
Открепляет существующее сообщение док-панели по идентификатору. Для док-панели с меткой используйте поле 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 в нашей интерактивной песочнице с удобным доступом ко всем командам и функциям:
Если нужен небольшой набор кнопок для управления эфиром в OBS, используйте Панель управления Social Stream и следуйте руководству по настройке OBS.
Проверьте все команды API в безопасной среде
Получите примеры кода для HTTP, WebSocket и SSE
Просматривайте ответы на свои команды в реальном времени
Создавайте тестовые сообщения со случайным содержимым
Примечание: Не забудьте заменить SESSIONID на свой настоящий идентификатор сеанса Social Stream Ninja!
Social Stream Ninja интегрируется со StreamDeck несколькими способами: через встроенные HTTP-действия и Bitfocus Companion.
Используйте действие StreamDeck «Website» с включённым «GET request in background», чтобы отправлять команды прямо в API.
Встроенная интеграция с готовыми действиями, обратной связью в реальном времени и переменными для динамического контента.
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:
Бесплатные ИИ-модели на вашем компьютере с собственным API Ollama, ориентированные на конфиденциальность.
Запускайте Gemma 4 в браузере, предварительно скопировав файлы модели на свой сервер ресурсов; хост SSN largefiles пока не содержит файлов Gemma.
Запускайте Qwen 3.5 в браузере из файлов модели на своём сервере для локальных конфиденциальных ответов.
API OpenAI, включая современные модели чата и голосовые модели реального времени.
Модели Google Gemini, включая актуальные текстовые модели Gemini 2.5 и мультимодальные варианты для работы в реальном времени.
Эффективные и экономичные ИИ-модели, оптимизированные для диалоговых задач.
API xAI Grok, включая голосовые сеансы реального времени с краткосрочными клиентскими секретами.
ИИ-модели корпоративного уровня от разных провайдеров, включая Claude и Llama.
Доступ к нескольким ИИ-моделям через единый интерфейс API.
Генерация ответов с малой задержкой через API, совместимый с OpenAI, для быстрых диалогов.
Подключайтесь к llama.cpp, LM Studio, vLLM или другому API, совместимому с OpenAI.
Примечание: Ollama использует собственный API. Для llama.cpp, LM Studio, vLLM и других серверов, совместимых с OpenAI, выберите Собственный API.
Social Stream Ninja поддерживает разнообразные способы озвучивания сообщений ботов и выделенных сообщений чата:
Бесплатное встроенное озвучивание с помощью синтезатора речи вашей операционной системы.
Бесплатное локальное озвучивание через WebGPU или CPU для пользователей, которым важна конфиденциальность.
Лёгкий браузерный синтезатор речи, который загружает небольшую модель для локального создания голоса.
Высококачественный синтез речи с естественными настраиваемыми голосами.
Высококачественные голоса с широким выбором языков и настроек.
Предварительные нейронные голосовые модели Google с выбором голоса и языка.
Озвучивание текста с помощью ИИ и естественным преобразованием голоса.
Синтез речи OpenAI с выбором голосов, моделей и необязательных совместимых адресов API.
Примечание: Для озвучивания соответствующая страница оверлея должна быть открыта в OBS. Провайдеры различаются голосами, задержкой, ценами и требованиями к оборудованию.
Social Stream Ninja предоставляет несколько экземпляров ботов для разных задач:
| Тип бота | URL | Описание |
|---|---|---|
| Основной бот для чата | /bot.html |
Оверлей основного бота с необязательным озвучиванием и ответами в публичном чате |
| Интерфейс личного чата | /chatbot.html |
Отдельная страница бота для личного общения, которая не использует набор данных RAG и историю чата основного бота |
| Бот-цензор | (работает в фоне) | Автоматически фильтрует, очищает или блокирует входящие сообщения |
| ИИ-соведущий | /cohost.html |
Мультимодальный ИИ, который может видеть экран, слышать звук и взаимодействовать |
Чтобы настроить интеграцию ИИ в текущем меню, выполните следующие действия:
Выберите провайдера в разделе Настроить провайдера языковой модели (Configure LLM Service Provider) и заполните соответствующие поля:
Используйте встроенную кнопку Проверить выбранного чат-бота для проверки провайдера, модели и ключей перед выходом в эфир.
Настройте поведение бота в чате:
Включите нужные дополнительные функции бота:
/bot.html; используйте clearBotOverlay для ручной очистки/bot.html, /chatbot.html, или /cohost.html в OBS или браузере по необходимостиПолные инструкции по настройке и подробности озвучивания приведены в этих руководствах:
Управляйте Social Stream Ninja с помощью MIDI-контроллеров, сочетаний клавиш или StreamDeck с MIDI-плагинами.
| Номер CC | Значение | Действие | Примечания |
|---|---|---|---|
| 102 | 1 | Отправить «1» в чат | Быстрая реакция |
| 102 | 2 | Отправить «LUL» в чат | Реакция эмоутом |
| 102 | 3 | Рассказать шутку | Запускает ответ бота |
| 102 | 4 | Очистить оверлей | Убирает выделенное сообщение |
Совет: MIDI-управление лучше всего работает с физическими контроллерами, но может запускаться и через виртуальные MIDI-устройства.
Используйте сочетания клавиш для быстрого доступа к основным функциям.
Сочетания клавиш настраиваются в меню и работают на уровне системы, когда браузер в фокусе или используется приложение.
Social Stream Ninja может получать пожертвования и события от сторонних сервисов через вебхуки; ниже приведены несколько популярных примеров:
Принимайте пожертвования с банковских карт напрямую через свою учётную запись Stripe.
https://io.socialstream.ninja/SESSIONID/stripecheckout.session.completed&server к URL док-панелиПолучайте пожертвования на кофе от своих сторонников.
https://io.socialstream.ninja/SESSIONID/kofi в качестве URL вебхука&server к URL док-панелиСобирайте пожертвования через популярную платформу Buy Me A Coffee.
https://io.socialstream.ninja/SESSIONID/bmac в качестве URL вебхука&server к URL док-панели для получения событийПримечание о безопасности: Держите идентификатор сеанса в секрете: любой, кто его знает, может отправить поддельное пожертвование в ваш оверлей. 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. Проведение розыгрыша автоматически закрывает приём заявок. Новый раунд сохраняет историю прежних победителей и отклоняет неоплаченные бронирования. Отмена с возвратом возвращает незакрытые платежи за билеты. Платные билеты, Number Hunt, Coin Flip Pot и Event Flow используют одну службу ведущего. Настройка, варианты отображения, значения команд и восстановление.
Эти команды и возможности API позволяют создать уникальную интерактивную трансляцию.