Lavalink 4 воспроизводит YouTube через плагин, а не сам: его встроенный источник YouTube устарел и должен оставаться выключенным. Установите плагин источника YouTube (dev.lavalink.youtube:youtube-plugin), задайте youtube: false в lavalink.server.sources и включите плагин в plugins.youtube. На наших серверах этого оказалось мало: YouTube потребовал вход. Поэтому один раз выполните вход плагина в запасной аккаунт Google и сохраните refresh token. С релизом 1.18.2 одного входа тоже недостаточно (см. «Версия 1.18.2 и вход» ниже). На одном из наших собственных серверов Lavalink 6 ноября 2026 года, с версией 1.18.2, ещё не выпущенными исправлениями и cipher-сервером, плагин нашёл все 12 тестовых песен, но до входа не смог запустить ни одну, а после входа запустил каждый из 10 завершённых тестов (по 15 секунд, без голосового канала).
Почему YouTube не работает на сервере Lavalink
В документации плагина сказано, что YouTube помечает некоторые запросы и просит «войти, чтобы подтвердить, что вы не бот». Именно это мы увидели на своих серверах. Без входа плагин находил каждую тестовую песню поиском и по ссылке, но затем каждый из его клиентов получал отказ при попытке её воспроизвести:
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.
В нашем тесте поиск работал без входа, а воспроизведение нет. Ваш бот видит, что песня запустилась и сразу завершилась с ошибкой трека (track exception).
Ещё две вещи время от времени ломают воспроизведение, и документация плагина описывает обе:
- Шифр подписи. YouTube часто меняет код, который открывает его потоки. Плагин может передать эту работу удалённому cipher-серверу (
remoteCipher), например проекту с открытым кодом yt-cipher. - Клиенты. Плагин обращается к YouTube как несколько приложений (
WEB,MWEB,ANDROID_VR,TVи другие) и пробует их в том порядке, в каком вы их перечислили. Вход при воспроизведении использует толькоTV, а искать могут только клиенты, помеченные для этого.
Версия 1.18.2 и вход
Вход использует клиент TV, а у TV-клиента в релизе 1.18.2 есть известная проблема: с августа 2026 года YouTube отвечает ему «The page needs to be reloaded» (задача №226 в репозитории плагина на GitHub, 6 ноября 2026 года всё ещё открыта). Разработчики плагина включили исправление 19 августа 2026 года, в тот же день исправление для потоков без длины, а 17 сентября 2026 года исправление соединений с cipher, но к 6 ноября 2026 года релиз с ними так и не вышел. В README плагина объясняется, как вместо релиза загрузить сборку конкретного коммита: хеш коммита в качестве версии, с snapshot: true. Сначала загляните на страницу релизов: там может быть версия новее.
Настройка плагина на вашем собственном Lavalink
- Добавьте плагин в
application.ymlвlavalink.plugins, указав версию из релизов плагина на GitHub. 1.18.2 (27 июля 2026 года) на 6 ноября 2026 года самый новый релиз. У него есть описанная выше проблема TV-клиента, поэтому прочитайте тот раздел, прежде чем выбирать версию:
lavalink:
plugins:
- dependency: "dev.lavalink.youtube:youtube-plugin:1.18.2"
snapshot: false
server:
sources:
youtube: false
- Включите плагин и задайте ему клиентов:
plugins:
youtube:
enabled: true
allowSearch: true
clients:
- MUSIC
- ANDROID_VR
- WEB
- WEBEMBEDDED
- TV
oauth:
enabled: true
- При желании добавьте cipher-сервер в
plugins.youtube.remoteCipher(urlиpassword), как описано в README плагина. - Запустите Lavalink. Консоль выведет код и адрес: откройте
https://www.google.com/device, введите код и разрешите доступ запасным аккаунтом Google. Авторы плагина предупреждают, что аккаунт могут заблокировать, поэтому никогда не используйте основной. - Затем консоль выведет
OAUTH INTEGRATION: Token retrieved successfully. Store your refresh token as this can be reused.с токеном в скобках. Скопируйте его вapplication.yml, чтобы узел не спрашивал снова после перезапуска:
oauth:
enabled: true
refreshToken: "PASTE_THE_TOKEN_HERE"
- Перезапустите Lavalink. При рабочем токене он пишет в лог
YouTube access token refreshed successfully.
Refresh token открывает этот аккаунт Google: храните application.yml в тайне.
На тарифе Lavalink от PlayNHost
Часть с плагином установка уже делает: плагин YouTube 1.18.2 с исправлениями PlayNHost лежит в plugins как youtube-plugin-1.18.2-playnhost1.jar, собственный источник YouTube в Lavalink выключен, вход включён, а плагин использует cipher-сервер, который мы держим в своей сети. Исправления это изменения TV-клиента, cipher и длины потоков, которые разработчики плагина включили в августе и сентябре 2026 года, но ещё не выпустили. Вам остаётся одно: вход.
- Откройте свой сервер в панели и нажмите Запустить в разделе Console.
- Найдите строку
OAUTH INTEGRATION: To give youtube-source access to your account, go to https://www.google.com/device and enter code XXXX-XXXX, откройте адрес, введите код и разрешите доступ запасным аккаунтом Google. - Когда консоль выведет
Token retrieved successfully, скопируйте токен из скобок, остановите узел и добавьте его вoauth:в файлеapplication.ymlв разделе Files, как в шаге 5 выше. Сохраняйте отступы. - Снова запустите узел и убедитесь, что появилась строка
YouTube access token refreshed successfully.
Оставьте plugins.youtube.remoteCipher.url как есть: панель записывает его при каждом запуске, а адрес работает только с наших серверов. При переустановке ваш application.yml с токеном сохраняется.
Отдаст ли YouTube серверу конкретную песню, решает YouTube, и это меняется без предупреждения. Мы следим, чтобы узел и плагин работали; обещать то, что разрешит YouTube, мы не можем. Если YouTube вам не нужен вообще, задайте enabled: false в plugins:, youtube:.
Сообщения YouTube в консоли
| Сообщение | Что оно значит и что делать |
|---|---|
OAUTH INTEGRATION: To give youtube-source access to your account, go to https://www.google.com/device and enter code ... | Плагин ждёт входа. Выполните шаги выше. |
OAUTH INTEGRATION: The device token has expired. OAuth integration has been canceled. | Код не ввели вовремя. Перезапустите узел, чтобы получить новый. |
YouTube access token refreshed successfully | Сохранённый refresh token работает. |
Refreshing YouTube access token failed | Токен больше не работает, часто потому что из аккаунта вышли или токен скопировали неверно. Удалите refreshToken, перезапустите узел и войдите снова. |
This video requires login. или Sign in to confirm you’re not a bot после Client [...] failed: | YouTube отказывается обслуживать сервер без входа. Выполните вход плагина или проверьте, что сохранённый токен ещё работает. |
All clients failed to load the item. | Все клиенты из вашего списка получили отказ. Строки Client [...] failed: рядом называют причину для каждого. |
The page needs to be reloaded от клиента TVHTML5 | Описанная выше проблема TV-клиента в релизе 1.18.2. |
Другие способы слушать музыку без YouTube
Тот же узел может играть из источников, которым вход не нужен. На наших тарифах Bandcamp, Twitch, Vimeo, Niconico и прямые ссылки http включены с самого начала. Плагины вроде LavaSrc добавляют другие сайты, часть которых требует ваших собственных ключей API: Как добавить плагины в Lavalink.
Что дальше
- Настройте узел: Как запустить сервер Lavalink 24/7.
- Подключите бота: Как подключить Discord-бота к Lavalink.
- Другие ошибки: Ошибки Lavalink и что они означают.
- Тарифы: Хостинг Lavalink.



