Melodix Player es mi proyecto personal que reproduce audio de YouTube y enlaces de transmisión de audio en los canales de voz de Discord.
- 🎶 Pista única añadida por nombre de canción o enlace de YouTube.
- 🎶 Múltiples pistas añadidas mediante múltiples enlaces de YouTube (separados por espacios).
- 🎶 Pistas de listas de reproducción públicas de usuarios.
- 🎶 Pistas de listas de reproducción "MIX".
- 📻 Enlaces de transmisión (por ejemplo, estaciones de radio).
- 🌐 Operación en múltiples servidores de Discord (gestión de gremios).
- 📜 Acceso al historial de pistas reproducidas previamente con opciones de clasificación.
- 💾 Descarga de pistas de YouTube como archivos mp3 para almacenamiento en caché.
- 🎼 Carga lateral de archivos de audio mp3.
- 🎬 Carga lateral de archivos de video con extracción de audio como archivos mp3.
- 🔄 Soporte de reanudación automática de reproducción para interrupciones de conexión.
- 🛠️ Soporte de API REST (limitado por el momento).
- 🚫 El bot no puede reproducir transmisiones de YouTube.
- ⏸️ El soporte de reanudación automática de reproducción crea pausas notables.
- ⏩ A veces, la velocidad de reproducción es ligeramente más rápida de lo previsto.
- 🐞 No está libre de errores.
Puedes probar Melodix de dos maneras:
-
🖥️ Descarga binarios compilados (disponibles solo para Windows). Asegúrate de tener FFMPEG instalado en tu sistema y añadido a la variable PATH global (o especifica la ruta a FFMPEG directamente en el archivo de configuración
.env
). Sigue la sección "Crear bot en el Portal de Desarrolladores de Discord" para configurar el bot en Discord. -
🎙️ Únete al Servidor Oficial de Discord y usa los canales de voz y
#bot-spam
.
Melodix Player soporta varios comandos con respectivos alias (si aplica). Algunos comandos requieren parámetros adicionales.
!play [título|url|stream|id]
(alias:!p ..
,!> ..
) — Parámetros: nombre de la canción, URL de YouTube, URL de transmisión de audio, ID del historial.!skip
(alias:!next
,!>>
) — Saltar a la siguiente pista en la cola.!pause
(alias:!!
) — Pausar la reproducción.!resume
(alias:!r
,!!>
) — Reanudar la reproducción pausada o iniciar la reproducción si se añadió una pista mediante!add ..
.!stop
(alias:!x
) — Detener la reproducción, limpiar la cola y salir del canal de voz.
!add [título|url|stream|id]
(alias:!a
,!+
) — Parámetros: nombre de la canción, URL de YouTube, URL de transmisión de audio, ID del historial (igual que para!play ..
).!list
(alias:!queue
,!l
,!q
) — Mostrar la cola de canciones actual.
!history
(alias:!time
,!t
) — Mostrar el historial de pistas reproducidas recientemente. Cada pista en el historial tiene un ID único para reproducción/colocación en la cola.!history count
(alias:!time count
,!t count
) — Ordenar el historial por recuento de reproducciones.!history duration
(alias:!time duration
,!t duration
) — Ordenar el historial por duración de las pistas.
!help
(alias:!h
,!?
) — Mostrar hoja de trucos de ayuda.!help play
— Información adicional sobre comandos de reproducción.!help queue
— Información adicional sobre comandos de cola.!about
(alias:!v
) — Mostrar versión (fecha de compilación) y enlaces relacionados.whoami
— Enviar información del usuario al log. Necesario para configurar el superadmin en el archivo.env
.
Estos comandos solo están disponibles para superadmins (propietarios del servidor host).
!curl [URL de YouTube]
— Descargar como archivo mp3 para uso posterior.!cached
— Mostrar archivos actualmente en caché (de la carpetacached
). Cada servidor opera sus propios archivos.!cached sync
— Sincronizar archivos mp3 añadidos manualmente a la carpetacached
.!uploaded
— Mostrar videoclips subidos en la carpetauploaded
.!uploaded extract
— Extraer archivos mp3 de videoclips y almacenarlos en la carpetacached
.
!register
— Habilitar la escucha de comandos de Melodix (ejecutar una vez por cada nuevo servidor de Discord).!unregister
— Deshabilitar la escucha de comandos.melodix-prefix
— Mostrar el prefijo actual (!
por defecto, ver archivo.env
).melodix-prefix-update "[nuevo_prefijo]"
— Establecer un prefijo personalizado para un gremio para evitar colisiones con otros bots.melodix-prefix-reset
— Volver al prefijo por defecto establecido en el archivo.env
.
Para usar el comando play
, proporciona un título de video de YouTube, URL o ID del historial:
!play Never Gonna Give You Up
!p https://www.youtube.com/watch?v=dQw4w9WgXcQ
!> 5 (asumiendo que 5 es un ID de `!history`)
Para añadir una canción a la cola, usa:
!add Never Gonna Give You Up
!resume
Para añadir Melodix a un servidor de Discord, sigue estos pasos:
- Crea una aplicación en el Portal de Desarrolladores de Discord y obtén el
APPLICATION_ID
(en la sección General). - En la sección Bot, habilita
PRESENCE INTENT
,SERVER MEMBERS INTENT
, yMESSAGE CONTENT INTENT
. - Usa el siguiente enlace para autorizar el bot:
discord.com/oauth2/authorize?client_id=YOUR_APPLICATION_ID&scope=bot&permissions=36727824
- Reemplaza
YOUR_APPLICATION_ID
con el ID de la aplicación de tu bot del paso 1.
- Reemplaza
- Selecciona un servidor y haz clic en "Autorizar".
- Concede los permisos necesarios para que Melodix funcione correctamente (acceso a canales de texto y voz).
Después de añadir el bot, compílalo desde los fuentes o descarga binarios compilados. Las instrucciones de despliegue con Docker están disponibles en docker/README.md
.
Este proyecto está escrito en Go, así que asegúrate de que tu entorno esté listo. Usa los scripts proporcionados para compilar Melodix Player desde los fuentes:
bash-and-run.bat
(o.sh
para Linux): Compilar la versión de depuración y ejecutar.build-release.bat
(o.sh
para Linux): Compilar la versión de lanzamiento.assemble-dist.bat
: Compilar la versión de lanzamiento y ensamblarla como paquete de distribución (solo Windows).
Renombra .env.example
a .env
y guarda tu Token del Bot de Discord en la variable DISCORD_BOT_TOKEN
. Instala FFMPEG (solo se soportan versiones recientes). Si usas un FFMPEG portátil, especifica la ruta en `DCA_FFMPEG_BINARY_PATH
en el archivo
.env`.
Para el despliegue con Docker, consulta docker/README.md
para instrucciones específicas.
Melodix Player proporciona varias rutas de API, sujetas a cambios.
GET /guild/ids
: Recuperar IDs de gremios activos.GET /guild/playing
: Obtener información sobre la pista actualmente reproducida en cada gremio activo.
GET /history
: Acceder al historial general de pistas reproducidas.GET /history/:guild_id
: Obtener el historial de pistas reproducidas para un gremio específico.
GET /avatar
: Listar imágenes disponibles en la carpeta de avatares.GET /avatar/random
: Obtener una imagen aleatoria de la carpeta de avatares.
GET /log
: Mostrar el log actual.GET /log/clear
: Limpiar el log.GET /log/download
: Descargar el log como archivo.
Para cualquier pregunta, obtén soporte en el Servidor Oficial de Discord.
Me inspiré en Muzikas, un bot de Discord fácil de usar creado por Fabijan Zulj.
Melodix está licenciado bajo la Licencia MIT.