Как сделать музыкального бота для Discord
На этой странице
Музыкальный бот — это бот Discord, который заходит в голосовой канал и проигрывает звук. Сама часть бота — команды, очередь, сообщение о текущем треке — обычный код. Сложность в звуке: получить треки, закодировать их и передать в голосовой канал без заиканий.
В этом руководстве — два способа работы со звуком, какие библиотеки ещё работают после изменений голоса Discord в 2026 году и что музыкальному боту можно и нельзя проигрывать. Если вы ещё не делали ботов, начните с руководства как сделать бота для Discord.
Сначала: шифрованный голос Discord (DAVE)
С 1 марта 2026 года Discord разрешает только голосовые звонки со сквозным шифрованием по протоколу DAVE. Бот на библиотеке без его поддержки больше вообще не может заходить в голосовые каналы. Поэтому многие старые руководства и репозитории музыкальных ботов перестали работать.
Прежде чем начать, убедитесь, что ваш стек достаточно свежий:
| Библиотека | Поддержка DAVE с версии |
|---|---|
| discord.py | 2.7.0, установка как discord.py[voice] |
| @discordjs/voice | 0.19, требует Node.js 22.12 или новее |
| Сервер Lavalink | 4.2.0 |
| discord-player | 7.2.0 |
Два способа воспроизводить звук: Lavalink или FFmpeg
| Lavalink | FFmpeg в боте | |
|---|---|---|
| Как работает | Отдельный аудиосервер передаёт музыку, бот отправляет ему команды | Бот сам декодирует и передаёт звук через FFmpeg |
| Что нужно боту | Клиентская библиотека Lavalink | FFmpeg и Opus, установленные рядом с ботом |
| Масштаб | Много серверов одновременно; один Lavalink может обслуживать несколько ботов | Несколько серверов, пока CPU бота не станет пределом |
| Подходит для | Любого бота, который должен расти | Обучения или бота для одного сервера |
Большинство публичных музыкальных ботов используют Lavalink. С FFmpeg проще начать, потому что запускать нужно только одну программу.
Поддерживаемые клиентские библиотеки Lavalink
Эти клиенты есть в официальном списке Lavalink и выпускали обновления в 2026 году с учётом изменений голоса выше:
- JavaScript (discord.js): lavalink-client, Shoukaku, Riffy, Moonlink.js
- Python (discord.py): Wavelink, lavalink.py, mafic, pomice
- C#: Lavalink4NET
- Java (JDA): Lavalink-Client
Каждый подключается к серверу Lavalink по адресу, порту и паролю и даёт боту команды вроде поиска, воспроизведения, пропуска и громкости. Настройка самого сервера описана в руководстве как разместить сервер Lavalink.
В JavaScript есть также discord-player, который обрабатывает звук внутри бота. Его текущая версия больше не поддерживает YouTube; он проигрывает SoundCloud, Vimeo, вложения и ссылки Spotify или Apple Music через другие источники.
Способ с FFmpeg в нескольких строках
Чтобы увидеть работу голоса, проиграйте файл, который принадлежит вам. В Python установите голосовое дополнение и убедитесь, что ffmpeg есть в системе:
pip install "discord.py[voice]"
Затем внутри слэш-команды зайдите в канал вызвавшего пользователя и проиграйте локальный файл:
channel = interaction.user.voice.channel
voice = await channel.connect()
voice.play(discord.FFmpegPCMAudio("song.mp3"))
await interaction.response.send_message("Playing.")
В JavaScript аналог — @discordjs/voice с @discordjs/opus и FFmpeg. Настоящий бот добавляет очередь, команды пропуска и остановки и выходит из канала, когда тот пустеет.
Что может проигрывать музыкальный бот
Именно здесь у большинства музыкальных ботов начинаются проблемы, поэтому разберитесь в этом до начала работы:
- Условия YouTube не разрешают скачивать или ретранслировать его контент без разрешения, а также обходить его защиту. Крупные музыкальные боты закрывались именно из-за этого.
- Правила сообщества Discord запрещают распространять контент, нарушающий чью-либо интеллектуальную собственность, и за действия бота отвечает его владелец.
- Более безопасные источники: музыка, которая принадлежит вам или на которую у вас есть лицензия, библиотеки royalty-free и Creative Commons, интернет-радио, которое это разрешает, и файлы, загруженные участниками, у которых есть право ими делиться.
Lavalink и его плагины технически могут проигрывать с многих сайтов; разрешено ли вам это — отдельный вопрос, и отвечать на него вам.
Хостинг музыкального бота
Музыкальный бот должен оставаться онлайн и держать стабильное соединение во время трансляции, а домашний ПК на Wi-Fi редко справляется с этим долго. На хостинге Discord-ботов HytHost:
- Бот работает на среде Node.js, Python, Java, Go, C# или Bun, выбранной при заказе.
- Lavalink — отдельная среда. Он работает как отдельный сервер: закажите один тариф для бота и один со средой Lavalink, или на тарифе с несколькими слотами для ботов попросите нас перевести один из них на Lavalink.
- Укажите клиенту Lavalink в боте адрес, порт и пароль сервера Lavalink, как они показаны в его панели.
Как держать самого бота онлайн, с автоперезапуском и токеном в надёжном месте, описано в руководстве как держать бота Discord онлайн 24/7.
Запускайте бота и его сервер Lavalink на хостинге Discord-ботов HytHost — Node.js, Python, Java, Lavalink и другие, от €0.89/мес.
Тарифы хостинга ботовЧастые вопросы
Скорее всего, из-за шифрованного голоса Discord. С 1 марта 2026 года заходить в голосовые звонки могут только клиенты с поддержкой протокола DAVE. Обновитесь до discord.py 2.7, @discordjs/voice 0.19 или Lavalink 4.2 и новее, а также до актуального клиента Lavalink.
Нет. Небольшой бот может передавать звук напрямую через FFmpeg. Lavalink оправдан, когда бот играет на нескольких серверах одновременно, потому что снимает с бота работу со звуком.
Технически некоторые инструменты ещё могут, но условия YouTube не разрешают скачивать или ретранслировать его контент без разрешения, а инструменты часто ломаются. Надёжный выбор — музыка, которая принадлежит вам или на которую есть лицензия.
С discord.js — клиент Lavalink, например lavalink-client или Shoukaku; с discord.py — Wavelink или lavalink.py. Выбирайте библиотеку с релизом 2026 года, чтобы она поддерживала шифрованный голос Discord.
Сам бот лёгкий; ресурсы уходят на звук. С Lavalink выделите серверу Lavalink около 1 GB для небольшого бота (наша рекомендация), а боту — столько, сколько ему нужно без музыки.
Запустите своего музыкального бота
Хостинг Discord-ботов HytHost запускает вашего бота и сервер Lavalink, с базой данных MySQL и резервными копиями — от €0.89/мес.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursЭтот гайд был полезен?