Lavalink 4 riproduce YouTube tramite un plugin, non da solo: la sua fonte YouTube integrata è deprecata e va lasciata disattivata. Installa il plugin della fonte YouTube (dev.lavalink.youtube:youtube-plugin), imposta youtube: false sotto lavalink.server.sources e attiva il plugin sotto plugins.youtube. Sui nostri server non è bastato: YouTube chiedeva un accesso, quindi fai accedere il plugin una volta con un account Google di riserva e conserva il refresh token. Con la release 1.18.2 nemmeno l’accesso da solo basta (vedi “Versione 1.18.2 e l’accesso” più sotto). Su uno dei nostri server Lavalink, il 6 novembre 2026, con la 1.18.2, le correzioni non ancora rilasciate e un server cipher, il plugin ha trovato tutti i 12 brani di prova ma non ne ha potuto avviare nessuno prima dell’accesso, e ha avviato ognuno dei 10 test completati dopo (15 secondi ciascuno, senza canale vocale).
Perché YouTube fallisce su un server Lavalink
La documentazione del plugin dice che YouTube segnala alcune richieste e chiede di “accedere per confermare che non sei un bot”. È quello che abbiamo visto sui nostri server. Senza accesso, il plugin trovava ogni brano di prova con la ricerca e con il link, ma poi ognuno dei suoi client veniva rifiutato quando provava a riprodurlo:
Client [WEB] failed: This video requires login.
Client [TVHTML5_SIMPLY] failed: Sign in to confirm you’re not a bot
Client [TVHTML5] failed: This video requires login.
Client [WEB_EMBEDDED_PLAYER] failed: This video is unavailable
dev.lavalink.youtube.AllClientsFailedException: (yts.version: 1.18.2) All clients failed to load the item.
Nel nostro test la ricerca funzionava senza accesso; la riproduzione no. Il tuo bot vede il brano partire e fallire subito con una track exception.
Altre due cose interrompono ogni tanto la riproduzione, e la documentazione del plugin le tratta entrambe:
- Il cifrario della firma. YouTube cambia spesso il codice che sblocca i suoi stream. Il plugin può affidare questo lavoro a un server cipher remoto (
remoteCipher), come il progetto open source yt-cipher. - I client. Il plugin parla con YouTube come se fosse diverse app (
WEB,MWEB,ANDROID_VR,TVe altre) e le prova nell’ordine in cui le elenchi. SoloTVusa l’accesso per la riproduzione, e solo i client contrassegnati per questo possono cercare.
Versione 1.18.2 e l’accesso
L’accesso viene usato dal client TV, e il client TV della release 1.18.2 ha un problema noto: da agosto 2026 YouTube gli risponde “The page needs to be reloaded” (issue #226 nel repository GitHub del plugin, ancora aperta il 6 novembre 2026). Gli sviluppatori del plugin hanno integrato una correzione il 19 agosto 2026, una per gli stream che non indicano la durata lo stesso giorno e una per le connessioni al cipher il 17 settembre 2026, ma il 6 novembre 2026 non era uscita nessuna release con queste modifiche. Il README del plugin spiega come caricare al suo posto una build di un commit preciso: l’hash del commit come versione, con snapshot: true. Controlla prima la pagina delle release per una versione più recente.
Configura il plugin sul tuo Lavalink
- Aggiungi il plugin a
application.ymlsottolavalink.plugins, con la versione dalle release GitHub del plugin. La 1.18.2 (27 luglio 2026) è la più recente al 6 novembre 2026. Ha il problema del client TV descritto sopra, quindi leggi quella sezione prima di scegliere la versione:
lavalink:
plugins:
- dependency: "dev.lavalink.youtube:youtube-plugin:1.18.2"
snapshot: false
server:
sources:
youtube: false
- Attiva il plugin e dagli i suoi client:
plugins:
youtube:
enabled: true
allowSearch: true
clients:
- MUSIC
- ANDROID_VR
- WEB
- WEBEMBEDDED
- TV
oauth:
enabled: true
- Se vuoi, aggiungi un server cipher sotto
plugins.youtube.remoteCipher(urlepassword), come descrive il README del plugin. - Avvia Lavalink. La console stampa un codice e un indirizzo: apri
https://www.google.com/device, inserisci il codice e consenti l’accesso con un account Google di riserva. Gli autori del plugin avvertono che l’account può essere chiuso, quindi non usare mai il tuo principale. - La console stampa poi
OAUTH INTEGRATION: Token retrieved successfully. Store your refresh token as this can be reused.con il token tra parentesi quadre. Copialo inapplication.ymlcosì il nodo non lo richiede dopo un riavvio:
oauth:
enabled: true
refreshToken: "PASTE_THE_TOKEN_HERE"
- Riavvia Lavalink. Con un token valido registra
YouTube access token refreshed successfully.
Il refresh token apre quell’account Google: tieni application.yml privato.
Su un piano Lavalink PlayNHost
L’installazione fa già la parte del plugin: il plugin YouTube 1.18.2 con le correzioni PlayNHost è in plugins come youtube-plugin-1.18.2-playnhost1.jar, la fonte YouTube di Lavalink è disattivata, l’accesso è attivo e il plugin usa un server cipher che gestiamo sulla nostra rete. Le correzioni sono le modifiche a client TV, cipher e durata degli stream che gli sviluppatori del plugin hanno integrato ad agosto e settembre 2026 ma non hanno ancora rilasciato. Tu fai una sola cosa: l’accesso.
- Apri il tuo server nel pannello e premi Avvia in Console.
- Trova la riga
OAUTH INTEGRATION: To give youtube-source access to your account, go to https://www.google.com/device and enter code XXXX-XXXX, apri l’indirizzo, inserisci il codice e consenti l’accesso con un account Google di riserva. - Quando la console stampa
Token retrieved successfully, copia il token tra le parentesi quadre, ferma il nodo e aggiungilo sottooauth:inapplication.ymlin Files, come al passaggio 5 qui sopra. Mantieni l’indentazione. - Riavvia il nodo e controlla che compaia
YouTube access token refreshed successfully.
Lascia plugins.youtube.remoteCipher.url com’è: il pannello lo scrive a ogni avvio, e l’indirizzo funziona solo dai nostri server. Una reinstallazione mantiene il tuo application.yml, con il token dentro.
Se YouTube serva o no un brano a un server lo decide YouTube, e cambia senza preavviso. Noi teniamo in funzione il nodo e il plugin; non possiamo promettere ciò che YouTube permette. Se non vuoi YouTube, imposta enabled: false sotto plugins:, youtube:.
Messaggi di YouTube nella console
| Messaggio | Cosa significa e cosa fare |
|---|---|
OAUTH INTEGRATION: To give youtube-source access to your account, go to https://www.google.com/device and enter code ... | Il plugin aspetta l’accesso. Segui i passaggi qui sopra. |
OAUTH INTEGRATION: The device token has expired. OAuth integration has been canceled. | Il codice non è stato inserito in tempo. Riavvia il nodo per ottenerne uno nuovo. |
YouTube access token refreshed successfully | Il refresh token salvato funziona. |
Refreshing YouTube access token failed | Il token non funziona più, spesso perché l’account è stato disconnesso o il token è stato copiato male. Rimuovi refreshToken, riavvia e accedi di nuovo. |
This video requires login. oppure Sign in to confirm you’re not a bot dopo Client [...] failed: | YouTube rifiuta di servire il server senza accesso. Fai accedere il plugin, oppure controlla che il token salvato funzioni ancora. |
All clients failed to load the item. | Ogni client della tua lista è stato rifiutato. Le righe Client [...] failed: accanto a questa danno il motivo di ciascuno. |
The page needs to be reloaded dal client TVHTML5 | Il problema del client TV della release 1.18.2 descritto sopra. |
Altri modi per avere musica senza YouTube
Lo stesso nodo può riprodurre da fonti che non richiedono accesso. Sui nostri piani Bandcamp, Twitch, Vimeo, Niconico e i link http diretti sono attivi fin dall’inizio. Plugin come LavaSrc aggiungono altri siti, alcuni dei quali richiedono le tue chiavi API: Come aggiungere plugin a Lavalink.
Poi
- Configura il nodo: Come ospitare un server Lavalink 24/7.
- Collega il tuo bot: Come collegare il tuo bot Discord a Lavalink.
- Altri errori: Errori Lavalink e cosa significano.
- Piani: Hosting Lavalink.



