NIEUW 📢 Beperkte lanceeractie: tot 70% korting op je eerste maand, voor elke game!Bekijk pakketten

YouTube afspelen op Lavalink 4

Lavalink-hostingUpdated Nov 6, 20268 min read

Lavalink 4 speelt YouTube af via een plugin, niet op eigen kracht: de ingebouwde YouTube-bron is verouderd en moet uit blijven. Installeer de YouTube-source-plugin (dev.lavalink.youtube:youtube-plugin), zet youtube: false onder lavalink.server.sources en zet de plugin aan onder plugins.youtube. Op onze servers was dat niet genoeg: YouTube vroeg om een login. Log de plugin dus één keer in met een reserve-Google-account en bewaar de refresh token. Met release 1.18.2 is de login alleen ook niet genoeg (zie „Versie 1.18.2 en de login” hieronder). Op een van onze eigen Lavalink-servers vond de plugin op 6 november 2026, met 1.18.2 plus de nog niet uitgebrachte fixes en een cipherserver, alle 12 testnummers, maar kon hij er voor de login geen enkele starten, en startte hij elk van de 10 tests die daarna zijn voltooid (elk 15 seconden, zonder spraakkanaal).

De eigen documentatie van de plugin zegt dat YouTube sommige verzoeken markeert en vraagt om „in te loggen om te bevestigen dat je geen bot bent”. Dat zagen wij op onze servers. Zonder login vond de plugin elk testnummer via zoeken en via een link, maar daarna werd elk van zijn clients geweigerd toen hij het wilde afspelen:

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.

In onze test werkte zoeken zonder login; afspelen niet. Je bot ziet het nummer starten en meteen mislukken met een track exception.

Twee andere dingen verstoren het afspelen af en toe, en de documentatie van de plugin behandelt allebei:

  • De handtekening-cipher. YouTube verandert vaak de code die zijn streams ontgrendelt. De plugin kan dat werk doorgeven aan een externe cipherserver (remoteCipher), zoals het opensourceproject yt-cipher.
  • De clients. De plugin praat met YouTube als meerdere apps (WEB, MWEB, ANDROID_VR, TV en andere) en probeert ze in de volgorde die jij opgeeft. Alleen TV gebruikt de login om af te spelen, en alleen clients die daarvoor zijn aangemerkt kunnen zoeken.

Versie 1.18.2 en de login

De login wordt gebruikt door de TV-client, en de TV-client in release 1.18.2 heeft een bekend probleem: sinds augustus 2026 antwoordt YouTube hem met „The page needs to be reloaded” (issue #226 in de GitHub-repository van de plugin, op 6 november 2026 nog open). De ontwikkelaars van de plugin voegden op 19 augustus 2026 een fix samen, dezelfde dag een fix voor streams zonder lengte en op 17 september 2026 een fix voor de cipherverbindingen, maar op 6 november 2026 was er nog geen release mee. De README van de plugin legt uit hoe je in plaats van een release een build van een specifieke commit laadt: de commit-hash als versie, met snapshot: true. Kijk eerst op de releasepagina of er een nieuwere versie is.

  1. Voeg de plugin toe aan application.yml onder lavalink.plugins, met de versie uit de GitHub-releases van de plugin. 1.18.2 (27 juli 2026) is op 6 november 2026 de nieuwste release. Die heeft het hierboven beschreven TV-clientprobleem, dus lees dat deel voordat je de versie kiest:
lavalink:
  plugins:
    - dependency: "dev.lavalink.youtube:youtube-plugin:1.18.2"
      snapshot: false
  server:
    sources:
      youtube: false
  1. Zet de plugin aan en geef hem zijn clients:
plugins:
  youtube:
    enabled: true
    allowSearch: true
    clients:
      - MUSIC
      - ANDROID_VR
      - WEB
      - WEBEMBEDDED
      - TV
    oauth:
      enabled: true
  1. Voeg eventueel een cipherserver toe onder plugins.youtube.remoteCipher (url en password), zoals de README van de plugin beschrijft.
  2. Start Lavalink. De console toont een code en een adres: open https://www.google.com/device, voer de code in en geef toegang met een reserve-Google-account. De makers van de plugin waarschuwen dat het account kan worden beëindigd, dus gebruik nooit je hoofdaccount.
  3. De console toont daarna OAUTH INTEGRATION: Token retrieved successfully. Store your refresh token as this can be reused. met de token tussen haakjes. Kopieer hem naar application.yml, zodat de node na een herstart niet opnieuw vraagt:
    oauth:
      enabled: true
      refreshToken: "PASTE_THE_TOKEN_HERE"
  1. Herstart Lavalink. Met een werkende token logt hij YouTube access token refreshed successfully.

De refresh token opent dat Google-account: houd application.yml privé.

De installatie doet het pluginwerk al: de YouTube-plugin 1.18.2 met PlayNHost-fixes staat in plugins als youtube-plugin-1.18.2-playnhost1.jar, de eigen YouTube-bron van Lavalink staat uit, de login staat aan en de plugin gebruikt een cipherserver die wij op ons eigen netwerk draaien. De fixes zijn de wijzigingen aan de TV-client, de cipher en de streamlengte die de ontwikkelaars van de plugin in augustus en september 2026 hebben samengevoegd maar nog niet hebben uitgebracht. Jij doet één ding: de login.

  1. Open je server in het panel en klik op Starten in de Console.
  2. Zoek de regel OAUTH INTEGRATION: To give youtube-source access to your account, go to https://www.google.com/device and enter code XXXX-XXXX, open het adres, voer de code in en geef toegang met een reserve-Google-account.
  3. Als de console Token retrieved successfully toont, kopieer je de token uit de haakjes, stop je de node en voeg je hem toe onder oauth: in application.yml bij Files, zoals in stap 5 hierboven. Behoud de inspringing.
  4. Start de node opnieuw en controleer of YouTube access token refreshed successfully verschijnt.

Laat plugins.youtube.remoteCipher.url zoals het is: het panel schrijft het bij elke start, en het adres werkt alleen vanaf onze servers. Een herinstallatie behoudt je application.yml, met de token erin.

Of YouTube een bepaald nummer aan een server geeft, beslist YouTube, en dat verandert zonder waarschuwing. Wij houden de node en de plugin werkend; wij kunnen niet beloven wat YouTube toestaat. Wil je helemaal geen YouTube, zet dan enabled: false onder plugins:, youtube:.

YouTube-berichten in de console

BerichtWat het betekent en wat je doet
OAUTH INTEGRATION: To give youtube-source access to your account, go to https://www.google.com/device and enter code ...De plugin wacht op de login. Volg de stappen hierboven.
OAUTH INTEGRATION: The device token has expired. OAuth integration has been canceled.De code is niet op tijd ingevoerd. Herstart de node voor een nieuwe.
YouTube access token refreshed successfullyDe opgeslagen refresh token werkt.
Refreshing YouTube access token failedDe token werkt niet meer, vaak omdat het account is uitgelogd of de token verkeerd is gekopieerd. Verwijder refreshToken, herstart en log opnieuw in.
This video requires login. of Sign in to confirm you’re not a bot na Client [...] failed:YouTube weigert de server te bedienen zonder login. Log de plugin in, of controleer of de opgeslagen token nog werkt.
All clients failed to load the item.Elke client in je lijst is geweigerd. De regels Client [...] failed: ernaast geven de reden van elk.
The page needs to be reloaded van de TVHTML5-clientHet hierboven beschreven TV-clientprobleem van release 1.18.2.

Andere manieren om muziek te krijgen zonder YouTube

Dezelfde node kan afspelen van bronnen die geen login nodig hebben. Op onze pakketten staan Bandcamp, Twitch, Vimeo, Niconico en directe http-links vanaf het begin aan. Plugins zoals LavaSrc voegen meer sites toe, waarvan sommige je eigen API-sleutels nodig hebben: Plugins toevoegen aan Lavalink.

Hierna

Draait je bot al ergens anders? Verhuis hem naar ons

ONZE NIEUWSTE BLOGS