Vovó Справка

API Vovó 1

Создано из собственного кода Vovó, поэтому всегда соответствует этой версии. Текст от зрителей всегда приходит как простой текст, а не как HTML.

Простые события

Одинаковы на всех платформах; {platform} говорит, на какой. Для того, что есть только у одной платформы, используйте её собственное событие ниже.

follow

Кто-то начал отслеживать канал. Источник twitch.follow.

sub

Кто-то подписался, продлил подписку или получил её в подарок. Источник twitch.sub.

raid

Другой канал устроил рейд на этот. Источник twitch.raid.

chat

Сообщение в чате. Источник twitch.chat.

tip

Кто-то отправил деньги или Bits. Источник twitch.cheer.

Twitch

twitch.follow

Отслеживание на Twitch.

twitch.sub

Подписка, продление или подарочная подписка на Twitch.

twitch.raid

Рейд на Twitch.

twitch.chat

Сообщение в чате Twitch.

twitch.viewers

Сколько человек смотрит стрим. Twitch опрашивается примерно раз в минуту, пока идёт стрим; событие приходит, когда число меняется, и с live = false, когда стрим заканчивается.

twitch.cheer

Bits, отправленные на Twitch.

twitch.redemption

Получена награда за баллы канала.

twitch.redemption.resolved

Получение, ждавшее в очереди награды, одобрено или отклонено (отклонение возвращает баллы).

twitch.hypetrain

Хайп-трейн начался, продвинулся или закончился.

От Vovó и OBS

button

Нажата её кнопка на паде.

hotkey

Нажата глобальная горячая клавиша — с игрой на переднем плане или нет. Триггер задаёт сочетание условием, keys равно Ctrl+Alt+1, и приложение слушает его, пока профиль активен.

timer

Сработал таймер. Триггер задаёт частоту условием, every — число секунд (5 или больше); без него срабатывает каждую минуту. Отсчёт идёт с момента появления триггера и останавливается во время паники.

control

Один из элементов управления действия изменён на паде. Его новое значение есть и в vovo.state под ключом элемента, так что страница, открытая позже, его покажет. Действие, предлагающее элементы управления, получает это, не добавляя как триггер.

settings

Изменилось выбранное в настройках действия, в «Настроить»: vovo.settings, его переменные --vovo-<key> и атрибуты data-vovo-<key> уже содержат новые значения. Действие, объявляющее настройки, получает это, не добавляя как триггер.

panel

В панели действия что-то сделали (panel в его манифесте, показана в «Панелях» на боковой панели): нажали кнопку, отправили форму или нажали кнопку в строке списка. Как и control, действие с панелью получает это, не добавляя как триггер; запускает это только ведущий стрим.

webhook

Вызван входящий вебхук.

obs.scene

OBS переключил сцену.

media.track

Изменилось то, что играет на этом компьютере: другой трек, или воспроизведение и пауза. Приходит от любого приложения, которое сообщает Windows, что играет (Spotify, браузер, плеер).

audio.level

Громкость микрофона, примерно 20 раз в секунду, пока она меняется: для двигающегося рта, индикатора, свечения. Vovó слушает, только пока открытый оверлей показывает действие, ждущее этого; сам звук никогда не покидает компьютер, только его громкость.

screen.color

Цвет основного экрана, несколько раз в секунду, пока он меняется: для свечения или рамки, которые следуют за игрой. Считывается, только пока открытый оверлей показывает действие, ждущее этого; экранный оверлей самой Vovó в него не попадает.

input.move

Как стример двигается в игре, до 60 раз в секунду, пока это меняется: насколько повернулась камера, куда он идёт и прыгает ли. Для сцены, которая покачивается вместе с камерой, наклоняется при стрейфе и проседает при прыжке. Приходит от мыши, клавиш движения (W, A, S и D по их месту на клавиатуре, какой бы ни была раскладка, или стрелок, и пробела) и первого подключённого контроллера (его стиков и кнопки A), всегда как направление, а не как клавиша. Считывается, только пока открытый оверлей показывает действие, ждущее этого, ничего из остальной клавиатуры, и клавиши — не тогда, когда окно Vovó на переднем плане (мышь и контроллер — да, если компьютер не приостанавливает и их). Игра, запущенная от имени администратора, может скрывать свой ввод от Vovó, которая работает без этих прав.

speech.text

Что стример сказал в микрофон, записанное по фразам, для субтитров: Whisper на этом компьютере или OpenAI, если стример выбрал его («Настройки > Голос», «Речь в текст»). Микрофон считывается, только пока открытый оверлей показывает действие, которое это слушает; каждая фраза приходит, когда заканчивается её пауза, через секунду-две после сказанного, и ничего не сохраняется.

screen.shared

Общий экран вышел в эфир или ушёл из него: экран, окно или вкладка браузера — собственный экран стримера (захваченный самой Vovó или со страницы показа в браузере) или экран гостя, которого стример вывел в эфир. Действие, которое его размещает (vovo.screen.place), его показывает. Оно приходит снова, по-прежнему с истинным on, когда что-то другое занимает место того, что показывалось.

camera

Камера, которую действие разместило (vovo.camera.place), появилась на его странице или пропала: стример включил или выключил камеру, паника её выключила, её отключили или её использует другая программа. Как и settings, действие, которое размещает камеру, получает это, не добавляя как триггер.

persona.answer

Персона ответила кому-то, с одобрением, если оно включено. Приложение само отправляет ответ в чат и озвучивает его, если так настроено; действие его показывает.

tts.spoken

Приложение прочитало что-то вслух в эфире: сообщение из чата, которое ведущий выбрал для чтения, или текст награды после одобрения. Оно произносит это само, голосом для чтения («Настройки > Голос»); действие это показывает или даёт работу рту персонажа. Строка, которую сама персона написала в чат, приходит с persona = true, и приложение произносит её голосом персоны, только если персоне задано говорить, так что действие, озвучивающее персону, говорит её вместо приложения.

music.request

Зритель заказал трек из музыкального плеера Vovó, через награду или команду в чате («Настройки > Музыка»), и вот что с заказом стало: ждёт одобрения, попал в очередь, начал играть, был отклонён, или не принят и почему. Сама Vovó ничего не пишет в чат; действие отвечает там или показывает, кто заказал то, что играет.

sound.played

Звуковая кнопка пада воспроизвела свой звук или выбранный случайно из своих звуков.

video.played

Видеокнопка пада воспроизвела своё видео поверх сцены или выбранное случайно из своих видео.

remote.talk

Кто-то говорит в эфир с телефона, удерживая кнопку, как у рации: его голос звучит сейчас во всех оверлеях стрима, со страницы сцены. Действие показывает, кто говорит, пока он говорит.

call.started

Голосовой звонок, запрошенный действием (vovo.call.start), открыт: модель на линии, слышит тишину, а её слова пока не воспроизводятся — до vovo.call.answer. Каждая страница, показывающая действие, получает это, чтобы каждая могла звонить своим телефоном и отвечать синхронно.

call.answered

На звонок ответили (vovo.call.answer, с любой страницы): микрофон доходит до модели, а её голос звучит на стриме.

call.text

Только что сказанное в звонке, записанное по несколько слов, по мере речи: стороны могут перекрываться. Для субтитров или расшифровки; сам голос воспроизводит страница сцены.

call.ended

Звонок окончен или так и не открылся: голос остановлен на всех страницах.

overlay.connected

Подключилась страница оверлея активного профиля: OBS загрузил или перезагрузил сцену. Действия этой страницы тоже это получают, когда загрузятся.

JavaScript

Шаблоны

{field} внутри шаблона заполняется этим полем события как простой текст.

CSS

Разрешения

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