Интеграции

Учёт рекламных интов по таймингу стрима

{{ loginError }}
⏱ Интеграции
● идёт инт {{ fmtDur(live.elapsedSec) }} {{ me.username }}
{{ me.twitchLogin ? 'запасная кнопка, если Stream Deck не под рукой' : 'сначала впиши ник канала' }} всего: {{ integrations.length }}
Пока ни одного инта. Настрой канал и кнопку на вкладке «Кнопка и канал».
Дата Канал Старт
по стриму / МСК
Конец
по стриму / МСК
Длит. Кадры Заметка
{{ fmtDate(item.startedAt) }} {{ item.channelLogin }}
стрим офлайн
{{ fmtOffset(item.startedOffsetSec) }}
{{ fmtTime(item.startedAt) }} МСК
идёт
{{ fmtOffset(item.endedOffsetSec) }}
{{ fmtTime(item.endedAt) }} МСК
{{ fmtDur(item.durationSec) }}
{{ shotText(shot) }}
+{{ shot.planOffsetSec }}с

Twitch-канал

С этого канала берётся время начала стрима и кадры. Один канал на аккаунт.

{{ channelHint }}

Кнопка на Stream Deck

  1. Скачай плагин и открой файл — Stream Deck поставит его сам.
  2. Перетащи действие «Инт» на свободную кнопку.
  3. В настройках кнопки впиши адрес https://int.xszhn.ru, свой логин и пароль, нажми «Привязать».
  4. Первое нажатие — старт инта, второе — конец. Кадры снимутся сами.

Скачать плагин Плагин ещё не собран на сервере

Привязанные кнопки

НазваниеПривязанаПоследнее нажатие
Пока ни одной кнопки
{{ d.name }} {{ fmtDateTime(d.createdAt) }} {{ d.lastSeenAt ? fmtDateTime(d.lastSeenAt) : 'ещё не нажимали' }}

Отзыв кнопки сразу выключает её — понадобится ввести логин и пароль заново.

Исходная новость

Вставь текст как есть — со ссылками, сокращениями и цифрами. Модель переложит его под чтение вслух.

{{ news.providers[0].title }} · {{ news.providers[0].model }} {{ news.source.length }} / {{ news.maxInput }} символов
{{ news.error }}
Ключей нет — впиши GEMINI_API_KEY или DEEPSEEK_API_KEY в .env и перезапусти контейнер.

Читать в эфир

Модель думает — на длинной новости это до полуминуты…
Здесь появится текст, готовый к чтению вслух.
{{ readAloud }} вслух · {{ news.result.split(/\s+/).length }} слов · {{ news.answer.providerTitle }} ({{ news.answer.model }}), {{ (news.answer.tookMs / 1000).toFixed(1) }}с · токенов: {{ news.usage.promptTokens }} на вход, {{ news.usage.completionTokens }} на выход
{{ news.result }}

Мой промпт

{{ cfg.prompt ? 'используется свой' : 'используется общий' }}

Инструкция, по которой модель переписывает новость. Оставь пустым — будет работать общий промпт.

Модели и ключи

Общие на весь сервер. Пустое поле — берётся значение из .env; если и там пусто, работает встроенный дефолт.

Провайдер по умолчанию
Температура
Лимит ответа, токенов
Размышления
Для OpenRouter и локальных моделей. Размышляющие модели вроде qwen3 или deepseek-v4-flash иначе уводят весь лимит в «мысли» и возвращают пустоту, а токены за них считаются
Gemini
Ключ
Модель
DeepSeek
Ключ
Модель
OpenRouter
Ключ
Модель
{{ or.models.length ? or.models.length + ' моделей в каталоге' : '' }}
{{ m.name }}
{{ m.id }}
{{ m.free ? 'бесплатно' : '$' + m.prompt + ' / $' + m.completion + ' за 1M' }} {{ m.context }}k
Ничего не нашлось
…и ещё {{ orHidden }} — уточни поиск
LM Studio и другие локальные
Адрес сервера
Модель
Ключ, если закрыт
Адрес LM Studio должен заканчиваться на /v1

Общий промпт

Работает у всех, кто не задал свой. Пусто — встроенный стандартный.

Новый пользователь

{{ userError }}

Пользователи

ЛогинКаналИнтовСоздан
{{ u.username }} админ {{ u.twitchLogin || '—' }} {{ u.integrations }} {{ fmtDate(u.createdAt) }}
{{ toast.text }}