NEU 📢 Begrenztes Startangebot: bis zu 70 % Rabatt auf deinen ersten Monat, für jedes Spiel!Tarife ansehen

So verbindest du deinen Discord-Bot mit Lavalink

Lavalink-HostingUpdated Nov 6, 20266 min read

Dein Bot braucht drei Werte von deinem Lavalink-Node: den Host, den Port und das Passwort. Host und Port stehen bei Adresse auf der Übersicht des Nodes, das Passwort steht in der application.yml. Deine Client-Bibliothek muss Lavalink in Version 4 und Discords DAVE-Sprachverschlüsselung unterstützen, und die sichere Option (SSL) bleibt aus.

  1. Kopiere auf der Übersicht des Lavalink-Servers die Adresse (Host und Port) und das Passwort aus der application.yml.
  2. Füg im Bot-Tab deines Bot-Servers unter Umgebung die Werte LAVALINK_HOST, LAVALINK_PORT und LAVALINK_PASSWORD hinzu.
  3. Füg den Client-Code für deine Bibliothek ein (Beispiele unten), mit ausgeschalteter sicherer Option (SSL).
  4. Starte den Bot neu und prüf, ob er den Node als verbunden meldet.

Jeder Schritt wird unten erklärt.

Was jeder Client verlangt

EinstellungWert
HostDer Teil von Adresse vor dem Doppelpunkt, zum Beispiel 203.0.113.10
PortDie Zahl nach dem Doppelpunkt
PasswortDas password: unter lavalink:, server: in der application.yml
Secure / SSLAus: Der Node nutzt einfaches http und ws

Wo du sie findest: So hostest du einen Lavalink-Server rund um die Uhr (24/7).

Die application.yml im Datei-Editor geöffnet, mit der Passwort-Zeile unter lavalink, server.

Nimm eine Client-Version, die DAVE unterstützt

Seit dem 2. März 2026 lässt Discord nur noch Voice-Clients in Voice-Channels (Stage-Channels ausgenommen), die seine Ende-zu-Ende-Verschlüsselung unterstützen, das DAVE-Protokoll. Lavalink unterstützt DAVE ab Version 4.2.0, und dein Node läuft mit 4.2.2. Laut den Release Notes von Lavalink 4.2.0 muss auch der Client aktualisiert werden: Er muss dem Node jetzt die ID des Voice-Channels schicken. Eine ältere Client-Version verbindet sich zwar noch mit dem Node, aber Lavalink kann die Sprachverbindung nicht öffnen, also spielt nichts. Die Version, die du bei jedem gängigen Client nehmen solltest, oder eine neuere:

ClientSpracheDiese Version oder neuer
ShoukakuNode.js4.3.0 (28. Feb. 2026)
lavalink-clientNode.js2.9.7 (2. März 2026). Die DAVE-Arbeit begann in 2.9.3 (27. Feb. 2026); der Autor nennt 2.9.7 das erste große Release mit DAVE.
WavelinkPython3.5.1 (11. Apr. 2026)
Lavalink.pyPython5.10.0 (28. Feb. 2026)

Bei anderen Bibliotheken hat die eigene Client-Liste von Lavalink eine DAVE-Spalte. Mit einem älteren Client antwortet dein Node auf das Voice-Update mit einem 400-Fehler und der Meldung token, endpoint, sessionId and channelId must be provided in voice state. (Ein Bot, der sich ohne Lavalink selbst mit dem Discord-Voice verbindet, bekommt stattdessen Discords Close-Code 4017, E2EE/DAVE protocol required.)

Halte die Werte aus deinem Code heraus

Die Beispiele unten lesen LAVALINK_HOST, LAVALINK_PORT und LAVALINK_PASSWORD aus der Umgebung. Läuft dein Bot in einem PlayNHost-Bot-Tarif:

  1. Öffne die Bot-Seite des Bot-Servers und klick auf Umgebung.
  2. Füg unter Variable hinzufügen LAVALINK_HOST und LAVALINK_PORT hinzu. Füg LAVALINK_PASSWORD mit angehaktem Diesen Wert geheim halten hinzu.
  3. Starte den Bot neu. Die Variablen erreichen ihn beim Start.

Mehr dazu: Umgebungsvariablen und Secrets für deinen Discord-Bot setzen.

Node.js mit Shoukaku

Pakete: discord.js und shoukaku (4.3.0 oder neuer).

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);

Die Dokumentation von Shoukaku zeigt, wie du einem Voice-Channel beitrittst und einen Titel abspielst, sobald der Node verbunden ist.

Pakete: discord.py und wavelink (3.5.1 oder neuer).

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 läuft einmal, bevor sich der Bot verbindet. on_ready kann nach jedem Reconnect erneut laufen, verbinde den Node also nicht dort.

Andere Clients

Jeder Client, der Lavalink 4 und DAVE unterstützt, funktioniert genauso mit denselben drei Werten, zum Beispiel lavalink-client für discord.js oder Lavalink.py für Python. Ein Client, der für Lavalink 3 geschrieben wurde, kann nicht mit einem Node der Version 4 sprechen.

Es verbindet sich nicht

  • Connection refused oder Timeout: Der Host oder Port ist falsch, oder der Node ist gestoppt. Kopier die Adresse noch mal von der Übersicht und prüf, ob die Console Lavalink is ready to accept connections. zeigt.
  • 401 oder Unauthorized: Das Passwort stimmt nicht mit der application.yml überein. Kopier es noch mal ohne die Anführungszeichen.
  • Ein SSL- oder TLS-Fehler: Secure ist in deinem Client eingeschaltet. Schalte es aus oder nimm http:// statt https://.
  • Er verbindet sich und spielt dann nichts: Prüf zuerst, ob dein Client nicht älter ist als die Version in der Tabelle oben. Dann: Der Bot braucht Connect und Speak im Voice-Channel, und der Node braucht eine Quelle, die abspielen kann, was du angefragt hast: Lavalink-Fehler und was sie bedeuten.

Nutzt du noch einen kostenlosen öffentlichen Node? Öffentlicher Node oder eigener Node vergleicht die Möglichkeiten.

Läuft dein Bot schon woanders? Zieh ihn zu uns um

UNSERE NEUESTEN BLOGS