Créer un planning Twitch grâce à Discord et Python
- 24 janv. 2023
- Streaming
Tu utilises le système d’événements de Discord, comme moi, pour planifier tes lives sur Twitch et prévenir ta communauté de tes prochains directs ? Ce petit script pourrait te plaire.
Prérequis
Avant de commencer, tu vas avoir besoin de quelques connaissances en développement Python, en HTML et CSS. Évidemment, pour fonctionner, Python doit être installé sur ta machine.
Ce script s’exécute en local sur ma machine, il n’y a donc pas à prévoir un hébergement en ligne quelconque.
Si cet outil est fonctionnel, il ne reste pas moins une large marge d’améliorations et d’optimisations (pouvoir afficher deux événements le même jour, utiliser les images ajoutées à tes événements sur Discord, limiter aux événements de la semaine, etc.). Rien ne t’empêche de le faire et de les partager ! 😉
Fonctionnement
Pour résumer en quelques mots le fonctionnement de ce script : j’utilise l’API de Discord pour lister les événements à venir et je les injecte dans un fichier HTML. J’ouvre ensuite un navigateur en mode headless (sans-tête) et je réaliser une capture d’écran que j’enregistre à la racine du dossier de mon projet.
Créer un bot Discord
J’utilise l’API de Discord pour récupérer les événements à venir. Je t’invite à lire la rubrique “Guild Scheduled Event” de leur documentation si tu désires en savoir plus.
Connecte-toi à ton compte Discord et ouvre la page de tes applications. Pour en créer une nouvelle, clique sur le bouton “New Application”. Donne-lui un nom, valide les conditions d’utilisations après les avoir lues et appuie sur le bouton “Create”.
Tu es redirigé automatiquement sur la page de ta nouvelle application. Sélectionne la rubrique “Bot” puis sur le bouton “Add Bot”. Sur cette nouvelle page, tu as accès à son token (1) et tu peux personnaliser ses informations. Je t’invite d’ailleurs à décocher l’option “Public bot” (2).
Si tu n’as pas pu récupérer le token de ton bot, appuie sur le bouton “Reset Token” (tu auras peut-être besoin de t’identifier).
Enregistre ce token en sûreté en attendant de l’utiliser, et garde la page Discord de ton bot ouverte, tu vas encore en avoir besoin pour l’étape suivante.
Inviter ton bot sur ton serveur
Maintenant que tu as créé ton bot, tu dois l’inviter sur ton serveur pour qu’il soit capable d’accéder aux événements.
Reviens à la page de création de ton bot sur Discord et clique sur la rubrique “OAuth2” (1) puis “URL Generator” (2). Cette fonction est utile pour générer un lien d’inviter pour ajouter ton nouveau bot à ton serveur Discord.
Dans la liste “Scopes”, sélectionne “bot”, puis pour “Bot permissions”, tu peux sélectionner “Administrator” (3) ou pour plus de sécurité, si tu veux limiter ses autorisations : “Manage Events”.
Copie l’URL générée (4) et colle-la dans un nouvel onglet de ton navigateur. Sélectionne le serveur où tu veux inviter ton bot et valide.
Projet Python
Dans cet article, je ne te présente que les points clés de cet outil. Si tu veux l’utiliser ou lire le code en entier, je t’invite à te rendre dans sur sa page Github : thoanny/discord-scheduled-events.
La première étape consiste à créer ton fichier config.ini
à la racine du projet, et qui contient deux éléments : le token de ton bot Discord ainsi que l’ID de ton serveur :
[DISCORD]
TOKEN=TonTokenDiscord
GUILD=1234567
Attention, le token de ton bot Discord doit rester secret !
Pour obtenir l’ID de ton serveur Discord (GUILD), clique droit sur ton serveur et sélectionne : copier l’identifiant. Si tu n’as pas accès à cette option, active le “Mode développeur” dans tes paramètres utilisateur, à la rubrique “Avancés”.
Installer les dépendances
Tout d’abord, si tu n’as pas d’éditeur de code installé, je t’invite à utiliser la version Community (gratuite) de PyCharm.
Ensuite, pour installer les dépendances, tape dans la console :
pip install requirements.txt
Créer un modèle de planning
Pour cette étape, tu as besoin de tes connaissances en HTML et CSS. Je t’invite à consulter le fichier template.html
de mon répertoire Github pour plus de détails.
Note que ce fichier contient des codes entourés de dièses (appelons-les “mots-clés”), qui sont utilisés pour les remplacer par du texte ou du code HTML en Python :
- #START# : date de début de la semaine
- #END# : date de fin de la semaine
- #EVENTS# : liste des événements
Si tu regardes le fichier main.py
, tu noteras d’autres mots-clés qui sont remplacés par, pour les événements :
- #WEEKDAY# : positionner dans la bonne colonne
- #DAY# : nom du jour (lundi, mardi, …)
- #LOGO# : image définie localement (cf. § Ajouter des images)
- #START# : heure de début
- #END# : heure de fin
- #TITLE# : nom de l’événement
- #DESCRIPTION#
Ajouter des images
Le mot-clé #LOGO# est remplacé par une image PNG, si elle est trouvée dans le dossier : assets/img
.
J’utilise la fonction Slugify sur le titre de l’événement pour définir quelle image ajouter et vérifier avant si elle existe. Sinon, je remplace #LOGO# par une chaîne de caractères vide.
Exemple, pour un événement intitulé “Assassin’s Creed”, je cherche l’image : assets/img/assassins-creed.png
.
ℹ Les images recherchées sont indiquées dans la console lorsque le script est lancé.
Lancer le script
Si tu utilises PyCharm, cliques droit sur main.py
et sélectionnes “Run ‘main'”. Sinon, dans la console, tape :
python main.py
Résultat
Après quelques secondes, tu auras deux nouveaux fichiers à la racine de ton projet :
- calendar.html : le fichier généré du calendrier
- calendar.png : l’image de ton planning
👍 Besoin d’aide pour créer ton propre planning Twitch ? N’hésite pas à me contacter !