____ _ _ _
/ ___| | __ _ _ __(_) |_ _ _
| | | |/ _` | '__| | __| | | |
| |___| | (_| | | | | |_| |_| |
\____|_|\__,_|_| |_|\__|\__, |
|___/
What Clarity isЧто такое Clarity
Clarity is a chat-bot for Twitch and Kick rolled into one. A single bot account (shizick666 on Twitch, sh1zick on Kick) works on any channel where it is moderator.
Clarity — это чат-бот для Twitch и Kick в одном лице. Один аккаунт бота (shizick666 на Twitch, sh1zick на Kick) умеет работать на любом канале где он назначен модератором.
what it can doчто умеет
- Faceit — live elo, stats for today, last match, lobby with live score
- Stream — status, uptime, change title/category by command
- Music recognition —
!trackidentifies the song playing (Shazam-like via AudD) - Economy — coins for activity, transfers, leaderboards, daily bonuses
- Trivia / mini-games — quizzes with auto-start, in-chat mini-games
- Giveaways / lottery — raffles through the bot
- Timers — recurring chat messages
- Custom commands with templating (
$(random),$(choose),$(urlfetch)) - Auto-moderation — link and ban-word filters with timeout
- Faceit — реальное эло, статистика за сегодня, последний матч, лобби с live score
- Stream — статус, аптайм, изменение названия/категории через команду
- Music recognition —
!трекраспознаёт играющий трек (Shazam-like через AudD) - Economy — монеты за активность, переводы, топ, ежедневные бонусы
- Trivia / mini-games — викторины с автозапуском, мини-игры в чате
- Giveaways / lottery — розыгрыши через бота
- Timers — периодические сообщения в чат
- Custom commands с шаблонизатором (
$(random),$(choose),$(urlfetch)) - Auto-moderation — фильтр ссылок и банвордов с таймаутом
tech stackтех-стек
runtime :: python 3.12 + asyncio web :: quart (async flask) twitch :: twitchio (irc) + helix api kick :: kick public api v1 + webhooks deploy :: vps (ubuntu) :: systemd :: nginx
Connect the botПодключить бота
1. Sign in1. Войти
Open claritysync.ru/login and press Sign in with Twitch or Sign in with Kick. Confirm access in the provider window — you will land straight in the dashboard.
Открой claritysync.ru/login и нажми Войти через Twitch или Войти через Kick. Подтверди доступ в окне провайдера — и сразу окажешься в панели.
2. Make the bot a moderator2. Сделать бота модератором
Timeouts, deleting messages and sending without cooldown all require moderator rights. Type this in your own chat:
Таймауты, удаление сообщений и отправка без кулдауна работают только с правами модератора. Напиши у себя в чате:
/mod shizick666 # Twitch /mod sh1zick # Kick
3. Turn the bot on3. Включить бота
On the Dashboard screen find Quick actions and flip the Bot in chat switch. The bot joins your chat right away.
На экране Главная найди блок Быстрые действия и включи тумблер Бот в чате. Бот сразу зайдёт в твой чат.
4. Set things up4. Настроить
Everything else lives on the Modules screen. Twelve blocks, each switched on separately — turn on only what you need so the chat is not flooded with commands nobody uses.
Всё остальное — на экране Модули. Двенадцать блоков, каждый включается отдельно. Включай только нужное, чтобы в чате не болтались команды, которыми никто не пользуется.
- FACEIT stats — enter your FACEIT nickname, otherwise
!eloand friends have nothing to look up - Moderation — ban-word and link filter
- Viewer points — needed for activities, lottery and track requests
- Event responses — greetings for raids, follows and subs
- Статистика FACEIT — впиши свой ник на FACEIT, иначе
!eloи остальным нечего искать - Модерация — фильтр запрещённых слов и ссылок
- Баллы зрителей — нужны для активностей, лотереи и заказа треков
- Реакции на события — приветствия на рейды, фолловы и подписки
Dashboard tourОбзор панели
The panel is split into eight screens. Navigation lives in the sidebar on the left; on a phone it hides behind the menu button.
Панель разбита на восемь экранов. Навигация — в боковом меню слева, на телефоне оно прячется за кнопкой меню.
ScreensЭкраны
Top barВерхняя панель
Shows the current screen name. Admins also get a channel switcher: pick a channel and the whole panel switches to it. On the right — language and theme toggles.
Показывает название текущего экрана. У админа рядом переключатель каналов: выбираешь канал, и вся панель переключается на него. Справа — язык и тема.
SavingСохранение
Module settings save by themselves — there is no Save button. Flip a switch or change a number and it is stored. Commands, timers and presets are saved by their own buttons.
Настройки модулей сохраняются сами — кнопки «Сохранить» там нет. Переключил тумблер или поменял число — уже записалось. Команды, таймеры и пресеты сохраняются своими кнопками.
FACEIT statsСтатистика FACEIT
Needs a FACEIT nickname in Modules → FACEIT stats. Works with CS2 and CS:GO. Each command can be switched off separately inside the module.
Нужен ник на FACEIT в Модули → Статистика FACEIT. Работает с CS2 и CS:GO. Каждую команду можно выключить отдельно внутри модуля.
!checkelo nicknameэло любого игрока: !checkelo никHow to set upКак настроить
Modules → FACEIT stats → turn the module on → press Configure → type your nickname → Save. Below the field there are six switches, one per command.
Модули → Статистика FACEIT → включи модуль → нажми Настроить → впиши ник → Сохранить. Под полем шесть тумблеров, по одному на команду.
Data comes from the official FACEIT API. Live lobby state uses an unofficial endpoint, so it can occasionally lag or go quiet.
Данные идут из официального API FACEIT. Состояние живого лобби берётся из неофициального эндпоинта, поэтому иногда может отставать или молчать.
Stream controlУправление стримом
Lets moderators change title and category without opening the dashboard. Switch on in Modules → Stream control.
Позволяет модераторам менять название и категорию, не заходя в панель. Включается в Модули → Управление стримом.
!title new titleсменить название: !title новое название!game Counter-Strike 2сменить категорию: !game Counter-Strike 2MusicМузыка
Two different things live here: recognising what is playing right now, and letting viewers request tracks for coins.
Здесь два разных механизма: распознать, что играет прямо сейчас, и дать зрителям заказывать треки за монеты.
How recognition worksКак работает распознавание
The bot grabs a few seconds of your stream audio, builds a fingerprint and asks the AudD service. Recognition needs yt-dlp, ffmpeg and an AUDD_API_TOKEN on the server.
Бот берёт несколько секунд звука с твоего стрима, строит отпечаток и спрашивает сервис AudD. Для этого на сервере нужны yt-dlp, ffmpeg и AUDD_API_TOKEN.
Possible answersЧто может ответить
- artist and title — recognised
- nothing found — music too quiet, drowned by voice, or not in the database
- stream offline — there is no audio to listen to
- исполнитель и название — узнал
- ничего не найдено — музыка слишком тихая, забита голосом или её нет в базе
- стрим офлайн — слушать нечего
Viewer pointsБаллы зрителей
Coins are earned for chatting and for donations. They are spent on games, lottery tickets, track requests and paid commands. Switch on in Modules → Viewer points; each command has its own toggle inside.
Монеты копятся за активность в чате и за донаты. Тратятся на игры, билеты лотереи, заказ треков и платные команды. Включается в Модули → Баллы зрителей, у каждой команды свой тумблер внутри.
Balance and transfersБаланс и переводы
!перевод nickname 500перевести монеты другому: !перевод ник 500!givecoins nickname 1000выдать или забрать монеты: !givecoins ник 1000LeaderboardsТопы
Paid commandsПлатные команды
You can charge coins for your own custom commands — handy for requests, shout-outs and jokes.
За свои команды можно брать монеты — удобно для реквестов, приветов и шуток.
!addcmdmon !hello 500сделать команду платной: !addcmdmon !привет 500Coins for donationsМонеты за донаты
Connect DonationAlerts in Settings, then set the rate in Modules → Viewer points. At a rate of 10 a 100 ₽ donation gives the viewer 1000 coins.
Подключи DonationAlerts в Настройках, потом задай курс в Модули → Баллы зрителей. При курсе 10 донат на 100 ₽ даст зрителю 1000 монет.
TriviaВикторина
The bot asks a question, viewers answer for a stake in coins. First correct answer takes the pot. Needs the Viewer points module.
Бот задаёт вопрос, зрители отвечают за ставку в монетах. Первый правильный ответ забирает банк. Нужен модуль Баллы зрителей.
!trivia 500 where 500 is the stakeзапустить раунд: !trivia 500, где 500 — ставка!ответ Parisответить на текущий вопрос: !ответ ПарижSettingsНастройки
- Attempt cost — how many coins one answer costs
- Round duration — how long the question stays open
- Cooldown — pause before the next round can start
- Categories — CS2, Dota, anime, films, music, countries
- Цена попытки — сколько монет стоит один ответ
- Длительность раунда — сколько висит вопрос
- Пауза между раундами — сколько ждать до следующего
- Категории — CS2, Dota, аниме, кино, музыка, страны
AutostartАвтозапуск
Turn on Start automatically and set the interval in minutes — the bot will run rounds on its own without anyone typing the command.
Включи Запускать автоматически и задай интервал в минутах — бот будет сам запускать раунды, без команды.
Chat activitiesАктивности в чате
Ставки, дуэли и предсказания на баллы зрителей. Включается в Модули → Активности в чате, у каждой свой тумблер.
Ставки, дуэли и предсказания на баллы зрителей. Включается в Модули → Активности в чате, у каждой свой тумблер.
!казино 100автомат, ставка в монетах: !казино 100!дуэль nickname 500вызвать на дуэль: !дуэль ник 500Giveaway and lotteryРозыгрыш и лотерея
GiveawayРозыгрыш
Viewers type a keyword in chat and get into the list. The winner is drawn at random. You can run it from the dashboard or straight from chat — the panel sees both.
Зрители пишут в чат ключевое слово и попадают в список. Победитель выбирается случайно. Запускать можно из панели или прямо из чата — панель видит и то, и другое.
!raffle start !roll — viewers then type !rollзапустить: !raffle start !roll — дальше зрители пишут !rollLotteryЛотерея
Runs by itself on a timer. Viewers buy tickets for coins, the bot periodically draws the whole pot between them. Needs the Viewer points module.
Работает сама по таймеру. Зрители покупают билеты за монеты, бот периодически разыгрывает между ними весь банк. Нужен модуль Баллы зрителей.
!билет 5купить билеты: !билет 5In the module you set ticket price, how often to draw, and the minimum number of tickets — below that the draw is skipped.
В модуле задаются цена билета, как часто разыгрывать и минимум билетов — если их меньше, розыгрыш пропускается.
Death counterСчётчик смертей
Counts deaths during the stream and shows them on screen through an OBS overlay. Controlled from chat — you do not need to open the dashboard mid-run.
Считает смерти за стрим и показывает их на экране через оверлей в OBS. Управляется из чата, чтобы не лезть в панель посреди забега.
!deaths+ and !deaths +1 do the sameприбавить, убавить или поставить точное число. Работает и слитно, и с пробелом: !deaths+ и !deaths +1 — одно и то же!deathstarget 40 shows 24/40, !deathstarget 0 turns it offрежим попыток: !deathstarget 40 покажет 24/40, !deathstarget 0 выключитOverlayОверлей
The link lives in the module: Modules → Death counter → Configure. Add it to OBS as a Browser source. Count and target update instantly, no need to recreate the source.
Copy the link once. Count, target and on-screen visibility arrive over a live connection, so they change in OBS immediately — no need to recreate the source.
Ссылка лежит в модуле: Модули → Счётчик смертей → Настроить. Добавь её в OBS как источник «Браузер». Число и цель меняются мгновенно, пересоздавать источник не нужно.
Ссылку достаточно скопировать один раз. Счёт, цель и показ на стриме приходят по живому соединению, поэтому меняются в OBS сразу — источник пересоздавать не нужно.
TimersТаймеры
Automatic messagesАвтосообщения
The bot repeats a message in chat at a set interval. Handy for channel rules, social links and reminders. Set up on the Timers screen: type the text, set the interval in minutes, press Create.
Бот повторяет сообщение в чат через заданный интервал. Удобно для правил канала, ссылок на соцсети и напоминаний. Настраивается на экране Таймеры: пишешь текст, ставишь интервал в минутах, нажимаешь «Создать».
$(random), $(choose) and the rest. See the Templating section.Здесь работают шаблоны: $(random), $(choose) и остальные. Смотри раздел «Шаблоны в ответах».Stopwatch and countdownСекундомер и обратный отсчёт
Separate from the automatic messages: these two draw a timer on the stream through an OBS overlay. The link is on the Overlays screen.
Это не про автосообщения: эти две команды рисуют таймер на стриме через оверлей в OBS. Ссылка — на экране «Оверлеи».
!sw start continuesпауза, продолжить через !sw start!timer start 10 — ten minutes, !timer start 5:30 — five and a halfобратный отсчёт: !timer start 10 — десять минут, !timer start 5:30 — пять с половинойModerationМодерация
Automatic chat filter. Works without commands: switch the module on and it starts watching. Offenders get a ten-minute timeout.
Автоматический фильтр чата. Работает без команд: включил модуль — он начал следить. Нарушителю выдаётся таймаут на десять минут.
Ban wordsЗапрещённые слова
The bot deletes messages containing words from the list and times the author out. The list is edited in the module.
Бот удаляет сообщения со словами из списка и выдаёт автору таймаут. Список редактируется в модуле.
Link protectionЗащита от ссылок
By default any link from a viewer is deleted. Two switches loosen this:
По умолчанию любая ссылка от зрителя удаляется. Два тумблера это ослабляют:
- Allow Twitch links — clips and channel links stay
- Allow all links — link protection off completely
- Разрешить ссылки на Twitch — клипы и ссылки на каналы остаются
- Разрешить любые ссылки — защита от ссылок выключена полностью
Custom commandsСвои команды
Your own commands: the viewer types a trigger, the bot answers with a set text. Manage them from chat or on the Dashboard screen.
Свои команды: зритель пишет триггер, бот отвечает заданным текстом. Управлять можно из чата или на экране «Главная».
!addcmd !discord discord.gg/mychannelсоздать: !addcmd !дискорд discord.gg/mychannel!editcmd !discord new textизменить ответ: !editcmd !дискорд новый текст!delcmd !discordудалить: !delcmd !дискордtemplating // dynamic substitutions
Inside a custom command response (and timer message) you can use templates. They are substituted on the fly.
Внутри ответа кастомной команды (и timer-сообщения) можно использовать шаблоны. Они подставляются на лету.
|случайный вариант из списка через |examplesпримеры
$ !addcmd !hug $(user) hugs $(touser) 🤗 user: !hug @viewer bot: user hugs viewer 🤗 $ !addcmd !dice rolled $(random 1 6) 🎲 bot: rolled 4 🎲 $ !addcmd !shoot $(choose hit|missed|critical hit) bot: critical hit
$ !addcmd !hug $(user) обнимает $(touser) 🤗 user: !hug @viewer bot: user обнимает viewer 🤗 $ !addcmd !dice выпало $(random 1 6) 🎲 bot: выпало 4 🎲 $ !addcmd !shoot $(choose попал|промахнулся|критический хит) bot: критический хит
OverlaysОверлеи
Ready-made HTML chat overlays for embedding in OBS. Connected as a Browser Source — separate layer on top of the scene. Support role-based colors (broadcaster / mod / vip / sub), badges, 7TV/BTTV/FFZ emotes, avatars and smooth fade-out of old messages.
Готовые HTML-оверлеи чата для встройки в OBS. Подключаются как Browser Source — отдельным слоем поверх сцены. Поддерживают цвета по ролям (broadcaster / mod / vip / sub), бейджи, 7TV/BTTV/FFZ эмодзи, аватарки и плавный fade-out старых сообщений.
how to connect in OBSкак подключить в OBS
- open the Overlays screen in the panel
- pick a style you like, copy its URL
- in OBS:
+ → Browser → URL, paste the link, width 420, height 720 (or your size) - checkbox
Shutdown source when not visible— recommended (saves CPU) - в панели открыть экран Оверлеи
- выбрать понравившийся стиль из списка, скопировать его URL
- в OBS:
+ → Browser → URL, вставить ссылку, ширина 420, высота 720 (или под себя) - галочка
Shutdown source when not visible— рекомендуется (экономит CPU)
stylesстили
7 ready-made designs included — for different stream aesthetics:
В комплекте 7 готовых оформлений — для разной эстетики стрима:
- cards — colored plates with avatar inside (name above, text below). The most "modern".
- terminal — monochrome console style (different colors per role). Good for hacker/IT streams.
- glass — semi-transparent cards with blur effect. Minimalism.
- neon — neon glow and gradients. For bright scenes.
- minimal — no frames, just colored nicks and text. Doesn't distract.
- retro — pixel font + thick shadows. Vintage/retro games.
- bubbles — big bubbles with avatar on the left (name+text in one line).
- cards — цветные плашки с аватаркой внутри (имя сверху, текст ниже). Самый «современный».
- terminal — монохромный консольный стиль (под клиент-роли разные цвета). Хорош для хакерских/IT-стримов.
- glass — полупрозрачные карточки с blur-эффектом. Минимализм.
- neon — неоновое свечение и градиенты. Под яркие сцены.
- minimal — без рамок, только цветные ники и текст. Не отвлекает.
- retro — пиксельный шрифт + жирные тени. Винтаж/ретро-игры.
- bubbles — крупные пузыри с аватарой слева (имя+текст в одной строке).
URL parametersпараметры в URL
The Overlays screen has settings that change URL parameters automatically. Full format:
На экране «Оверлеи» есть настройки — они меняют параметры ссылки автоматически. Полный формат:
https://<host>/overlay/chat/<channel>?style=cards&fade=15&fadeAnim=slide-up&max=30
style— one of the 7 abovefade— after how many seconds a message disappears (0 = keep)fadeAnim— fade-out animation:blur,slide-up,slide-left,scale,dissolve,glitchmax— how many messages to keep on screen at oncestyle— один из 7 вышеfade— через сколько секунд сообщение исчезает (0 = не убирать)fadeAnim— анимация исчезновения:blur,slide-up,slide-left,scale,dissolve,glitchmax— сколько максимум сообщений держать одновременно
emotes (7TV/BTTV/FFZ)эмодзи (7TV/BTTV/FFZ)
Third-party emotes are loaded automatically — both global packs and your channel-specific emotes. To add memes (KEKW, OMEGALUL, Pog, etc.) — go to 7tv.app, log in via Twitch, find the emote and click Add to Active Set. Backend picks them up in ~5 minutes.
Третьесторонние эмодзи подгружаются автоматически — и глобальные пакеты, и эмодзи конкретно твоего канала. Чтобы добавить мемные (KEKW, OMEGALUL, Pog и т.д.) — заходишь на 7tv.app, логинишься через Twitch, ищешь нужный и жмёшь Add to Active Set. Бэкенд подцепит за ~5 минут.
badgesбейджи
Real Twitch badges are used (mods get a green sword, VIP — a diamond, subs — a star, etc.). Loaded via Helix API on the first chat message.
Используются настоящие бейджи Twitch (моды получают зелёный меч, VIP — алмаз, сабы — звезду и т.д.). Подгружаются через Helix API при первом сообщении в чате.
demo modeдемо-режим
If your channel is still empty — the preview runs a demo chat with fake messages: see how the style will look in real conditions. Demo emotes are global only (KEKW and similar shared emotes won't show up until you add them yourself).
Если на канале ещё тихо — в превью идёт демо-чат с фейковыми сообщениями: посмотреть как стиль будет выглядеть в реальной обстановке. Эмодзи в демо — только глобальные (KEKW и подобные shared-эмодзи не покажутся пока ты их не добавишь себе).
known issuesизвестное
Old OBS (built-in Chromium) may "sharply" cut the top of the chat instead of smooth fade. We have a JS-fallback that renders fade manually — should work. If it doesn't — update OBS to 28+.
Старая версия OBS (Chromium встроенный) может «резко» обрезать верх чата вместо плавного fade. У нас есть JS-fallback который рендерит fade вручную — должно работать. Если не работает — обнови OBS до 28+.
AnalyticsАналитика
Channel chat analytics — how many messages, who chats the most, which commands are called more often. The Analytics screen in the panel. Only the channel owner sees it.
Аналитика чата канала — сколько сообщений, кто пишет больше всех, какие команды звучат чаще. Экран Аналитика в панели. Видит только владелец канала.
what it showsчто показывает
- KPI cards — messages today / unique chatters today / messages this week / month
- messages/hour chart — line chart of chat activity for 24h / 7d / 30d (toggle)
- top chatters — top-10 most active viewers for day / week / month with progress bars
- KPI-карточки — сообщений сегодня / уникальных чаттеров сегодня / сообщений за неделю / месяц
- график messages / hour — линейный график активности чата за 24 часа / 7 дней / 30 дней (переключатель)
- top chatters — топ-10 самых активных зрителей за день / неделю / месяц с прогрессбарами
how it worksкак это работает
Bot sits in IRC chat and counts every message into an in-memory buffer (no disk writes — fast, doesn't block chat). Once every 60 seconds the buffer is flushed to a SQLite database analytics.db. The dashboard shows you aggregates — no raw messages are stored.
Бот сидит в IRC-чате и считает каждое сообщение в in-memory буфер (без записи на диск — это быстро и не блокирует чат). Раз в 60 секунд буфер сливается в SQLite-базу analytics.db. В панели ты видишь только сводки — сами тексты сообщений нигде не хранятся.
what is NOT collectedчто НЕ собирается
- message text (only counters)
- private/whisper messages
- data from other channels — each streamer sees only themselves
- тексты сообщений (только счётчики)
- приватные/whisper-сообщения
- данные с других каналов — каждый стример видит только себя
data collection start pointс какого момента данные
Analytics starts accumulating from the moment the bot is enabled on the channel. No historical data before that — Twitch doesn't provide it. First numbers on the chart will appear 1-2 minutes after start.
Аналитика начинает копиться с момента включения бота на канале. Исторических данных за период до подключения нет — Twitch их не отдаёт. Первые цифры на графике появятся через 1-2 минуты после старта.
roadmap
phase 2 planned: activity heatmap by hour/day-of-week, top commands (!faceit, !music), top emotes, follower growth per day, per-stream breakdown (peak viewers per each stream).
в этап 2 запланированы: heatmap активности по часам/дням недели, топ команд (!faceit, !музыка), топ эмодзи, рост followers по дням, per-stream breakdown (peak viewers за каждый стрим).
twitch integration
bot accountаккаунт бота
shizick666 — single bot account for all Twitch channels.
shizick666 — единый аккаунт бота для всех Twitch-каналов.
how to authorizeкак авторизоваться
On /login type 1 or twitch. Twitch OAuth opens — grant access.
На странице /login введи 1 или twitch. Откроется OAuth страница Twitch — разреши доступ.
messagesсообщения
Bot sends via official Helix /chat/messages endpoint — this gives your stream a bot badge in chat (same as other "Verified Bot" accounts).
Бот отправляет через официальный Helix /chat/messages endpoint — это даёт твоему стриму бот-значок в чате (как у других "Verified Bot" аккаунтов).
not supportedчто не поддерживается
- Message pin — Twitch doesn't expose API for third-party (only via web cookies)
- Subscriber events — partially via EventSub, not everywhere
- Pin сообщений — Twitch не предоставляет API для third-party (только через web-cookies)
- Subscriber events — частично через EventSub, не везде
kick integration
bot accountаккаунт бота
sh1zick — single bot account for all Kick channels.
sh1zick — единый аккаунт бота для всех Kick-каналов.
how to addкак добавить
- On /login type
2orkick - Authorize via Kick OAuth
- Switch to your Kick channel in the panel — the dropdown at the top
- In Kick chat give bot mod rights:
/mod sh1zick - На /login введи
2илиkick - Авторизуй через Kick OAuth
- В панели переключись на свой Kick-канал — выпадающий список сверху
- В чате Kick выдай боту мод-права:
/mod sh1zick
what worksчто работает
- Faceit (
!elo,!lobby, etc.) - Custom commands + templating
- Economy
- Trivia + autostart
- Mini-games / lottery
- Giveaways + timers
- Moderation (link/banword filter)
- Stream control (
!title,!game, quick-cats) - Music (
!track) - Faceit (
!elo,!lobbyи т.д.) - Кастомные команды + шаблонизатор
- Экономика
- Trivia + автозапуск
- Mini-games / lottery
- Giveaways + timers
- Moderation (фильтр ссылок/банвордов)
- Стрим-управление (
!title,!game, quick-cats) - Music (
!трек)
notesособенности
On Kick new accounts may not be allowed to post links — it's blocked by Kick itself, not our bot. Fixed by account verification or mod rights on the channel where it posts.
На Kick новые аккаунты могут не иметь права писать ссылки — это блокирует сам Kick, не наш бот. Решается верификацией аккаунта или mod-правами на канале где он пишет.
public faceit api // for nightbot / streamelements / fossabot
Any streamer can add Faceit commands to their Nightbot (or StreamElements / Fossabot) via our public API — no registration, no auth.
Любой стример может добавить Faceit-команды в свой Nightbot (или StreamElements / Fossabot) через наш публичный API — без регистрации, без авторизации.
API returns plain text, cached for 60 seconds, limited to 400 chars (Nightbot's limit for $(urlfetch)).
API возвращает plain text, кэшируется на 60 секунд, ограничен 400 символами (лимит Nightbot для $(urlfetch)).
endpoints
Parameter: ?nick=FaceitNick (also ?nickname=...). Case-insensitive.
Параметр: ?nick=FaceitNick (можно также ?nickname=...). Регистр не важен.
examplesпримеры
// test in browser, replace nick with yours:проверь прямо в браузере, заменив ник на свой: https://claritysync.ru/api/nb/elo?nick=sh1zick // response (plain text):ответ (plain text): ⭐ Lvl 10 · 2350 elo · today: 5W-2L (+45)сегодня: 5W-2L (+45)
how to add to nightbotкак добавить в nightbot
- Go to your Nightbot dashboard → Commands → Custom
- Click Add Command
- Fill in:
Name: !elo Message: $(urlfetch https://claritysync.ru/api/nb/elo?nick=YOUR_FACEIT_NICK) Userlevel: Everyone Cooldown: 5
- Save and test in chat with
!elo - Зайди в свою Nightbot dashboard → Commands → Custom
- Нажми Add Command
- Заполни:
Name: !elo Message: $(urlfetch https://claritysync.ru/api/nb/elo?nick=ТВОЙ_ФЕЙСИТ_НИК) Userlevel: Everyone Cooldown: 5
- Сохрани и проверь в чате
!elo
add via chat (faster)добавить через чат (быстрее)
In your Twitch chat tell Nightbot (replace sh1zick with your faceit nick):
В своём Twitch-чате напиши Nightbot'у (вместо sh1zick — свой faceit ник):
!addcom !elo $(urlfetch https://claritysync.ru/api/nb/elo?nick=sh1zick) !addcom !today $(urlfetch https://claritysync.ru/api/nb/today?nick=sh1zick) !addcom !last $(urlfetch https://claritysync.ru/api/nb/last?nick=sh1zick) !addcom !lobby $(urlfetch https://claritysync.ru/api/nb/lobby?nick=sh1zick)
streamelements / fossabot
Works identically — use the same URL inside ${urlfetch} (SE) or (customapi) (Fossabot).
Работает идентично — используй такой же URL внутри ${urlfetch} (SE) или (customapi) (Fossabot).
streamelements exampleпример streamelements
!command add !elo ${urlfetch https://claritysync.ru/api/nb/elo?nick=sh1zick}
fossabot exampleпример fossabot
!commands add !elo $(customapi https://claritysync.ru/api/nb/elo?nick=sh1zick)
limits and stabilityлимиты и стабильность
- 60s cache — repeat requests within a minute return the same response instantly, no load on Faceit.
- 400 char limit — long responses are auto-truncated with
…. - Nightbot itself sets default cooldown ~5s per command — that's fine.
- Faceit API limits our bot to ~10 req/sec, but with 60s cache it's not a problem even on big channels.
- Кэш 60 секунд — повторные запросы за минуту отдают тот же ответ мгновенно, без нагрузки на Faceit.
- Лимит 400 символов — длинные ответы автоматически обрезаются с
…. - Сам Nightbot ставит cooldown по умолчанию ~5 секунд на команду — это норм.
- Faceit API ограничивает наш бот ~10 запросов/секунду, но с кэшем 60с это не проблема даже на крупных каналах.
legacy pathsустаревшие пути
Old paths /api/public/faceit/elo etc. work the same, use whichever. The new /api/nb/* are just shorter.
Старые пути /api/public/faceit/elo и т.д. — работают так же, можешь использовать любые. Новые /api/nb/* просто короче.
troubleshoot
bot doesn't respond in chatбот не отвечает в чате
- Check the Bot in chat switch is on, on the Dashboard screen
- Check that bot is a mod on your channel (
/mod shizick666on twitch) - Twitch may delay messages from new bots on new channels — wait a few minutes
- Проверь, что тумблер Бот в чате включён на экране «Главная»
- Проверь что бот — мод твоего канала (
/mod shizick666на twitch) - Twitch может задерживать сообщения новых ботов на новых каналах — подожди несколько минут
!track says "feature not configured"!трек пишет "функция не настроена"
Server doesn't have yt-dlp or ffmpeg installed. Admin should install:
На сервере не установлен yt-dlp или ffmpeg. Админ должен установить:
apt install -y ffmpeg pip install yt-dlp
!track says "audd: quota exceeded"!трек пишет "audd: quota exceeded"
AudD free limit (300/mo) is used up. Need to update token in .env or wait until next month.
Закончился бесплатный лимит AudD (300/мес). Надо обновить токен в .env или подождать следующего месяца.
streamer shows offline while onlineстример показывается offline хотя онлайн
Cache refreshes every 60 seconds — wait a minute. If still offline — ping us, we'll check logs.
Cache обновляется раз в 60 секунд — подожди минуту. Если всё равно offline — пиши, посмотрим логи.
contact / about
$ cat ~/about.txt
coder. ~2 years deep in python — asyncio, quart, twitchio, some frontend (vanilla js, html, css), deploys on linux-vps, nginx, systemd. love when everything works by itself and quietly. clarity is my main long-term project. started as a simple twitch-bot for my own channel, grew into a multi-platform thing with kick integration, faceit live-summaries, economy, mini-games, shazam-style music recognition and a full web dashboard. i do everything myself: backend, frontend, deploy, support, docs. open to commercial projects, bot/integration gigs and just interesting collabs.
кодер. ~2 года плотно в python — asyncio, quart, twitchio, немного frontend (vanilla js, html, css), деплой на linux-vps, nginx, systemd. люблю когда всё работает само и тихо. clarity — мой основной долгосрочный проект. начинал как простой twitch-бот для своего канала, вырос до multi-platform штуки с kick-интеграцией, faceit live-сводками, экономикой, мини-играми, шазам-распознаванием музыки и полноценной веб-панелью. делаю всё сам: backend, frontend, deploy, support, документация. открыт к коммерческим проектам, заказам на ботов / интеграции и просто интересным коллабам.
$ whoami --details
role :: developer / admin / solo nickname :: sh1zick since :: ~2 years in python stack :: python · asyncio · quart · twitchio · kick api · sqlite · aiohttp frontend :: vanilla js · html · css (without frameworks, on purpose) deploy :: ubuntu vps · systemd · nginx status :: open for work twitch :: twitch.tv/shizick666 kick :: kick.com/sh1zick telegram :: t.me/sh1zick666 email :: shizick@claritywork.ru