Cómo hacer un bot de Discord en Python (discord.py), paso a paso
Un bot de Discord es un programa que se conecta a Discord con su token y responde a lo que pasa en tu servidor. Con Python y la librería discord.py, el primero se hace en un cuarto de hora: este tiene dos comandos con barra, /hola y /dado.
1. Crea el bot en Discord
Crea la aplicación
Entra en discord.com/developers/applications, pulsa «New Application» y ponle nombre. Es tu bot.
Saca el token
En la pestaña «Bot», pulsa «Reset Token» y copia el token. Es la contraseña del bot: quien lo tenga lo controla, así que no lo compartas ni lo subas a GitHub.
Invítalo a tu servidor
En «OAuth2» → «URL Generator», marca «bot» y «applications.commands», elige los permisos (para empezar, «Send Messages») y abre el enlace que sale para añadirlo a tu servidor de Discord.
¿Prefieres no montarlo tú? Servidores de Bots de Discord desde 1,50 € al mes, sin permanencia y con devolución íntegra en 72 horas. O crea un servidor de Bots de Discord gratis, sin tarjeta.
2. El código
Tres ficheros en una carpeta. En requirements.txt van las librerías; en .env, el token (sin comillas); y en app.py, el bot.
discord.py
python-dotenvDISCORD_TOKEN=pega-aquí-tu-tokenimport os
import random
import discord
from discord import app_commands
from dotenv import load_dotenv
load_dotenv() # lee el token del fichero .env
intents = discord.Intents.default()
client = discord.Client(intents=intents)
tree = app_commands.CommandTree(client)
@tree.command(name="hola", description="Te saluda")
async def hola(interaction: discord.Interaction):
await interaction.response.send_message(f"¡Hola, {interaction.user.mention}!")
@tree.command(name="dado", description="Tira un dado de 6 caras")
async def dado(interaction: discord.Interaction):
await interaction.response.send_message(f"🎲 Ha salido un {random.randint(1, 6)}")
@client.event
async def on_ready():
await tree.sync() # publica los comandos /hola y /dado
print(f"Conectado como {client.user}")
client.run(os.environ["DISCORD_TOKEN"])3. Pruébalo en tu ordenador
Con Python 3.10 o más nuevo: abre una terminal en la carpeta, instala las librerías con «pip install -r requirements.txt» y arráncalo con «python app.py». Cuando diga «Conectado como…», escribe /hola en tu servidor. Los comandos con barra pueden tardar unos minutos en aparecer la primera vez.
4. Déjalo encendido siempre (gratis)
Mientras el programa esté abierto en tu ordenador, el bot funciona; al apagarlo, se desconecta. Para tenerlo siempre encendido hace falta alojarlo en un servidor.
En NapNodes: crea el bot gratis, elige Python en «Arranque», sube los tres ficheros en «Archivos» (o pon tu repositorio de GitHub, sin el .env) y pulsa «Encender». Las librerías de requirements.txt se instalan solas al arrancar y app.py es el fichero de inicio que viene puesto.
El bot gratis de NapNodes tiene 256 MB, de sobra para un bot como este, y solo hay que renovarlo con un clic cada semana. Si crece, Mini (512 MB) cuesta 1,50 € al mes.
Preguntas frecuentes
¿Qué necesito para hacer un bot de Discord en Python?
Python 3.10 o más nuevo, la librería discord.py y una aplicación creada en el portal de desarrolladores de Discord, de la que sacas el token.
¿Por qué no aparecen los comandos con barra?
La primera vez Discord puede tardar unos minutos en enseñarlos. Comprueba también que al invitar al bot marcaste «applications.commands».
¿Dónde pongo el token del bot?
En un fichero .env que el bot lee al arrancar. Nunca en el código que subas a GitHub: quien tenga el token controla el bot.
¿Cómo tengo el bot encendido siempre?
Alojándolo en un servidor. En NapNodes hay un bot gratis de 256 MB que solo hay que renovar con un clic cada semana.
¿Lo montamos?
Servidores de Bots de Discord desde 1,50 € al mes, sin sobreventa: tu RAM es solo tuya. Y si quieres empezar sin pagar, tienes un servidor de Bots de Discord gratis, sin tarjeta.