Як створити музичного бота для 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Цей гайд був корисним?