MAISON TSMSUCH MILLION. VERY TECHNICALLY.

5 min de lecture

twichat, un client Twitch de bureau centré sur le chat

twichat 0.1.0 est sorti : un client Twitch gratuit et open source pour macOS, Windows et Linux, où le chat prend la fenêtre et le direct se range à côté.

Le Shiba en costume, installé dans un fauteuil club en cuir, regarde un grand écran où twichat affiche un chat sur toute la largeur et un petit lecteur vidéo.

twichat 0.1.0 est sorti ce soir. C’est un client Twitch de bureau, gratuit et open source, pour macOS, Windows et Linux. Le principe tient en une phrase : un salon avec la télé allumée. Le chat prend la fenêtre, le direct se range à côté. On le télécharge sur twichat.theslumdogemillionaire.com.

Pourquoi un client de bureau

Sur une page de stream, le chat tient dans une colonne étroite à droite de la vidéo. Les pseudos sont coupés, les emotes réduites au minimum, et chaque chaîne demande son onglet de navigateur. Quand on suit plusieurs directs à la fois, ou qu’on vient surtout pour la conversation, ces proportions ne vont pas.

Dans twichat, elles sont à vous. Le chat occupe la largeur de la fenêtre, avec les avatars, les badges et les emotes en taille réelle. Les réponses forment des fils, les mentions colorent la ligne et vous notifient. Et le direct prend la place que vous lui laissez.

twichat ouvert sur une chaîne active : la liste des chaînes à gauche, une grande conversation avec avatars, badges, emotes et réponses au centre, la fiche d’un habitué en survol et le direct dans un petit lecteur à droite.
Le chat au premier plan, le direct dans un coin. Capture de la version 0.1.0, sur une chaîne de démonstration.

Ce que fait la version 0.1.0

  • Jusqu’à vingt chaînes ouvertes dans la barre latérale, et ⌘ K pour passer de l’une à l’autre.
  • Les emotes Twitch, 7TV, BetterTTV et FrankerFaceZ, rendues directement dans le chat.
  • Plusieurs comptes Twitch, la reconnexion automatique au dernier utilisé, ou le mode anonyme pour lire et regarder sans compte.
  • Les statistiques du direct (spectateurs, durée) et un explorateur des chaînes que vous suivez.
  • Un thème clair et un thème sombre.
  • Des mises à jour vérifiées au lancement puis toutes les six heures. Sous Windows, elles se téléchargent seules et s’appliquent au redémarrage.

La vidéo, à la place qu’on lui laisse

Le lecteur se montre, se cache, se redimensionne, passe en plein écran ou en audio seul. Il peut aussi sortir dans sa propre fenêtre, qui garde les proportions du direct et peut rester au-dessus des autres. Cette fenêtre suit le salon : même chaîne, mêmes commandes, et le choix est retenu pour chaque compte.

twichat avec la vidéo sortie dans sa propre fenêtre, posée par-dessus le chat, au moment où le direct vient de se terminer.
La vidéo détachée, qui remarque aussi quand le direct s’arrête.

Sous le capot

twichat n’ouvre pas la page web de Twitch. Le chat passe par une seule connexion IRC chiffrée, partagée entre toutes les chaînes. Les messages arrivent par paquets toutes les 80 millisecondes plutôt qu’un par un, et quand une chaîne s’emballe, ce sont les vieux messages ordinaires qui sautent, jamais ceux de la modération.

Chaque chaîne garde ses 500 derniers messages, et seuls ceux qui sont à l’écran existent dans la page : une grosse chaîne coûte la même chose qu’une petite. Côté vidéo, l’application lit la playlist HLS de la chaîne, choisit la qualité d’après la résolution et le débit mesurés plutôt que d’après les étiquettes, et confie la lecture à hls.js. C’est la seule bibliothèque du projet qui touche au direct : le chat et le rendu des emotes sont faits maison.

Une page de stream classique comparée à twichat, et ce qui passe sous le capot En haut, une page de stream classique : une grande vidéo, le chat dans une colonne étroite à droite, un onglet par chaîne. À côté, twichat : la liste des chaînes à gauche, le chat sur toute la largeur, la vidéo dans un petit lecteur. En bas, sous le capot : une seule connexion IRC chiffrée dessert jusqu’à vingt chaînes, chaque chaîne garde ses 500 derniers messages et seuls ceux à l’écran sont dessinés, avec les emotes Twitch, 7TV, BetterTTV et FrankerFaceZ. La vidéo vient de la playlist HLS de la chaîne, lue par hls.js dans un lecteur qu’on redimensionne ou qu’on détache. Les deux se retrouvent dans la même fenêtre. PAGE DE STREAM vidéo un onglet par chaîne TWICHAT vidéo vingt chaînes, une fenêtre SOUS LE CAPOT IRC une connexion TLS 20 chaînes 500 messages chacune Emotes Twitch · 7TV · BTTV · FFZ HLS playlist de la chaîne hls.js un seul flux actif Lecteur taille libre, détachable La fenêtre twichat le chat en grand, le direct à côté
Deux chemins, l’un pour le chat, l’autre pour la vidéo, qui se retrouvent dans la même fenêtre.

L’application est construite avec Electron, Vite et TypeScript, en séparant strictement les rôles : seul le processus principal touche au réseau, au disque et aux jetons Twitch. Les fenêtres affichent et demandent, sans aucun accès direct.

Se connecter sans confier de secret

La connexion Twitch exige un secret qu’une application installée sur votre machine ne peut pas garder. L’échange passe donc par un petit serveur, et l’application ne voit jamais ce secret. Elle tire une valeur au hasard, n’en envoie que l’empreinte, et doit présenter l’original pour récupérer ses jetons : c’est le principe de PKCE. Le ticket intermédiaire vit deux minutes, ne sert qu’une fois, et trois mauvaises tentatives le détruisent.

Ce que twichat sait de vous

Presque rien, et c’est écrit noir sur blanc dans le dépôt. Aucune télémétrie, aucun outil d’analyse, aucun rapport d’erreur envoyé. Vos jetons Twitch sont chiffrés par le trousseau du système. Les messages du chat ne sont jamais enregistrés sur le disque : ils restent en mémoire et disparaissent à la fermeture. Pour tout effacer, il suffit de supprimer le dossier de l’application ; il n’y a aucun compte à fermer ailleurs.

Le Shiba en costume referme un coffre-fort laqué noir aux ferrures dorées, presque vide, où repose une petite clé dorée.
Vos jetons restent au coffre. Le reste ne quitte pas la machine.

Une alpha, au sens propre

La version 0.1.0 porte bien son nom. macOS sur Apple Silicon est la plateforme où l’application a été construite et éprouvée ; les versions Windows et Linux sont produites par la même chaîne, mais personne ne les a encore installées. Les applications ne sont pas signées : macOS affichera l’avertissement des développeurs non identifiés, Windows celui de SmartScreen.

Le code est sous licence MIT, sur GitHub. Si quelque chose casse, c’est là qu’il faut le dire, et c’est un peu le but d’une alpha.

Téléchargez-la, ouvrez vos chaînes, et dites-moi ce qui manque. Much chat. Such window.

Questions fréquentes

Qu’est-ce que twichat ?

Un client Twitch de bureau, gratuit et open source, où le chat occupe la fenêtre. Les avatars, les badges et les emotes s’affichent en entier, les réponses forment des fils, et le direct reste à côté, à la taille qu’on lui donne.

Peut-on utiliser twichat sans compte Twitch ?

Oui. Le mode anonyme permet de lire le chat et de regarder les directs. Un compte Twitch sert à envoyer des messages et aux fonctions qui demandent d’être connecté.

Sur quels systèmes twichat fonctionne-t-il ?

macOS, Windows et Linux. La version 0.1.0 est une alpha : seule la version macOS sur Apple Silicon a été réellement éprouvée, et les applications ne sont pas encore signées.

Combien de chaînes peut-on ouvrir en même temps ?

Jusqu’à vingt, dans la barre latérale, avec ⌘ K pour passer de l’une à l’autre. Une seule connexion IRC chiffrée les dessert toutes, et un seul flux vidéo est actif à la fois.

Quelles emotes twichat affiche-t-il ?

Les emotes Twitch, 7TV, BetterTTV et FrankerFaceZ, rendues directement dans le chat, avec les avatars et les badges Twitch.

twichat collecte-t-il des données ?

Non : aucune télémétrie, aucun outil d’analyse, aucun rapport d’erreur envoyé. Les jetons Twitch sont chiffrés par le trousseau du système, et les messages du chat ne sont jamais enregistrés sur le disque.

Sources

  1. Le site de twichattwichat
  2. Le code source de twichatGitHub
  3. Ce que twichat sait de vous (PRIVACY.md)GitHub
  4. Le chat Twitch par IRCTwitch
  5. RFC 7636 : Proof Key for Code Exchange (PKCE)IETF
QR code de don Dogecoin vers DKZFD5h85VJFXkjj2EaZiEJZtzZhYBsqEQ
SCANNER AVEC VOTRE PORTEFEUILLE

Le fonds du rebond.

Soutenir les projets.

Lui ne vous demandera jamais rien. Alors c’est nous qui posons ce QR code. Si vous utilisez twichat ou appréciez les directs, vous pouvez contribuer au développement des projets. Choisissez votre monnaie et le montant de votre choix.

DOGECOIN · MONTANT LIBRE

Blason TSMMAISON TSM

D.O.G.E.

Do Only Good
Everyday.

Du Dogecoin, j’ai gardé un million de raisons de ne pas me prendre au sérieux. Oui, même avec mon portrait encadré d’or. Le reste se raconte en direct.