YT-Fever
Un bot Discord qui joue la musique de YouTube dans les salons vocaux. C'est la réécriture en Node.js de mon premier bot en Python, plus sûre et plus complète.
Le point de départ
Mon premier bot musique avait fait son temps. Il construisait des commandes système à partir des liens envoyés sur Discord, laissait tourner des processus ffmpeg après un !skip et oubliait le volume à chaque nouveau titre.
L'approche choisie
- 01
Une réécriture en Node.js avec discord.js et @discordjs/voice, découpée en modules : événements, commandes, file d'attente et appels à yt-dlp.
- 02
Le son passe directement de yt-dlp à ffmpeg, sans adresse de flux intermédiaire qui expirait sur les morceaux longs.
- 03
Une file d'attente par serveur : l'afficher, retirer un titre, boucler sur un titre ou sur toute la file, mélanger.
Sous le capot
spawn() plutôt qu'exec()
Les arguments passent en tableau, sans aucun shell. Un lien piégé ne peut plus exécuter de commande sur la machine qui héberge le bot.
Des processus bien rangés
Chaque changement de titre arrête proprement le ffmpeg en cours, il ne reste plus aucun processus orphelin.
Ce que j'ai construit
- !play avec un lien ou des mots-clés
- !queue, !remove et !shuffle
- Boucle sur le titre ou sur la file
- Volume mémorisé par serveur
- Départ automatique si le bot reste seul
- Départ après 5 minutes d'inactivité, réglable
Bilan et perspectives
Fonctionnel, en version 2. Les chemins de yt-dlp et de ffmpeg s'adaptent à Windows comme à Linux et se règlent dans le fichier .env.
- Commandes à préfixe (!play), pas encore de commandes slash.
Projet suivant
ThorManager
Gestionnaire de téléchargements natif pour Windows, piloté par une extension Chrome.
