ButakeroMusicBotGo es un bot de Discord desarrollado en GoLang que permite reproducir música en servidores de Discord. Este repositorio contiene el código fuente del bot junto con instrucciones para instalarlo y usarlo. Actualmente tiene compatibilidad con Youtube, pero mas adelante voy a agregar otras plataformas :D
¿Querés chusmear la arquitectura del bot en producción? Hacé clic aca para ver todos los detalles sobre cómo está construido y desplegado ButakeroMusicBotGo.
Aca tenes la invitacion para probar ButakeroMusicBotGo en tu servidor de Discord, usa este enlance para invitarlo: Invitacion del bot a tu server
-
Ve a Discord Developer Portal.
-
Hacé clic en "New Application" y dale un nombre a tu aplicación.
-
En la pestaña de "Installation", marcá las casillas "User install" y "Guild install".
-
En la pestaña activa las siguientes opciones:
- PUBLIC BOT: Permití que el bot sea agregado por cualquiera. Cuando no está marcado, solo vos podés agregar este bot a servidores.
- PRESENCE INTENT: Necesario para que tu bot reciba eventos de actualización de presencia.
- Nota: Una vez que tu bot llegue a 100 o más servidores, esto requerirá verificación y aprobación. Leé más aquí.
- SERVER MEMBERS INTENT: Necesario para que tu bot reciba eventos listados bajo GUILD_MEMBERS.
- Nota: Una vez que tu bot llegue a 100 o más servidores, esto requerirá verificación y aprobación. Leé más aquí.
- MESSAGE CONTENT INTENT: Necesario para que tu bot reciba el contenido de los mensajes en la mayoría de los mensajes.
- Nota: Una vez que tu bot llegue a 100 o más servidores, esto requerirá verificación y aprobación. Leé más aquí.
-
Copiá el
DISCORDTOKEN
de la sección de Bot y guardalo, lo necesitarás para configurar el archivo.env
.
Para ejecutar ButakeroMusicBotGo utilizando Docker Compose, seguí estos pasos:
-
Asegurate de tener Docker y Docker Compose instalados en tu sistema. Podés encontrar instrucciones de instalación en Docker y Docker Compose.
-
Cloná este repositorio a tu máquina local:
git clone git@github.com:Tomas-vilte/ButakeroMusicBotGo.git
-
Navegá hasta el directorio del repositorio clonado:
cd ButakeroMusicBotGo
-
Creá un archivo
.env
utilizando el archivo de ejemplo proporcionado.env.example
. Este archivo debería contener las siguientes variables:DISCORDTOKEN
: El token del bot que obtuviste en el portal de desarrolladores de Discord.COMMANDPREFIX
: El prefijo de comando que desees utilizar (por ejemplo,/bot
).
-
Ejecutá el siguiente comando para construir los contenedores Docker:
docker-compose --env-file .env -f local-docker-compose.yml build
-
Una vez que se haya completado la construcción, podés levantar todos los servicios necesarios (bot de Discord, servicios de monitoreo etc) con el siguiente comando:
docker-compose --env-file .env -f local-docker-compose.yml up
Si preferís ejecutar el bot manualmente, primero necesitas instalar algunas dependencias en tu sistema:
-
Instala las dependencias del sistema:
sudo apt-get update sudo apt-get install -y build-essential libopus-dev libopusfile-dev ffmpeg wget libopusfile0
-
Instala
dca
:go install github.com/bwmarrin/dca/cmd/dca@latest
-
Instala
yt-dlp
:sudo wget https://github.com/yt-dlp/yt-dlp/releases/download/2024.04.09/yt-dlp_linux -O /usr/local/bin/yt-dlp sudo chmod +x /usr/local/bin/yt-dlp
-
Navegá hasta el directorio del repositorio clonado:
cd ButakeroMusicBotGo
-
Instalá las dependencias necesarias:
go mod tidy
-
Ejecutá el bot:
go run cmd/main.go
Si no queres instalar todas las dependencias manualmente, puedes usar la imagen Docker preconstruida:
- Descargate y ejecuta la imagen docker:
docker pull tomasvilte/butakero-bot-local:latest docker run --env-file .env tomasvilte/butakero-bot-local:latest
El archivo local-docker-compose.yml incluye servicios adicionales como Grafana y Prometheus para monitorear el bot. Si quieres aprovechar estos servicios, simplemente segui las instrucciones de la sección Ejecución con Docker Compose.
Una vez que el bot esté en funcionamiento, podés interactuar con él en tu servidor de Discord. Acá tenés algunos comandos básicos que podés usar:
/seso play <nombre de la canción>
: Reproduce una canción en el canal de voz actual./seso stop
: Detiene la reproducción actual y desconecta el bot del canal de voz./seso list
: Muestra la lista de reproducción actual./seso skip
: Salta a la siguiente canción en la lista de reproducción./seso remove <número>
: Elimina una canción específica de la lista de reproducción./seso playing
: Muestra información sobre la canción que se está reproduciendo actualmente.
¡Se agradecen las contribuciones! Si querés contribuir en el proyecto, seguí estos pasos:
- Hacete un fork de este repositorio.
- Realizá tus cambios en una nueva rama.
- Envía un PR con una descripción clara de tus cambios.