1. Подключите Flow Actions к OBS
OBS WebSocket v5 встроен в OBS 28 и более новые версии. Social Stream Ninja использует его для полного управления OBS и событий медиа.
- В OBS откройте Инструменты → Настройки сервера WebSocket.
- Включите сервер WebSocket. Оставьте стандартный порт
4455; при желании задайте пароль. - В Social Stream Ninja откройте Flow Actions раздел и задайте URL OBS WebSocket и необязательный пароль.
- Скопируйте URL Flow Actions и держите его открытым. Для действий с оверлеями/аудио рекомендуется источник браузера OBS.
- Используйте Тестер OBS WebSocket для проверки соединения перед созданием потока.
https://socialstream.ninja/actions.html?session=YOUR_SESSION&obsws=ws://127.0.0.1:4455Добавить
&obspw=YOUR_PASSWORD только если OBS требует авторизацию. Добавьте &obsdebug=1 для показа небольшого индикатора соединения при диагностике.
Два режима подключения OBS
| Режим | Что поддерживает | Требование |
|---|---|---|
| OBS WebSocket v5 | Все триггеры и действия этого руководства. | OBS 28+, сервер WebSocket включён, страница Flow Actions открыта. |
| API источника браузера OBS | Запасной вариант для смены сцен, запуска/остановки трансляции и записи, сохранения буфера повтора. | Flow Actions загружен внутри OBS с расширенным уровнем доступа. Источники, фильтры, текст, громкость, медиа, обновление и события завершения медиа по-прежнему требуют WebSocket. |
2. Добавьте узлы OBS в поток
- Откройте Редактор Event Flow и создайте или отредактируйте поток.
- Перетащите триггер на рабочее поле.
- Разверните OBS Studio в списке действий и перетащите нужное действие OBS.
- Соедините триггер с действием, задайте точные имена сцен/источников OBS, сохраните и включите поток.
3. Триггеры OBS
Они запускают поток, когда OBS сообщает о подходящем событии. Они приходят как type: "obs"; сведения об OBS находятся в разделе meta.
| Триггер | Когда срабатывает | Полезные данные |
|---|---|---|
| Трансляция OBS началась | Трансляция переходит в запущенное состояние. | meta.outputState, meta.outputActive |
| Трансляция OBS остановлена | Трансляция переходит в остановленное состояние. | meta.outputState, meta.outputActive |
| Запись OBS началась | Запись начинается. | meta.outputState |
| Запись OBS остановлена | Запись останавливается. | meta.outputState |
| Сцена OBS изменена | Активная программная сцена меняется. | meta.sceneName |
| Медиа OBS завершено WebSocket | Медиаисточник завершает воспроизведение. При желании фильтруйте по точному имени медиаисточника. | meta.inputName, meta.inputUuid |
| Буфер повтора OBS сохранён | OBS завершает сохранение повтора. | meta.savedReplayPath |
4. Действия OBS
| Действие | Настройка и поведение | Подключение |
|---|---|---|
| Сменить сцену | Переключает активную программную сцену по её точному имени. | WebSocket или запасной вариант через API источника браузера |
| Переключить источник | Показать, скрыть или переключить элемент сцены. Сцена и группа — необязательные поля выбора цели. | WebSocket |
| Задать текст источника | Обновляет «Текст (GDI+)» или «Текст (FreeType 2)» с шаблонными подстановками. | WebSocket |
| Управлять медиаисточником | Воспроизвести/продолжить, приостановить, перезапустить, остановить, следующий или предыдущий. | WebSocket |
| Задать громкость источника | Задаёт вход в диапазоне от -100 на +26 дБ. | WebSocket |
| Обновить источник браузера | Перезагружает источник браузера без кэша. | WebSocket |
| Переключить фильтр | Включить, выключить или переключить фильтр источника по имени. | WebSocket |
| Выключить/включить звук | Выключить звук, включить звук или переключить состояние входа. | WebSocket |
| Начать запись | Запускает запись OBS. | WebSocket или запасной вариант через API источника браузера |
| Остановить запись | Останавливает запись OBS. | WebSocket или запасной вариант через API источника браузера |
| Начать трансляцию | Запускает настроенный выход трансляции OBS. | WebSocket или запасной вариант через API источника браузера |
| Остановить трансляцию | Останавливает выход трансляции OBS. | WebSocket или запасной вариант через API источника браузера |
| Управлять буфером повтора | Запустить, остановить или переключить буфер повтора. | WebSocket |
| Сохранить буфер повтора | Сохраняет работающий буфер повтора. | WebSocket или запасной вариант через API источника браузера |
Задание текста источника и переменные потока
Текстовое поле поддерживает обычные подстановки сообщения, например {username}, {message}, {source}, и {donation}, а также значения, добавленные предыдущими узлами потока, например {counterValue}, {counterTarget}, и {counterRemaining}.
{username}: now {counterValue}, need {counterTarget}
Управление медиаисточником
Воспроизведение / Пауза
Воспроизвести продолжает приостановленное медиа. Пауза удерживает текущую позицию.
Перезапустить / Остановить
Перезапустить начинает с начала. Остановить завершает воспроизведение и сбрасывает источник.
Следующий / Предыдущий
Переключает элементы источников с плейлистом, например «Источник видео VLC». Медиаисточник с одним файлом может игнорировать эти действия.
Громкость, отключение звука и фильтры
Задать громкость источника использует дБ в соответствии со шкалой микшера OBS: 0 dB означает неизменённое усиление, отрицательные значения тише, а -100 dB фактически означает тишину. Отключение звука — отдельное состояние. Переключение фильтра меняет только его включённость, а не параметры.
Буфер повтора
Сначала включите буфер повтора в Настройки OBS → Вывод. Используйте Управлять буфером повтора для запуска/остановки, затем Сохранить буфер повтора для записи недавнего фрагмента из буфера на диск.
5. Полезные примеры
Сообщение каждый час, пока OBS в эфире
В редакторе Event Flow выберите Начать с шаблона → Средний уровень → Сообщение каждый час, пока OBS в эфире. Изначально он выключен и содержит три ветки в одном потоке:
- Трансляция OBS началась → Задать состояние шлюза: ON
- Интервал времени (3600 секунд) → Переключатель ON/OFF → Отправить сообщение
- Трансляция OBS остановлена → Задать состояние шлюза: OFF
Оба действия задания состояния шлюза уже ссылаются на один переключатель, изначально выключенный. Измените Отправить сообщение для выбора платформы чата (в примере Twitch) и сообщения. Выберите платформу или «Все платформы»; «Ответить источнику» не может ответить событию OBS или срабатыванию таймера.
Подключение Flow Actions к OBS, держите Social Stream и целевой чат подключёнными, затем сохраните и включите поток до начала трансляции. Переключатель ждёт события запуска OBS; загрузка во время уже идущего эфира не включает его. Перезапуск Social Stream также сбрасывает его в OFF.
Время срабатывания: интервал работает по собственному расписанию, поэтому первое напоминание может прийти раньше чем через час после начала эфира. Следующие повторяются каждый час, пока переключатель включён. Для другой частоты измените значение интервала времени; оно задаётся в секундах.
Текст счётчика в OBS
Разместите Задать текст источника после ветки счётчика/проверки и используйте:
{username}: now {counterValue}, need {counterTarget}
Выполнить действие после видео
Медиа OBS завершено (фильтруйте по Intro Video) → Сменить сцену на Main.
Перезапуск медиа из чата
Сообщение равно !replayintro → условие разрешения → Управлять медиаисточником: перезапуск.
Обновить страницу оповещений
Сообщение равно !refreshalerts → условие модератора → Обновить источник браузера.
Приглушить музыку на время оповещения
Задать громкость источника на -24 dB → действие оповещения → Задержка → вернуть к 0 dB.
Работа с повторами
Трансляция OBS началась → Управлять буфером повтора: запуск; отдельная доверенная команда выполняет Сохранить буфер повтора.
6. Другие встроенные средства управления OBS
В Social Stream Ninja также есть старые средства управления источником браузера OBS в док-панели чата трансляции. Они не используют WebSocket-мост Flow Actions.
| Вариант | Что делает | Требование |
|---|---|---|
| Индикатор текущей сцены OBS | Показывает активную сцену в док-панели чата трансляции. | Док-панель загружена внутри OBS с разрешением на чтение. |
| Гости могут использовать !cycle | Переходит к следующей сцене OBS, не чаще одного раза в 10 секунд. | Включите опцию в popup; док-панель загружена в OBS с расширенным доступом. |
| Привилегированные пользователи могут использовать !start / !stop | Запускает или останавливает трансляцию по команде доверенных пользователей чата. | Включите опцию в popup; док-панель загружена в OBS с полным/расширенным доступом к управлению. |
| Удалённая панель управления OBS | Показывает сцены и может переключать их или включать/выключать трансляцию и запись, если целевая док-панель OBS предоставляет нужный уровень управления. | Док-панель чата трансляции связана с док-панелью внутри OBS. |
| Тестер OBS WebSocket | Проверяет версию, подключение, сцены и отдельные запросы до использования Event Flow. | Открыть тестер |
7. Устранение неполадок
| Проблема | Проверьте |
|---|---|
| Ничего не происходит | Поток сохранён и включён; Flow Actions открыт; у обоих одинаковый ID сеанса. |
| OBS не подключается | Сервер WebSocket включён, URL — ws://127.0.0.1:4455, а пароль совпадает. Порт 4444 — устаревший порт по умолчанию для v4. |
| Сцена/источник/фильтр не найдены | Скопируйте точное имя из OBS. Для управления видимостью задайте сцену или группу, если элемент вложен либо находится вне текущей сцены. |
| Текст не меняется | Используйте «Текст (GDI+)» или «Текст (FreeType 2)», проверьте имя входа и отключите Читать из файла. |
| Событие завершения медиа не срабатывает | Используйте OBS WebSocket v5 и настоящий медиаисточник. Зацикленное медиа не достигает состояния завершения. |
| Следующий/Предыдущий ничего не делают | Используйте источник с поддержкой плейлистов, например «Источник видео VLC». |
| Не удаётся сохранить повтор | Включите буфер повтора в настройках вывода OBS и запустите его перед сохранением. |
| Действия останавливаются при смене сцены | Отключить (Disable) Отключать источник, когда он не виден у источника браузера Flow Actions либо держите страницу открытой в другом месте. |
GetVersion → проверить сцены/входы → проверить отдельный запрос → проверить весь Event Flow.