Seu bot precisa de três valores do seu node Lavalink: o host, a porta e a senha. O host e a porta formam o Endereço na Visão geral do node; a senha está no application.yml. Sua biblioteca cliente precisa ser compatível com o Lavalink versão 4 e com a criptografia de voz DAVE do Discord, e a opção segura (SSL) fica desligada.
- Na Visão geral do servidor Lavalink, copie o Endereço (host e porta) e copie a senha do
application.yml. - Na aba Bot do servidor do seu bot, em Ambiente, adicione
LAVALINK_HOST,LAVALINK_PORTeLAVALINK_PASSWORD. - Adicione o código cliente da sua biblioteca (exemplos abaixo), com a opção segura (SSL) desligada.
- Reinicie o bot e confira se ele informa o node como conectado.
Cada etapa em detalhe abaixo.
O que todo cliente pede
| Configuração | Valor |
|---|---|
| Host | A parte do Endereço antes dos dois-pontos, por exemplo 203.0.113.10 |
| Porta | O número depois dos dois-pontos |
| Senha | O password: em lavalink:, server: no application.yml |
| Secure / SSL | Desligado: o node usa http e ws simples |
Onde encontrá-los: Como hospedar um servidor Lavalink 24/7.

Use uma versão do cliente compatível com o DAVE
Desde 2 de março de 2026, o Discord só deixa entrar nos canais de voz (exceto canais de palco) clientes de voz compatíveis com a sua criptografia de ponta a ponta, o protocolo DAVE. O Lavalink é compatível com o DAVE desde a versão 4.2.0, e o seu node roda a 4.2.2. Segundo as notas de lançamento do Lavalink 4.2.0, o cliente também precisa ser atualizado: agora ele tem que enviar ao node o ID do canal de voz. Uma versão mais antiga do cliente ainda se conecta ao node, mas o Lavalink não consegue abrir a conexão de voz, então nada toca. A versão que você deve usar em cada cliente comum, ou qualquer uma mais recente:
| Cliente | Linguagem | Use esta versão ou mais recente |
|---|---|---|
| Shoukaku | Node.js | 4.3.0 (28 fev. 2026) |
| lavalink-client | Node.js | 2.9.7 (2 mar. 2026). O trabalho com o DAVE começou na 2.9.3 (27 fev. 2026); o autor chama a 2.9.7 de primeira versão importante com DAVE. |
| Wavelink | Python | 3.5.1 (11 abr. 2026) |
| Lavalink.py | Python | 5.10.0 (28 fev. 2026) |
Para outras bibliotecas, a própria lista de clientes do Lavalink tem uma coluna DAVE. Com um cliente antigo, o seu node responde à atualização de voz com um erro 400 dizendo token, endpoint, sessionId and channelId must be provided in voice state. (Um bot que se conecta à voz do Discord por conta própria, sem o Lavalink, recebe em vez disso o código de fechamento 4017 do Discord, E2EE/DAVE protocol required.)
Mantenha os valores fora do seu código
Os exemplos abaixo leem LAVALINK_HOST, LAVALINK_PORT e LAVALINK_PASSWORD do ambiente. Se o seu bot roda em um plano de bot da PlayNHost:
- Abra a aba Bot do servidor do bot e clique em Ambiente.
- Em Adicionar uma variável, adicione
LAVALINK_HOSTeLAVALINK_PORT. AdicioneLAVALINK_PASSWORDcom Manter este valor em segredo marcado. - Reinicie o bot. As variáveis chegam a ele quando ele inicia.
Mais: Como definir variáveis de ambiente e segredos para o seu bot do Discord.
Node.js com Shoukaku
Pacotes: discord.js e shoukaku (4.3.0 ou mais recente).
const { Client, Events, GatewayIntentBits } = require('discord.js');
const { Shoukaku, Connectors } = require('shoukaku');
const client = new Client({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildVoiceStates] });
const nodes = [{
name: 'playnhost',
url: `${process.env.LAVALINK_HOST}:${process.env.LAVALINK_PORT}`,
auth: process.env.LAVALINK_PASSWORD,
}];
// Create it before client.login(): Shoukaku connects when the bot is ready.
const shoukaku = new Shoukaku(new Connectors.DiscordJS(client), nodes);
shoukaku.on('ready', (name) => console.log(`Lavalink node ${name} connected`));
shoukaku.on('error', (name, error) => console.error(`Lavalink node ${name}:`, error));
client.once(Events.ClientReady, () => console.log(`Logged in as ${client.user.tag}`));
client.login(process.env.DISCORD_TOKEN);
A documentação do Shoukaku mostra como entrar em um canal de voz e tocar uma faixa depois que o node estiver conectado.
Python com Wavelink
Pacotes: discord.py e wavelink (3.5.1 ou mais recente).
import os
import discord
import wavelink
from discord.ext import commands
class Bot(commands.Bot):
def __init__(self):
super().__init__(command_prefix="!", intents=discord.Intents.default())
async def setup_hook(self):
node = wavelink.Node(
uri=f"http://{os.environ['LAVALINK_HOST']}:{os.environ['LAVALINK_PORT']}",
password=os.environ["LAVALINK_PASSWORD"],
)
await wavelink.Pool.connect(nodes=[node], client=self)
async def on_wavelink_node_ready(self, payload: wavelink.NodeReadyEventPayload):
print(f"Lavalink node {payload.node.identifier} connected")
bot = Bot()
bot.run(os.environ["DISCORD_TOKEN"])
O setup_hook roda uma vez, antes de o bot se conectar; o on_ready pode rodar de novo a cada reconexão, então não conecte o node nele.
Outros clientes
Qualquer cliente compatível com o Lavalink 4 e com o DAVE funciona do mesmo jeito, com os mesmos três valores, por exemplo o lavalink-client para discord.js ou o Lavalink.py para Python. Um cliente feito para o Lavalink 3 não consegue falar com um node da versão 4.
Não conecta
- Connection refused ou tempo esgotado: o host ou a porta está errado, ou o node está parado. Copie o Endereço de novo na Visão geral e confira se o console mostra
Lavalink is ready to accept connections. 401ouUnauthorized: a senha não confere com a doapplication.yml. Copie de novo, sem as aspas.- Um erro de SSL ou TLS: a opção secure está ligada no seu cliente. Desligue-a, ou use
http://em vez dehttps://. - Conecta, mas não toca nada: confira primeiro se a versão do seu cliente não é mais antiga do que a da tabela acima. Depois: o bot precisa de Conectar (Connect) e Falar (Speak) no canal de voz, e o node precisa de uma fonte capaz de tocar o que você pediu: Erros do Lavalink e o que significam.
Ainda usa um node público grátis? Node público ou o seu próprio node compara as opções.



