Tutoriel TalCloud

Créer un bot Discord en Python : guide débutant

3 juillet 20264 min de lectureTutoriel
Créer un bot Discord en Python avec discord.py chez TalCloud

Vous voulez créer un bot Discord en Python mais vous ne savez pas par où commencer ? Ce guide débutant vous accompagne pas à pas, du token à votre première commande qui répond, sans rien supposer d'acquis.

Ce qu’il faut avant de commencer

Pour créer un bot Discord en Python, le matériel se résume à peu de choses : un ordinateur, une connexion et un compte Discord. Côté logiciel, il vous faut Python 3.8 ou plus récent et un éditeur de code (VS Code fait parfaitement l’affaire).

Vérifiez votre version de Python :

python --version

Si tout est en place, vous êtes prêt. Nul besoin d’être développeur confirmé : nous allons avancer ligne par ligne.

Créer le bot sur le portail Discord

Avant d’écrire la moindre ligne, votre bot doit exister côté Discord. Rendez-vous sur le Discord Developer Portal.

  1. Cliquez sur New Application et donnez un nom à votre projet.
  2. Dans l’onglet Bot, créez le bot, puis copiez son token. Gardez-le secret : c’est le mot de passe de votre bot.
  3. Activez les intents dont vous aurez besoin (notamment Message Content Intent pour lire les messages).
  4. Dans OAuth2 > URL Generator, cochez bot, choisissez les permissions, puis utilisez le lien généré pour inviter le bot sur votre serveur.

Bon à savoir : ne partagez jamais votre token et ne le mettez pas directement dans le code. Si vous le publiez par erreur sur GitHub, régénérez-le immédiatement depuis le portail.

Installer discord.py

La bibliothèque discord.py est la référence pour créer un bot Discord en Python. On l’installe avec pip, idéalement dans un environnement virtuel pour isoler le projet.

python -m venv venv
source venv/bin/activate    # Windows : venv\Scripts\activate
pip install discord.py python-dotenv

Le paquet python-dotenv servira à charger votre token depuis un fichier .env, sans l’écrire en clair.

Écrire votre premier bot qui répond

On entre dans le concret. Créez un fichier bot.py et placez votre token dans un fichier .env à côté :

DISCORD_TOKEN=votre_token_ici

Voici un bot minimal qui se connecte et répond à une commande !ping :

import os
import discord
from discord.ext import commands
from dotenv import load_dotenv

load_dotenv()

intents = discord.Intents.default()
intents.message_content = True
bot = commands.Bot(command_prefix="!", intents=intents)

@bot.event
async def on_ready():
    print(f"Bot connecté : {bot.user}")

@bot.command()
async def ping(ctx):
    await ctx.send("Pong !")

bot.run(os.getenv("DISCORD_TOKEN"))

Lancez-le avec python bot.py. Sur votre serveur, tapez !ping : le bot répond Pong !. Félicitations, votre premier bot fonctionne.

Ajouter des commandes utiles

À partir de cette base, ajouter des commandes est très simple. Chaque commande est une fonction décorée par @bot.command().

@bot.command()
async def salut(ctx):
    await ctx.send(f"Bonjour {ctx.author.mention} !")

@bot.command()
async def info(ctx):
    await ctx.send(f"Ce serveur compte {ctx.guild.member_count} membres.")

Quelques bonnes pratiques pour aller plus loin :

  • Regroupez vos commandes dans des Cogs quand le bot grandit.
  • Gérez les erreurs pour éviter les plantages sur une mauvaise saisie.
  • Pensez aux slash commands (/), désormais standard sur Discord.

Passer aux slash commands

Discord pousse aujourd’hui vers les commandes en barre oblique (/), plus modernes et mieux intégrées que les anciennes commandes à préfixe. discord.py les gère via l’arbre de commandes applicatif.

@bot.tree.command(name="bonjour", description="Dit bonjour")
async def bonjour(interaction: discord.Interaction):
    await interaction.response.send_message("Bonjour !")

@bot.event
async def on_ready():
    await bot.tree.sync()
    print(f"Bot connecté : {bot.user}")

L’appel à tree.sync() enregistre vos commandes auprès de Discord pour qu’elles apparaissent dans l’interface. Comptez parfois quelques minutes avant qu’elles soient visibles partout. Les slash commands offrent en prime une autocomplétion des arguments, bien plus agréable pour vos utilisateurs.

Les pièges du débutant

Quelques erreurs reviennent systématiquement quand on débute. Les connaître vous fait gagner des heures :

  • Message Content Intent non activé : le bot ne « voit » pas les messages et vos commandes à préfixe restent muettes.
  • Token en clair dans le code : à proscrire absolument, utilisez .env.
  • Oublier intents lors de la création du bot : le code plante au démarrage.
  • Bloquer la boucle avec du code synchrone lourd : préférez async/await partout.

Bon à savoir : si vous modifiez le code pendant le développement, relancez le bot pour que les changements prennent effet. Un outil comme watchdog peut redémarrer automatiquement le bot à chaque sauvegarde de fichier.

Mettre le bot en ligne en continu

Tant que le bot tourne sur votre PC, il s’arrête dès que vous fermez le terminal. Pour qu’il reste joignable, il doit s’exécuter sur une machine allumée en permanence.

C’est le rôle d’un hébergement de bot Discord : vous déposez votre code Python, et le bot tourne 24h/24 avec redémarrage automatique en cas de plantage. Pour les détails du déploiement, consultez aussi notre guide pour garder un bot Discord toujours en ligne une fois qu’il existe.

En résumé

Créer un bot Discord en Python tient en cinq étapes : créer l’application sur le portail, récupérer le token, installer discord.py, coder une première commande, puis enrichir le bot. Le code de base est court et accessible, même sans expérience. Une fois votre bot prêt, il ne reste qu’à le mettre en ligne sur un hébergement stable pour qu’il réponde à votre communauté en continu.

À lire aussi