NUEVO 📢 Oferta de lanzamiento limitada: ¡hasta un 70% de descuento en tu primer mes, en todos los juegos!Ver planes

Cómo reproducir YouTube en Lavalink 4

Hosting de LavalinkUpdated Nov 6, 20268 min read

Lavalink 4 reproduce YouTube mediante un plugin, no por sí solo: su fuente de YouTube integrada está obsoleta y debe quedar desactivada. Instala el plugin de la fuente de YouTube (dev.lavalink.youtube:youtube-plugin), pon youtube: false en lavalink.server.sources y activa el plugin en plugins.youtube. En nuestros servidores eso no bastó: YouTube pidió iniciar sesión, así que inicia sesión una vez en el plugin con una cuenta de Google de repuesto y guarda el refresh token. Con la versión 1.18.2 el inicio de sesión tampoco basta por sí solo (mira “Versión 1.18.2 y el inicio de sesión” más abajo). En uno de nuestros propios servidores de Lavalink, el 6 de noviembre de 2026, con 1.18.2 más las correcciones sin publicar y un servidor de cifrado, el plugin encontró las 12 canciones de prueba pero no pudo reproducir ninguna antes de iniciar sesión, y reprodujo todas las 10 pruebas que terminaron después (15 segundos cada una, sin canal de voz).

La documentación del propio plugin dice que YouTube marca algunas peticiones y les pide “iniciar sesión para confirmar que no eres un bot”. Eso es lo que vimos en nuestros servidores. Sin sesión, el plugin encontró todas las canciones de prueba por búsqueda y por enlace, pero luego cada uno de sus clientes fue rechazado al intentar reproducirla:

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.

En nuestra prueba, buscar funcionó sin iniciar sesión; reproducir, no. Tu bot ve que la canción empieza y falla al instante con una excepción de pista.

Otras dos cosas rompen la reproducción de vez en cuando, y la documentación del plugin cubre las dos:

  • El cifrado de la firma. YouTube cambia a menudo el código que desbloquea sus streams. El plugin puede delegar ese trabajo en un servidor de cifrado remoto (remoteCipher), como el yt-cipher de código abierto.
  • Los clientes. El plugin habla con YouTube como varias aplicaciones (WEB, MWEB, ANDROID_VR, TV y otras) y las prueba en el orden en que las listes. Solo TV usa el inicio de sesión para reproducir, y solo los clientes marcados para ello pueden buscar.

Versión 1.18.2 y el inicio de sesión

El inicio de sesión lo usa el cliente TV, y el cliente TV de la versión 1.18.2 tiene un problema conocido: desde agosto de 2026 YouTube le responde “The page needs to be reloaded” (issue #226 en el repositorio de GitHub del plugin, aún abierta el 6 de noviembre de 2026). Los desarrolladores del plugin fusionaron una corrección el 19 de agosto de 2026, otra para streams que no informan de su duración ese mismo día, y una para las conexiones del cifrado el 17 de septiembre de 2026, pero el 6 de noviembre de 2026 aún no había salido ninguna versión con ellas. El README del plugin explica cómo cargar una compilación de un commit concreto en lugar de una versión: el hash del commit como versión, con snapshot: true. Mira antes la página de versiones por si hay una más nueva.

  1. Añade el plugin a application.yml en lavalink.plugins, con la versión de las releases de GitHub del plugin. La 1.18.2 (27 de julio de 2026) es la más reciente el 6 de noviembre de 2026. Tiene el problema del cliente TV descrito arriba, así que lee esa sección antes de elegir la versión:
lavalink:
  plugins:
    - dependency: "dev.lavalink.youtube:youtube-plugin:1.18.2"
      snapshot: false
  server:
    sources:
      youtube: false
  1. Activa el plugin y dale sus clientes:
plugins:
  youtube:
    enabled: true
    allowSearch: true
    clients:
      - MUSIC
      - ANDROID_VR
      - WEB
      - WEBEMBEDDED
      - TV
    oauth:
      enabled: true
  1. Si quieres, añade un servidor de cifrado en plugins.youtube.remoteCipher (url y password), como describe el README del plugin.
  2. Inicia Lavalink. La consola muestra un código y una dirección: abre https://www.google.com/device, escribe el código y permite el acceso con una cuenta de Google de repuesto. Los autores del plugin advierten de que la cuenta puede ser cancelada, así que nunca uses la principal.
  3. La consola muestra entonces OAUTH INTEGRATION: Token retrieved successfully. Store your refresh token as this can be reused. con el token entre corchetes. Cópialo en application.yml para que el nodo no vuelva a preguntar tras un reinicio:
    oauth:
      enabled: true
      refreshToken: "PASTE_THE_TOKEN_HERE"
  1. Reinicia Lavalink. Con un token válido registra YouTube access token refreshed successfully.

El refresh token abre esa cuenta de Google: mantén application.yml en privado.

La instalación ya hace la parte del plugin: el plugin de YouTube 1.18.2 con correcciones de PlayNHost está en plugins como youtube-plugin-1.18.2-playnhost1.jar, la fuente de YouTube propia de Lavalink está desactivada, el inicio de sesión está activado, y el plugin usa un servidor de cifrado que ejecutamos en nuestra propia red. Las correcciones son los cambios del cliente TV, del cifrado y de la duración de los streams que los desarrolladores del plugin fusionaron en agosto y septiembre de 2026 pero aún no han publicado. Tú haces una sola cosa: iniciar sesión.

  1. Abre tu servidor en el panel y pulsa Iniciar en Console.
  2. Busca la línea OAUTH INTEGRATION: To give youtube-source access to your account, go to https://www.google.com/device and enter code XXXX-XXXX, abre la dirección, escribe el código y permite el acceso con una cuenta de Google de repuesto.
  3. Cuando la consola muestre Token retrieved successfully, copia el token de entre los corchetes, detén el nodo y añádelo en oauth: dentro de application.yml, en Files, como en el paso 5 de arriba. Respeta la sangría.
  4. Inicia el nodo otra vez y comprueba que aparece YouTube access token refreshed successfully.

Deja plugins.youtube.remoteCipher.url como está: el panel lo escribe en cada inicio, y la dirección solo funciona desde nuestros servidores. Una reinstalación conserva tu application.yml, con el token dentro.

Que YouTube sirva o no una canción a un servidor es decisión de YouTube, y cambia sin aviso. Nosotros mantenemos el nodo y el plugin funcionando; no podemos prometer lo que YouTube permita. Si no quieres YouTube en absoluto, pon enabled: false en plugins:, youtube:.

Mensajes de YouTube en la consola

MensajeQué significa y qué hacer
OAUTH INTEGRATION: To give youtube-source access to your account, go to https://www.google.com/device and enter code ...El plugin espera el inicio de sesión. Sigue los pasos de arriba.
OAUTH INTEGRATION: The device token has expired. OAuth integration has been canceled.El código no se escribió a tiempo. Reinicia el nodo para obtener uno nuevo.
YouTube access token refreshed successfullyEl refresh token guardado funciona.
Refreshing YouTube access token failedEl token ya no funciona, a menudo porque se cerró la sesión de la cuenta o el token se copió mal. Quita refreshToken, reinicia e inicia sesión de nuevo.
This video requires login. o Sign in to confirm you’re not a bot después de Client [...] failed:YouTube se niega a servir al servidor sin inicio de sesión. Inicia sesión en el plugin o comprueba que el token guardado siga funcionando.
All clients failed to load the item.Se rechazó a todos los clientes de tu lista. Las líneas Client [...] failed: junto a este mensaje dan el motivo de cada uno.
The page needs to be reloaded del cliente TVHTML5El problema del cliente TV de la versión 1.18.2 descrito arriba.

Otras formas de tener música sin YouTube

El mismo nodo puede reproducir desde fuentes que no necesitan iniciar sesión. En nuestros planes, Bandcamp, Twitch, Vimeo, Niconico y los enlaces http directos están activados desde el principio. Plugins como LavaSrc añaden más sitios, algunos de los cuales necesitan tus propias claves de API: Cómo añadir plugins a Lavalink.

Siguiente

¿Ya tienes tu bot en otro proveedor? Tráelo con nosotros

NUESTROS ÚLTIMOS BLOGS