Skip to content

Repository files navigation

Videoalerts

Многофункциональное, полностью настраиваемое приложение для отображения на стриме различных коротких видео, отправленных зрителями. Работает с Twitch чатом, поддерживаемые видео: Memealerts, Youtube, Tiktok, Instagram. (для некоторых источников требуется yt-dlp.exe, читайте об этом далее)

Приложение состоит из сервера на Node.js и клиента, автоматически размещаемого в localhost. Пользователи отправляют видео через команду в чате, сервер считывает команду и получает видео. Клиент получает список видео с сервера, формирует их внешний вид и отображает их.

Также приложение имеет множество других функций: "СпамПушка", окно сообщений модераторов, возможность самостоятельной разметки оверлея, напоминания рандомными эффектами, возможность подключить TTS для модераторов, контроль сервером через команды в чате, контроль сервером через tester, настройка таймаутов для пользователей, возможность разрешить видео из любых источников.

Как начать

СНАЧАЛА ЧИТАЕМ ЭТО! Перейдите в список релизов Releases и скачайте последний (на данный момент есть билды только для Windows x64). Распакуйте папку videoalerts куда угодно и попробуйте запустить videoalerts.exe. Если сервер запустился, (будет сообщение в консоли Server running on...), то следующие 5 шагов можно пропустить. Если сервер не запускается, то можете попробовать способ ниже.

  1. Скачайте репозиторий как ZIP и распакуйте куда удобно (не клонируйте репозиторий, если не планируете редактировать код).

  2. Запустите файл install.bat, он установит всё нужное автоматически, после установки он запустит сервер. Если всё прошло хорошо, пункты 3 и 4 ниже можете пропустить.

  3. Установите Node.js на свой ПК (не ниже 24.12.0 LTS).

  4. Перейдите в распакованную папку videoalerts, откройте в ней cmd (Shift+ПКМ, "Открыть окно команд") и выполните npm install.

  5. После этого сервер можно запускать через start.bat.

После установки сервера необходимо его настроить:

  1. Откройте файл "options.cfg", здесь вы можете настроить сервер (после любых изменений в "options.cfg" нужно перезапускать сервер).
  2. Найдите "channel" и укажите логин своего (или стримера) Twitch. Также вы можете настроить "moderators" и другие настройки (все имена нужно писать в нижнем регистре).
  3. Попробуйте запустить сервер.

Если сервер работает, нужно настроить клиент в OBS и протестировать:

  1. Откройте OBS, добавьте источник Browser на сцену с url = http://localhost:3000. Разместите источник в иерархии выше захвата игры или окна.
  2. Установите размер 1920x1080 (размер по умолчанию). Вы можете использовать другой размер, но сначала нужно указать его в "options.cfg".
  3. Откройте чат Twitch и используйте команду "!ma" для видеоалерта.
  4. Проверьте OBS, ваш видеоалерт должен появиться .
  5. Рекомендую направить аудио источника Browser на отдельный канал микшера и установить громкость около -10dB (чтобы слышать, включите режим у микшера "Только прослушивание", или "Прослушивание и вывод" если вы не выводите звук с рабочего стола).

Сначала запускаете Videoalerts сервер, а после OBS. В ином случае, после запуска сервера перейдите в OBS и обновите источник Browser, чтобы тот подключился к серверу!

Установка "yt-dlp"

Установка "yt-dlp" необходима для работы видео с YouTube и Instagram. Скачайте его тут YT-DLP, вам нужен yt-dlp.exe. Его нужно поместить в папку views. Ещё необходимо скачать cookie.txt, без этого работать не будет, как это сделать:

  1. Нужен браузер, которым вы не пользуетесь, по крайней мере во время стрима. Ещё этот браузер должен поддерживать Google-расширения.
  2. В нём нужно залогиниться в свой аккаунт YouTube с 18+ возрастом (для YouTube видео).
  3. Посетите сайт Instagram, просмотрев любой Reels (для 0+ видео) или залогиньтесь в свой аккаунт с указанием 18+ возраста (для любых видосов, в том числе и 18+).
  4. Закройте все вкладки с YouTube и Instagram, и не включайте во время пользования!
  5. После скачиваете расширение Get cookies.txt, и с помощью него скачиваете cookie.txt, его тоже нужно поместить в папку views.
  6. Запустите приложение, в консоли должно быть сообщение "yt-dlp" function enabled! Executable version: 2026.07.04, оно значит что всё работает!

ВАЖНО: если после скачивания cookie.txt зайти на сайты YouTube и Instagram, они станут не актуальными и их придётся скачивать заного (поэтому и нужен браузер, которым не пользуетесь). Ещё, сайты YouTube и Instagram на территории РФ без некоторых "программ" не работают, имейте это ввиду.

Для отладки

Вы можете перейти по адресу http://localhost:3000/tester в своём браузере. На этой странице можно тестировать сервер: следить за клиентом, отправлять любые команды, управлять "СпамПушкой", видеть полный список видео на сервере, удалять видео (все или выборочно).

Если в браузере перейти по адресу http://localhost:3000/?dedug, то можно протестировать работу полотна, нажмите на любую свободную область, чтобы вызвать тестовый memealert. В этом режиме также отображается ID каждого видео и дополнительная информация в углу.

Если у вас возникли проблемы, создайте Issue на GitHub или свяжитесь со мной напрямую! (ТГ: @potapell0)

Как использовать команды

Команда !ma <url> [модификатор] (все пользователи)

<url> обязательный параметр. Это ссылка на видео для видеоалерта. По умолчанию можно отправлять следующие ссылки:

  • Memealerts cdns.memealerts.com (можно получить на сайте https://memealerts.com/, нажав ПКМ на открытом видео и скопировав прямую ссылку).
  • Youtube видео и shorts youtube.com, youtu.be.
  • Tiktok видео и наборы изображений tiktok.com.

Вы также можете разрешить отправку прямых ссылок на видео из любых источников (установите allowUnknownSourceVideos=true в options.cfg). Не рекомендуется для Twitch, пользователи могут легко отправить запретку!

[модификатор] необязательный параметр. Пользователи могут применять модификаторы к видеоалертам. По умолчанию включены, выключить можно в конфиге allowModifiers. Список модификаторов:

  • pos [x] [y] устанавливает позицию видеоалерта.
  • rotate видео будет вращаться.
  • faster, slower устанавливает скорость воспроизведения (x1.5 и x0.7).
  • speed [x] устанавливает пользовательскую скорость воспроизведения, диапазон -> [0.25; 3.0].
  • party бесконечное изменение цвета (hue-rotate) и тряска.
  • cursed видеоалерт будет чёрно-белым.
  • wide, tall делают видеоалерт широким/высоким.
  • invert инвертируют цвета видеоалерта.

Если пользователь не выбирает модификатор сам, сервер с некоторым шансом может выбрать случайный. Шанс настраивается переменной randomModifierChance в конфиге, можете выставить 0 чтобы выключить это.

Важно: модификаторы скорости не действуют на Youtube. На Tiktok-картинки не действуют ВСЕ модификаторы и эффекты!

Команда !mod <действие> [аргументы] (только для модераторов)

<действие> обязательный параметр. Действие, которое нужно выполнить:

  • rema удаляет все видеоалерты с сервера.
  • pb [x] [y] устанавливает значения события "СпамПушки" count\total в X\Y.
  • serv включает/отключает команду !ma для всех пользователей.
  • timeout [s] высталяет таймаут s секунд для всех запросов пользователей. Команда timeout off убирает этот таймаут. Настройка действует до следующего перезапуска сервера.

Команда !msg <режим> [текст] (только для модераторов)

Показывает сообщения на экране, в углу сверху слева (по умолчанию). Это может использоваться модераторами для таких сообщений, как: Стример ушёл покушать :), Смотрим "Kill la Kill", 3 серия и т.п.

<режим> обязательный параметр. Может быть:

  • fast [текст] сообщение появится/изменится на некоторое время, до 30 секунд, в зависимости от длины.
  • set [текст] показывает/изменяет сообщение, само не пропадёт.
  • hide прячет все типы сообщений принудительно.

Элементы и их настройка

СпамПушка (пока что не работает на 0.8.0 версии!)

СпамПушка - это событие, которое начинается, когда заполняется счётчик видеоалертов, отправленных пользователями. Во время него автоматически отправляется много рандомных видеоалертов из последних 25-ти отправленных ранее пользователями. На отправленные событием видеоалерты может автоматически примениться случайный модификатор с шансом ~50-60%. Событие длится определённое время, после счётчик обнуляется.

Событие поддаётся настройке в файле конфигурации:

  • vasgEnabled включить событие.
  • vasgLabelText изменить название события.
  • vasgTotalCount сколько нужно отправить видеоалертов, чтобы событие началось.
  • vasgEnableSaves включает сохранение прогресса счётчика.
  • vasgSpammingTime как долго длится событие, в секундах.
  • vasgSpammingIntensivity настроить интенсивность спама (от 0 до 3, по умолчанию 1).

Рандомные эффекты

Когда сервер бездействует определённое время (никто не отправляет видеоалерты), сервер покажет такое уведомление (пример): "На следующий Videoalert будет применён эффект Фулскрин на 30 секунд!". Ещё есть эффекты Спам (отправляет есколко копий) и Продление (видеоалерт будет отображаться дольше). Это сделано для того, чтобы напоминать пользователям о возможности отправлять видеоалерты. Тикток-картинки не работают с эффектами. Можно отправлять видеоалерты с модификаторами, они "стакаются" с эффектами.

Событие поддаётся настройке:

  • allowRandomEffects включить событие.
  • randomEffectWait сколько именно сервер должен бездействовать, в минутах.
  • efct[имя] вкл/выкл отдельных эффектов.
  • efct[имя][настройка] настройки отдельных эффектов.

Разметка элементов оверлея

На клиенте сервера помимо видеоалертов также отображается и оверлей. Он содержит такие элементы: Прогрессбар СпамПушки, Окно сообщений модераторов, Уведомления (система, события), Уведомления о событиях неактива. Все эти функции по умолчанию включены, но это можно настроить:

  • vasgEnabled включает СпамПушку.
  • messageBoxEnabled включает окно сообщений модераторов.
  • disableSystemNotifications выключает системные уведомления.
  • disableEventNotifications выключает уведомления о событиях.
  • allowRandomEffects включает случайные эффекты (событие неактива).

Также можно изменить отдельно позиции всех этих элементов. Расположение работает через привязку к одному из 4 углов Anchor и указанию отступа от углов Offset.

  • markMessageBox** - окно сообщений модераторов.
  • markSpamGoal** - прогрессбар СпамПушки.
  • markNotifications** - уведомления системы, событий.
  • markRandomEffect** - уведомления о событиях неактива.

Подключение TTS для модераторов

Вы можете подключить бесплатный TTS API, это позволит модераторам отправлять вам озвученные сообщения. Нужно получить ключ для этого API, для этого нужно сделать следующее:

  • Зарегистрироваться на RapidAPI.
  • Перейти сюда TTS API, и подписаться на бесплатный план (для этого НЕ НУЖЕН платёжный аккаунт).
  • Вот здесь Playground найдите переменную x-rapidapi-key.
  • Скопируйте её значение в конфиг, apiTTSkey (это должна быть примерно такая строка: abcdefg123456789abcdefgh123456abcdfg12345678asdfgh).
  • Вы также можете выбрать другой голос (apiTTSvoice в конфиге), список всех доступных голосов тут TTS API, листайте вниз.

Если всё сделано правильно, то модераторы смогут пользоваться командой !tts текст... для озвучивания сообщений на стриме!

Прочие настройки

  • sourceAllow** вкл/выкл поддерживаемые источники видео для алертов.
  • requestVideoTimeout** настройка таймаутов для запросов пользователей.
  • tiktokDenyAdVideos выключает рекламные тиктоки.
  • randomVideoMax** рандомизация некоторых переменных в заданном диапазоне.
  • localNetworkAddress включает распространение сервера по локальной сети. Это позволит подключиться по адресу, который отобразится в консоли, с любого устройства в одной локальной сети с сервером (экспериментально).
  • videoDisableShadows выключает тени у видеоалертов.

About

Custom videoalerts for Twitch streams. Supports cdns.memealerts.com, youtube videos & shorts, tiktok videos & images, instagram reels. Works on Node.js server.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages