Cas d'usage

Une modération par IA du chat Twitch qui connaît les règles de votre chaîne

Un chat Twitch chargé va plus vite que n'importe quel modérateur. VigiMod vérifie chaque message avec ceux qui le précèdent, dans 26 langues, et selon les règles de votre chaîne : votre bot supprime ce qui les enfreint et laisse les blagues tranquilles.

Ce qui rend la tâche difficile

Rapide et plein de blagues internes

Emotes, copypastas et taquineries entre habitués ressemblent à des insultes hors contexte. Lire les messages précédents évite la plupart des faux signalements.

Des règles qu'aucun filtre ne connaît

« Pas de spoilers sur le jeu », « Pas de backseat », « Pas d'autopromotion » : chaque chaîne a les siennes, et les listes de mots ne les repèrent pas.

Des spectateurs du monde entier

Les grosses chaînes reçoivent des messages en plusieurs langues, et les listes de mots doivent être réécrites pour chacune. VigiMod a été entraîné sur 26 langues.

Comment ça marche avec VigiMod

  1. 1

    Votre bot lit le chat (IRC ou EventSub) et garde les dix derniers messages.

  2. 2

    Chaque nouveau message part vers VigiMod avec ce contexte, l'identifiant de l'auteur et les règles de la chaîne.

  3. 3

    Si la réponse est signalée, le bot supprime le message via l'API Twitch, ou met l'utilisateur en timeout après plusieurs signalements.

Des règles à copier

Envoyez-les dans le champ rules : chacune revient avec son propre score, comme une catégorie intégrée.

{
  "rules": {
    "no-spoilers": "Pas de spoilers sur le jeu en cours",
    "no-backseating": "Ne pas dire au streamer comment jouer s'il ne le demande pas",
    "no-self-promo": "Pas de promotion de sa propre chaîne ou de ses réseaux",
    "french-only": "Uniquement du français dans le chat"
  }
}

Exemple

Un bot Node.js : tmi.js lit le chat, VigiMod vérifie chaque message, l'API Twitch le supprime s'il est signalé (le jeton doit avoir le scope moderator:manage:chat_messages).

JavaScript (Node.js)

// npm install tmi.js  (Node 18+)
// tmi.js reads the chat; the Twitch API deletes a message (token scope: moderator:manage:chat_messages)
import tmi from "tmi.js";

const { VIGIMOD_KEY, TWITCH_TOKEN, TWITCH_CLIENT_ID, BROADCASTER_ID, MODERATOR_ID } = process.env;
const RULES = { "no-spoilers": "No spoilers about the game being played" };
const recent = [];                       // the last messages of the chat, sent as context

const client = new tmi.Client({ channels: ["your_channel"] });

client.on("message", async (channel, tags, text, self) => {
  if (self) return;
  const res = await fetch("https://api.vigimod.com/moderate", {
    method: "POST",
    headers: { "X-API-Key": VIGIMOD_KEY, "Content-Type": "application/json" },
    body: JSON.stringify({
      text: text.slice(0, 2000), context: [...recent], rules: RULES,
      user_id: tags["user-id"], scope: channel,
    }),
    signal: AbortSignal.timeout(2000),
  }).catch(() => null);                  // slow or down: let the message through
  recent.push(text.slice(0, 2000));
  if (recent.length > 10) recent.shift();
  if (!res?.ok) return;

  const result = await res.json();
  if (result.flagged) {
    const q = new URLSearchParams({ broadcaster_id: BROADCASTER_ID, moderator_id: MODERATOR_ID, message_id: tags.id });
    await fetch(`https://api.twitch.tv/helix/moderation/chat?${q}`, {
      method: "DELETE",
      headers: { Authorization: `Bearer ${TWITCH_TOKEN}`, "Client-Id": TWITCH_CLIENT_ID },
    });
  }
});

client.connect();

Conseils

  • Gardez AutoMod activé : il retient les messages avant leur affichage ; VigiMod ajoute ensuite vos règles, le contexte et les autres langues.
  • Supprimez au premier signalement, mais ne mettez en timeout qu'après plusieurs signalements du même utilisateur en peu de temps.
  • Envoyez user_id et la chaîne comme scope : les messages répétés et le flood d'un même utilisateur font monter le score de spam.

Questions

VigiMod remplace-t-il AutoMod de Twitch ?
Non, il fonctionne avec lui. AutoMod est intégré à Twitch et retient les messages avant leur affichage ; VigiMod vérifie vos propres règles, lit le contexte et couvre 26 langues.
Est-ce assez rapide pour un chat en direct ?
Chaque message est un appel HTTP. Donnez-lui un délai court (environ deux secondes) et, si un appel échoue ou traîne, laissez passer le message pour que le chat continue.
Et les chaînes très fréquentées ?
La bêta gratuite permet 120 messages par minute et par clé API. Si votre chat va plus vite, écrivez au support avec votre volume et la limite peut être relevée.
Puis-je l'utiliser pour les VOD ou les clips ?
VigiMod ne vérifie que du texte. Vous pouvez vérifier les titres, les rediffusions du chat et les commentaires, mais pas la vidéo ni l'audio.

Essayez-le sur votre communauté

Créez une clé API gratuite en deux minutes. Sans carte, sans période d'essai.