Je bot heeft drie waarden van je Lavalink-node nodig: de host, de poort en het wachtwoord. De host en de poort zijn het Adres op het Overzicht van de node; het wachtwoord staat in application.yml. Je clientlibrary moet Lavalink versie 4 en Discords DAVE-spraakversleuteling ondersteunen, en de optie voor beveiligd (SSL) blijft uit.
- Kopieer op het Overzicht van de Lavalink-server het Adres (host en poort) en kopieer het wachtwoord uit
application.yml. - Voeg op de pagina Bot van je botserver, onder Omgeving,
LAVALINK_HOST,LAVALINK_PORTenLAVALINK_PASSWORDtoe. - Voeg de clientcode voor je library toe (voorbeelden hieronder), met de optie voor beveiligd (SSL) uit.
- Herstart de bot en controleer dat hij meldt dat de node verbonden is.
Elke stap uitgebreid hieronder.
Wat elke client vraagt
| Instelling | Waarde |
|---|---|
| Host | Het deel van Adres vóór de dubbele punt, bijvoorbeeld 203.0.113.10 |
| Poort | Het getal na de dubbele punt |
| Wachtwoord | Het password: onder lavalink:, server: in application.yml |
| Secure / SSL | Uit: de node gebruikt gewoon http en ws |
Waar je ze vindt: Een Lavalink-server 24/7 hosten.

Gebruik een clientversie die DAVE ondersteunt
Sinds 2 maart 2026 laat Discord alleen spraakclients die zijn end-to-end-versleuteling ondersteunen, het DAVE-protocol, in spraakkanalen (stagekanalen uitgezonderd). Lavalink ondersteunt DAVE vanaf versie 4.2.0, en je node draait 4.2.2. Volgens de release notes van Lavalink 4.2.0 moet ook de client worden bijgewerkt: hij moet nu de ID van het spraakkanaal naar de node sturen. Een oudere clientversie verbindt nog wel met de node, maar Lavalink kan de spraakverbinding niet openen, dus er wordt niets afgespeeld. De versie die je bij elke gangbare client moet gebruiken, of een nieuwere:
| Client | Taal | Gebruik deze versie of nieuwer |
|---|---|---|
| Shoukaku | Node.js | 4.3.0 (28 feb 2026) |
| lavalink-client | Node.js | 2.9.7 (2 mrt 2026). Het werk aan DAVE begon in 2.9.3 (27 feb 2026); de auteur noemt 2.9.7 de eerste grote release met DAVE. |
| Wavelink | Python | 3.5.1 (11 apr 2026) |
| Lavalink.py | Python | 5.10.0 (28 feb 2026) |
Voor andere libraries heeft de eigen clientlijst van Lavalink een DAVE-kolom. Met een oudere client antwoordt je node op de spraakupdate met een 400-fout met de melding token, endpoint, sessionId and channelId must be provided in voice state. (Een bot die zelf verbinding maakt met Discord-spraak, zonder Lavalink, krijgt in plaats daarvan Discords sluitcode 4017, E2EE/DAVE protocol required.)
Houd de waarden uit je code
De voorbeelden hieronder lezen LAVALINK_HOST, LAVALINK_PORT en LAVALINK_PASSWORD uit de omgeving. Draait je bot op een botpakket van PlayNHost:
- Open de pagina Bot van de botserver en klik op Omgeving.
- Voeg onder Een variabele toevoegen
LAVALINK_HOSTenLAVALINK_PORTtoe. VoegLAVALINK_PASSWORDtoe met Houd deze waarde geheim aangevinkt. - Herstart de bot. De variabelen komen bij hem aan als hij start.
Meer: Omgevingsvariabelen en geheimen instellen voor je Discord-bot.
Node.js met Shoukaku
Packages: discord.js en shoukaku (4.3.0 of nieuwer).
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);
De documentatie van Shoukaku laat zien hoe je een voicekanaal joint en een nummer afspeelt zodra de node verbonden is.
Python met Wavelink
Packages: discord.py en wavelink (3.5.1 of nieuwer).
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"])
setup_hook draait één keer, voordat de bot verbinding maakt; on_ready kan na elke herverbinding opnieuw draaien, dus maak de verbinding met de node niet daar.
Andere clients
Elke client die Lavalink 4 en DAVE ondersteunt, werkt op dezelfde manier met dezelfde drie waarden, bijvoorbeeld lavalink-client voor discord.js of Lavalink.py voor Python. Een client die voor Lavalink 3 is geschreven, kan niet met een node van versie 4 praten.
Het verbindt niet
- Connection refused of time-out: de host of poort klopt niet, of de node is gestopt. Kopieer het Adres opnieuw van Overzicht en controleer of de console
Lavalink is ready to accept connections.toont. 401ofUnauthorized: het wachtwoord komt niet overeen metapplication.yml. Kopieer het opnieuw, zonder de aanhalingstekens.- Een SSL- of TLS-fout: secure staat aan in je client. Zet het uit, of gebruik
http://in plaats vanhttps://. - Hij verbindt en speelt dan niets af: controleer eerst of je clientversie niet ouder is dan die in de tabel hierboven. Daarna: de bot heeft Verbinden en Spreken nodig in het voicekanaal, en de node heeft een bron nodig die kan afspelen wat je hebt gevraagd: Lavalink-fouten en wat ze betekenen.
Gebruik je nog een gratis publieke node? Publieke node of eigen node vergelijkt de opties.



