NOVO 📢 Oferta de lançamento limitada: até 70% de desconto no seu primeiro mês, em todos os jogos!Ver planos

Como tocar YouTube no Lavalink 4

Hospedagem de LavalinkUpdated Nov 6, 20268 min read

O Lavalink 4 toca YouTube por meio de um plugin, não sozinho: a fonte de YouTube embutida está obsoleta e deve ficar desligada. Instale o plugin da fonte de YouTube (dev.lavalink.youtube:youtube-plugin), coloque youtube: false em lavalink.server.sources e ligue o plugin em plugins.youtube. Nos nossos servidores isso não bastou: o YouTube pediu login. Então faça o login do plugin uma vez com uma conta Google reserva e guarde o refresh token. Com a versão 1.18.2, só o login também não basta (veja “Versão 1.18.2 e o login” abaixo). Em um dos nossos próprios servidores Lavalink, em 6 de novembro de 2026, com a 1.18.2, as correções ainda não lançadas e um servidor de cipher, o plugin encontrou as 12 músicas de teste, mas não conseguiu iniciar nenhuma antes do login e iniciou todos os 10 testes concluídos depois dele (15 segundos cada, sem canal de voz).

A documentação do plugin diz que o YouTube marca algumas requisições e pede para “fazer login para confirmar que você não é um robô”. Foi isso que vimos nos nossos servidores. Sem login, o plugin encontrava todas as músicas de teste por busca e por link, mas depois cada um dos seus clientes era recusado ao tentar tocar:

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.

No nosso teste, a busca funcionou sem login; tocar, não. Seu bot vê a música começar e falhar na hora com uma track exception.

Duas outras coisas atrapalham a reprodução de vez em quando, e a documentação do plugin trata das duas:

  • A cifra da assinatura. O YouTube muda com frequência o código que libera os seus streams. O plugin pode passar esse trabalho para um servidor de cipher remoto (remoteCipher), como o yt-cipher, de código aberto.
  • Os clientes. O plugin fala com o YouTube como vários aplicativos (WEB, MWEB, ANDROID_VR, TV e outros) e tenta cada um na ordem em que você os lista. Só o TV usa o login para tocar, e só os clientes marcados para isso podem buscar.

Versão 1.18.2 e o login

O login é usado pelo cliente TV, e o cliente TV da versão 1.18.2 tem um problema conhecido: desde agosto de 2026 o YouTube responde a ele com “The page needs to be reloaded” (issue #226 no repositório do plugin no GitHub, ainda aberta em 6 de novembro de 2026). Os desenvolvedores do plugin incorporaram uma correção em 19 de agosto de 2026, uma para streams que não informam a duração no mesmo dia, e uma para as conexões do cipher em 17 de setembro de 2026, mas até 6 de novembro de 2026 nenhuma versão com elas tinha saído. O README do plugin explica como carregar, no lugar de uma versão, um build de um commit específico: o hash do commit como versão, com snapshot: true. Antes, veja na página de versões se há uma mais nova.

  1. Adicione o plugin ao application.yml em lavalink.plugins, com a versão das releases do plugin no GitHub. A 1.18.2 (27 de julho de 2026) é a mais recente em 6 de novembro de 2026. Ela tem o problema do cliente TV descrito acima, então leia essa seção antes de escolher a versão:
lavalink:
  plugins:
    - dependency: "dev.lavalink.youtube:youtube-plugin:1.18.2"
      snapshot: false
  server:
    sources:
      youtube: false
  1. Ligue o plugin e dê a ele os clientes:
plugins:
  youtube:
    enabled: true
    allowSearch: true
    clients:
      - MUSIC
      - ANDROID_VR
      - WEB
      - WEBEMBEDDED
      - TV
    oauth:
      enabled: true
  1. Se quiser, adicione um servidor de cipher em plugins.youtube.remoteCipher (url e password), como o README do plugin descreve.
  2. Inicie o Lavalink. O console mostra um código e um endereço: abra https://www.google.com/device, digite o código e permita o acesso com uma conta Google reserva. Os autores do plugin avisam que a conta pode ser encerrada, então nunca use a sua principal.
  3. O console então mostra OAUTH INTEGRATION: Token retrieved successfully. Store your refresh token as this can be reused. com o token entre colchetes. Copie-o para o application.yml para que o node não peça de novo depois de uma reinicialização:
    oauth:
      enabled: true
      refreshToken: "PASTE_THE_TOKEN_HERE"
  1. Reinicie o Lavalink. Com um token válido, ele registra YouTube access token refreshed successfully.

O refresh token abre essa conta Google: mantenha o application.yml privado.

A instalação já faz a parte do plugin: o plugin de YouTube 1.18.2 com correções da PlayNHost está em plugins como youtube-plugin-1.18.2-playnhost1.jar, a fonte de YouTube do próprio Lavalink está desligada, o login está ativado e o plugin usa um servidor de cipher que mantemos na nossa própria rede. As correções são as mudanças no cliente TV, no cipher e na duração dos streams que os desenvolvedores do plugin incorporaram em agosto e setembro de 2026, mas ainda não lançaram. Você faz uma coisa só: o login.

  1. Abra seu servidor no painel e clique em Iniciar no Console.
  2. Encontre a linha OAUTH INTEGRATION: To give youtube-source access to your account, go to https://www.google.com/device and enter code XXXX-XXXX, abra o endereço, digite o código e permita o acesso com uma conta Google reserva.
  3. Quando o console mostrar Token retrieved successfully, copie o token de dentro dos colchetes, pare o node e adicione-o em oauth: no application.yml, em Files, como no passo 5 acima. Mantenha a indentação.
  4. Inicie o node de novo e confira se aparece YouTube access token refreshed successfully.

Deixe plugins.youtube.remoteCipher.url como está: o painel o escreve a cada inicialização, e o endereço só funciona a partir dos nossos servidores. Uma reinstalação mantém o seu application.yml, com o token dentro.

Se o YouTube entrega ou não uma música a um servidor é decisão do YouTube, e muda sem aviso. Nós mantemos o node e o plugin funcionando; não podemos prometer o que o YouTube permite. Se você não quer o YouTube de jeito nenhum, coloque enabled: false em plugins:, youtube:.

Mensagens do YouTube no console

MensagemO que significa e o que fazer
OAUTH INTEGRATION: To give youtube-source access to your account, go to https://www.google.com/device and enter code ...O plugin espera o login. Siga os passos acima.
OAUTH INTEGRATION: The device token has expired. OAuth integration has been canceled.O código não foi digitado a tempo. Reinicie o node para receber um novo.
YouTube access token refreshed successfullyO refresh token salvo funciona.
Refreshing YouTube access token failedO token não funciona mais, muitas vezes porque a conta foi desconectada ou o token foi copiado errado. Remova refreshToken, reinicie e faça o login de novo.
This video requires login. ou Sign in to confirm you’re not a bot depois de Client [...] failed:O YouTube se recusa a atender o servidor sem login. Faça o login do plugin ou confira se o token salvo ainda funciona.
All clients failed to load the item.Todos os clientes da sua lista foram recusados. As linhas Client [...] failed: ao lado dela dão o motivo de cada um.
The page needs to be reloaded do cliente TVHTML5O problema do cliente TV da versão 1.18.2 descrito acima.

Outras formas de ter música sem o YouTube

O mesmo node pode tocar de fontes que não precisam de login. Nos nossos planos, Bandcamp, Twitch, Vimeo, Niconico e links http diretos vêm ligados desde o início. Plugins como o LavaSrc adicionam mais sites, alguns dos quais precisam das suas próprias chaves de API: Como adicionar plugins ao Lavalink.

Em seguida

Seu bot já está em outro lugar? Traga-o para nós

NOSSOS ÚLTIMOS ARTIGOS