NUOVO 📢 Offerta di lancio limitata: fino al 70% di sconto sul tuo primo mese, per tutti i giochi!Vedi i piani

Come collegare il tuo bot Discord a Lavalink

Hosting LavalinkUpdated Nov 6, 20266 min read

Al tuo bot servono tre valori del tuo nodo Lavalink: host, porta e password. Host e porta sono l'Indirizzo in Panoramica del nodo; la password è in application.yml. La tua libreria client deve supportare Lavalink versione 4 e la crittografia vocale DAVE di Discord, e l'opzione sicura (SSL) resta disattivata.

  1. In Panoramica del server Lavalink, copia l'Indirizzo (host e porta) e copia la password da application.yml.
  2. Nella pagina Bot del tuo server bot, Ambiente, aggiungi LAVALINK_HOST, LAVALINK_PORT e LAVALINK_PASSWORD.
  3. Aggiungi il codice client per la tua libreria (esempi qui sotto), con l'opzione sicura (SSL) disattivata.
  4. Riavvia il bot e controlla che segnali il nodo come connesso.

Ogni passaggio in dettaglio qui sotto.

Cosa chiede ogni client

ImpostazioneValore
HostLa parte di Indirizzo prima dei due punti, per esempio 203.0.113.10
PortaIl numero dopo i due punti
PasswordLa password: sotto lavalink:, server: in application.yml
Sicuro / SSLDisattivato: il nodo usa http e ws semplici

Dove trovarli: Come ospitare un server Lavalink 24/7.

application.yml aperto nell'editor di file con la riga della password sotto lavalink, server.

Usa una versione del client che supporta DAVE

Dal 2 marzo 2026 Discord ammette nei canali vocali (esclusi i canali stage) solo i client vocali che supportano la sua crittografia end-to-end, il protocollo DAVE. Lavalink supporta DAVE dalla versione 4.2.0, e il tuo nodo usa la 4.2.2. Secondo le note di rilascio di Lavalink 4.2.0, anche il client va aggiornato: ora deve inviare al nodo l'ID del canale vocale. Una versione più vecchia del client si connette ancora al nodo, ma Lavalink non riesce ad aprire la connessione vocale, quindi non si riproduce nulla. La versione da usare per ciascun client comune, o una più recente:

ClientLinguaggioUsa questa versione o una più recente
ShoukakuNode.js4.3.0 (28 feb 2026)
lavalink-clientNode.js2.9.7 (2 mar 2026). Il lavoro su DAVE è iniziato nella 2.9.3 (27 feb 2026); il suo autore chiama la 2.9.7 la prima versione importante con DAVE.
WavelinkPython3.5.1 (11 apr 2026)
Lavalink.pyPython5.10.0 (28 feb 2026)

Per le altre librerie, l'elenco dei client di Lavalink ha una colonna DAVE. Con un client vecchio, il tuo nodo risponde all'aggiornamento vocale con un errore 400 che dice token, endpoint, sessionId and channelId must be provided in voice state. (Un bot che si collega da solo alla voce di Discord, senza Lavalink, riceve invece il codice di chiusura 4017 di Discord, E2EE/DAVE protocol required.)

Tieni i valori fuori dal tuo codice

Gli esempi qui sotto leggono LAVALINK_HOST, LAVALINK_PORT e LAVALINK_PASSWORD dall'ambiente. Se il tuo bot gira su un piano bot PlayNHost:

  1. Apri la pagina Bot del server bot e clicca su Ambiente.
  2. Sotto Aggiungi una variabile, aggiungi LAVALINK_HOST e LAVALINK_PORT. Aggiungi LAVALINK_PASSWORD con Tieni segreto questo valore spuntato.
  3. Riavvia il bot. Le variabili gli arrivano quando parte.

Altro: Come impostare variabili d'ambiente e segreti per il tuo bot Discord.

Node.js con Shoukaku

Pacchetti: discord.js e shoukaku (4.3.0 o successiva).

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

La documentazione di Shoukaku mostra come entrare in un canale vocale e riprodurre un brano una volta che il nodo è connesso.

Pacchetti: discord.py e wavelink (3.5.1 o successiva).

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 viene eseguito una sola volta, prima che il bot si connetta; on_ready può essere eseguito di nuovo dopo ogni riconnessione, quindi non connettere il nodo lì.

Altri client

Qualsiasi client che supporti Lavalink 4 e DAVE funziona allo stesso modo con gli stessi tre valori, per esempio lavalink-client per discord.js o Lavalink.py per Python. Un client scritto per Lavalink 3 non può comunicare con un nodo versione 4.

Non si connette

  • Connessione rifiutata o timeout: host o porta sono sbagliati, oppure il nodo è fermo. Copia di nuovo l'Indirizzo da Panoramica e controlla che la console mostri Lavalink is ready to accept connections.
  • 401 o Unauthorized: la password non corrisponde a quella in application.yml. Copiala di nuovo senza le virgolette.
  • Un errore SSL o TLS: l'opzione sicura è attiva nel tuo client. Disattivala, oppure usa http:// invece di https://.
  • Si connette, ma non riproduce nulla: controlla prima che la versione del tuo client non sia più vecchia di quella nella tabella qui sopra. Poi: il bot ha bisogno di Connetti e Parla nel canale vocale, e il nodo ha bisogno di una fonte in grado di riprodurre ciò che hai chiesto: Errori Lavalink e cosa significano.

Usi ancora un nodo pubblico gratuito? Nodo pubblico o nodo tuo confronta le opzioni.

Il tuo bot è già ospitato altrove? Spostalo da noi

ULTIMI ARTICOLI