Aller au contenu
twitch.apiv2.0

Un client de l'API Twitch pour JavaScript et TypeScript

Toute l'API Twitch, typée.

twitch.api est un client pour JavaScript et TypeScript qui couvre les 149 endpoints Helix et les 83 événements EventSub. Jetons, limites de débit, pagination et reconnexions sont pris en charge, sans aucune dépendance.

npm i @ix-xs/twitch.api
  • Open source, MIT
  • Node 22 et suivants
  • Aucune dépendance
01

Appelez une méthode, recevez des données typées

Pas de jeton à demander, pas d’en-tête à poser, pas de curseur à transporter. Choisissez un exemple et lancez-le : à gauche le programme, à droite ce que la bibliothèque fait pour lui. Dans l’exemple du chat, écrivez un message et le bot répond.

const twitch = new Twitch({ clientId, clientSecret });
const user = await twitch.users.getByLogin("twitchdev");
if (!user) throw new Error("No such user");
const [channel] = await twitch.channels.get({
broadcaster_id: user.id,
});
const followers = await twitch.channels
.followers({ broadcaster_id: user.id })
.total();
console.log(channel?.title, followers);
Sortie simulée
  1. Pas encore de jeton : il est demandé, une seule fois.
  2. POSTid.twitch.tv/oauth2/token200
  3. GET/users?login=twitchdev200
  4. GET/channels?broadcaster_id=141981764200
  5. GET/channels/followers?broadcaster_id=141981764&first=1200
  6. "Building the next thing" 2841907
02

Trouvez votre endpoint

Tapez ce que vous voulez faire. Chaque méthode et chaque type d’événement est ici, avec le jeton nécessaire, et renvoie vers ses paramètres, son type de retour et un exemple.

155 méthodes et 83 types d'événementsParcourir les groupes

03

Ce que vous n’écrivez plus

  • La tuyauterie des jetons

    Le jeton d’application est demandé quand un appel en a besoin. Les jetons utilisateur sont renouvelés avant d’expirer, validés chaque heure comme Twitch l’exige, et enregistrés où vous voulez.

  • Quel jeton pour quel appel

    Chaque endpoint sait s’il lui faut le jeton d’application ou celui d’un utilisateur, et lequel. moderator_id, broadcaster_id et sender_id prennent par défaut l’identité de celui qui agit.

  • Curseurs et tailles de page

    await sur une liste donne une page, for await les parcourt toutes. Les listes de plus de 100 identifiants sont découpées, récupérées en parallèle puis fusionnées.

  • La gestion des 429

    Les en-têtes de limite de débit sont suivis pour chaque jeton : les requêtes attendent leur tour au lieu d’échouer. Ce qui peut être retenté sans risque l’est.

  • La logique de reconnexion

    WebSocket, webhooks et conduits partagent un même on() typé. Reconnexions, réabonnements, vérification des signatures et livraisons en double sont gérés.

  • Deviner la forme des données

    Chaque paramètre, chaque réponse et chaque événement est typé. Les événements à plusieurs formes se précisent dès que vous testez leur discriminant.

04

Trois façons de recevoir les événements

Le même on() pour les trois. Choisissez selon l’endroit où tourne votre code.

WebSocketWebhooksConduits
Il vous fautRien à hébergerUne URL HTTPS publiqueUn processus par shard
S’abonne avecUn jeton utilisateurLe jeton d’applicationLe jeton d’application
Survit à un redémarrageNon, il se réabonneOuiOui
Convient pourBots, applications de bureau, quelques chaînesServeurs et fonctions serverlessBeaucoup de chaînes, réparties sur plusieurs processus
05

Par où continuer

twitch.api est un projet open source indépendant. Il n’est ni affilié à Twitch Interactive, Inc., ni approuvé par cette société.