Bot de música
Um bot que entra na sala de voz de quem chamou e toca links, com fila. O código completo está no repositório do Zynko, em bots/musica, feito com a biblioteca para JavaScript.
Comandos
Os comandos aparecem ao digitar / no app (/tocar, /fila...) e também funcionam com ! no lugar da barra. Ao começar cada música, o bot manda um cartão "Tocando agora" com o título, quem pediu, o volume, as próximas da fila e os botões Pausar, Pular e Parar; o cartão se atualiza a cada clique. As respostas a comandos com / aparecem só para quem usou.
| comando | |
|---|---|
/tocar link ou !tocar <link> | Toca, ou põe na fila se já estiver tocando. |
!pular | Vai para a próxima da fila. |
!parar | Para e esvazia a fila. |
!pausar, !continuar | |
!fila | O que está tocando e as próximas. |
!tocando | O que está tocando. |
!volume <0-200> | Volume em porcentagem; sem número, mostra o atual. |
!sair | Sai da sala. |
!teste | Toca um tom de 3 segundos. |
!ajuda | A lista. |
O bot entra na sala de quem mandou o comando e sai sozinho quando fica um minuto sem ninguém.
Que links ele toca
Qualquer coisa que o ffmpeg abra: links diretos de mp3, ogg, wav, flac e rádios por stream.
Com YTDLP=1, os links passam antes pelo yt-dlp, que entende páginas de muitos sites, e o título vem do próprio site. Respeite os termos de uso dos sites e os direitos de quem fez a música.
Rodar
- Crie o bot em dev.zynko.org. No convite, marque Ver canais, Enviar mensagens, Ler o histórico, Adicionar reações, Entrar em salas e Falar, e adicione ao seu servidor.
- Instale o Node.js 22 e o ffmpeg.
- No
bots/musica:
sh
npm install
ZYNKO_TOKEN=bot_... npm start| variável | |
|---|---|
ZYNKO_TOKEN | O token do bot. |
PREFIX | O começo dos comandos. Padrão: !. |
YTDLP | 1 para usar o yt-dlp do PATH, ou o caminho dele. |
FFMPEG_PATH | O ffmpeg, se não estiver no PATH. |
Com Docker
O Dockerfile da pasta já traz o Node e o ffmpeg:
sh
docker build -t zynko-musica -f bots/musica/Dockerfile .
docker run -d --restart unless-stopped -e ZYNKO_TOKEN=bot_... zynko-musicaO build parte da raiz do repositório, porque usa a biblioteca de sdk/js.