NOUVEAU 📢 Offre de lancement limitée : jusqu'à 70 % de remise sur votre premier mois, pour tous les jeux !Voir les offres

Comment lire YouTube sur Lavalink 4

Hébergement LavalinkUpdated Nov 6, 20268 min read

Lavalink 4 lit YouTube grâce à un plugin, pas tout seul : sa source YouTube intégrée est obsolète et doit rester désactivée. Installez le plugin de source YouTube (dev.lavalink.youtube:youtube-plugin), mettez youtube: false sous lavalink.server.sources et activez le plugin sous plugins.youtube. Sur nos serveurs, cela ne suffisait pas : YouTube demandait une connexion. Connectez donc le plugin une fois avec un compte Google de rechange et conservez le refresh token. Avec la version 1.18.2, la connexion seule ne suffit pas non plus (voir « Version 1.18.2 et la connexion » plus bas). Sur l’un de nos propres serveurs Lavalink, le 6 novembre 2026, avec la 1.18.2, les correctifs non publiés et un serveur de chiffrement, le plugin a trouvé les 12 morceaux de test mais n’a pu en lancer aucun avant la connexion, et a lancé chacun des 10 tests terminés après elle (15 secondes chacun, sans salon vocal).

La documentation du plugin indique que YouTube signale certaines requêtes et leur demande de « se connecter pour confirmer que vous n’êtes pas un robot ». C’est ce que nous avons vu sur nos serveurs. Sans connexion, le plugin trouvait chaque morceau de test par recherche et par lien, puis chacun de ses clients était refusé au moment de le lire :

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.

Dans notre test, la recherche fonctionnait sans connexion ; la lecture, non. Votre bot voit le morceau démarrer puis échouer aussitôt avec une exception de piste.

Deux autres choses interrompent la lecture de temps en temps, et la documentation du plugin traite les deux :

  • Le chiffrement de la signature. YouTube change souvent le code qui dĂ©verrouille ses flux. Le plugin peut confier ce travail Ă  un serveur de chiffrement distant (remoteCipher), comme le projet open source yt-cipher.
  • Les clients. Le plugin parle Ă  YouTube comme plusieurs applications (WEB, MWEB, ANDROID_VR, TV et d’autres) et les essaie dans l’ordre oĂą vous les listez. Seul TV utilise la connexion pour la lecture, et seuls les clients prĂ©vus pour cela peuvent chercher.

Version 1.18.2 et la connexion

La connexion est utilisée par le client TV, et le client TV de la version 1.18.2 a un problème connu : depuis août 2026, YouTube lui répond « The page needs to be reloaded » (ticket n° 226 dans le dépôt GitHub du plugin, toujours ouvert le 6 novembre 2026). Les développeurs du plugin ont fusionné un correctif le 19 août 2026, un correctif pour les flux sans durée le même jour et un correctif des connexions au chiffrement le 17 septembre 2026, mais aucune version les contenant n’était sortie le 6 novembre 2026. Le README du plugin explique comment charger à la place une build d’un commit précis : le hash du commit comme version, avec snapshot: true. Regardez d’abord la page des versions pour en trouver une plus récente.

  1. Ajoutez le plugin à application.yml sous lavalink.plugins, avec la version des releases GitHub du plugin. La 1.18.2 (27 juillet 2026) est la plus récente au 6 novembre 2026. Elle a le problème du client TV décrit plus haut : lisez cette section avant de choisir la version :
lavalink:
  plugins:
    - dependency: "dev.lavalink.youtube:youtube-plugin:1.18.2"
      snapshot: false
  server:
    sources:
      youtube: false
  1. Activez le plugin et donnez-lui ses clients :
plugins:
  youtube:
    enabled: true
    allowSearch: true
    clients:
      - MUSIC
      - ANDROID_VR
      - WEB
      - WEBEMBEDDED
      - TV
    oauth:
      enabled: true
  1. Ajoutez au besoin un serveur de chiffrement sous plugins.youtube.remoteCipher (url et password), comme le décrit le README du plugin.
  2. Démarrez Lavalink. La console affiche un code et une adresse : ouvrez https://www.google.com/device, saisissez le code et autorisez l’accès avec un compte Google de rechange. Les auteurs du plugin préviennent que le compte peut être résilié : n’utilisez donc jamais le vôtre.
  3. La console affiche ensuite OAUTH INTEGRATION: Token retrieved successfully. Store your refresh token as this can be reused. avec le token entre crochets. Copiez-le dans application.yml pour que le node ne redemande pas après un redémarrage :
    oauth:
      enabled: true
      refreshToken: "PASTE_THE_TOKEN_HERE"
  1. Redémarrez Lavalink. Avec un token valide, il journalise YouTube access token refreshed successfully.

Le refresh token ouvre ce compte Google : gardez application.yml privé.

L’installation fait déjà la partie plugin : le plugin YouTube 1.18.2 avec correctifs PlayNHost est dans plugins sous le nom youtube-plugin-1.18.2-playnhost1.jar, la source YouTube propre à Lavalink est désactivée, la connexion est activée, et le plugin utilise un serveur de chiffrement que nous exploitons sur notre propre réseau. Les correctifs sont les changements du client TV, du chiffrement et de la durée des flux que les développeurs du plugin ont fusionnés en août et septembre 2026 mais pas encore publiés. Vous ne faites qu’une chose : la connexion.

  1. Ouvrez votre serveur dans le panel et cliquez sur Démarrer dans Console.
  2. Repérez la ligne OAUTH INTEGRATION: To give youtube-source access to your account, go to https://www.google.com/device and enter code XXXX-XXXX, ouvrez l’adresse, saisissez le code et autorisez l’accès avec un compte Google de rechange.
  3. Quand la console affiche Token retrieved successfully, copiez le token entre crochets, arrêtez le node et ajoutez-le sous oauth: dans application.yml, dans Files, comme à l’étape 5 ci-dessus. Respectez l’indentation.
  4. Redémarrez le node et vérifiez que YouTube access token refreshed successfully apparaît.

Laissez plugins.youtube.remoteCipher.url tel quel : le panel l’écrit à chaque démarrage, et l’adresse ne fonctionne que depuis nos serveurs. Une réinstallation conserve votre application.yml, avec le token dedans.

Que YouTube serve ou non un morceau à un serveur, c’est la décision de YouTube, et elle change sans préavis. Nous gardons le node et le plugin en état de marche ; nous ne pouvons pas promettre ce que YouTube autorise. Si vous ne voulez pas de YouTube du tout, mettez enabled: false sous plugins:, youtube:.

Messages YouTube dans la console

MessageCe que cela signifie et que faire
OAUTH INTEGRATION: To give youtube-source access to your account, go to https://www.google.com/device and enter code ...Le plugin attend la connexion. Suivez les étapes ci-dessus.
OAUTH INTEGRATION: The device token has expired. OAuth integration has been canceled.Le code n’a pas été saisi à temps. Redémarrez le node pour en obtenir un nouveau.
YouTube access token refreshed successfullyLe refresh token enregistré fonctionne.
Refreshing YouTube access token failedLe token ne fonctionne plus, souvent parce que le compte a été déconnecté ou que le token a été mal copié. Supprimez refreshToken, redémarrez et reconnectez-vous.
This video requires login. ou Sign in to confirm you’re not a bot après Client [...] failed:YouTube refuse de servir le serveur sans connexion. Connectez le plugin, ou vérifiez que le token enregistré fonctionne encore.
All clients failed to load the item.Tous les clients de votre liste ont été refusés. Les lignes Client [...] failed: à côté donnent la raison de chacun.
The page needs to be reloaded du client TVHTML5Le problème du client TV de la version 1.18.2 décrit plus haut.

Autres moyens d’avoir de la musique sans YouTube

Le même node peut lire depuis des sources qui n’exigent aucune connexion. Sur nos offres, Bandcamp, Twitch, Vimeo, Niconico et les liens http directs sont activés dès le départ. Des plugins comme LavaSrc ajoutent d’autres sites, dont certains demandent vos propres clés d’API : Comment ajouter des plugins à Lavalink.

Ensuite

Votre bot est hébergé ailleurs ? Transférez-le chez nous

NOS DERNIERS ARTICLES