Jak vytvořit hudebního bota pro Discord
Na této stránce
Hudební bot je Discord bot, který se připojí do hlasového kanálu a přehrává zvuk. Samotný bot — příkazy, fronta, zpráva o právě hrající skladbě — je běžný kód. Těžší je zvuk: získat skladby, zakódovat je a streamovat do hlasového kanálu bez zasekávání.
Tento návod vysvětluje dva způsoby, jak zvuk zpracovat, které knihovny fungují i po změnách hlasu na Discordu v roce 2026 a co hudební bot smí a nesmí přehrávat. Pokud jste ještě žádného bota nevytvořili, začněte návodem jak vytvořit Discord bota.
Nejdřív: šifrovaný hlas na Discordu (DAVE)
Od 1. března 2026 Discord povoluje pouze hlasové hovory s koncovým šifrováním přes protokol DAVE. Bot postavený na knihovně, která ho nepodporuje, se do hlasových kanálů vůbec nepřipojí. Proto přestalo fungovat mnoho starších návodů a repozitářů s hudebními boty.
Než začnete, ověřte, že máte dostatečně nové verze:
| Knihovna | Podpora DAVE od |
|---|---|
| discord.py | 2.7.0, instalováno jako discord.py[voice] |
| @discordjs/voice | 0.19, vyžaduje Node.js 22.12 nebo novější |
| Lavalink server | 4.2.0 |
| discord-player | 7.2.0 |
Dva způsoby přehrávání zvuku: Lavalink nebo FFmpeg
| Lavalink | FFmpeg v botovi | |
|---|---|---|
| Jak to funguje | Hudbu streamuje samostatný audio server; bot mu posílá příkazy | Bot sám dekóduje a streamuje zvuk pomocí FFmpeg |
| Bot potřebuje | Klientskou knihovnu pro Lavalink | FFmpeg a Opus nainstalované vedle bota |
| Škáluje na | Mnoho serverů najednou; jeden Lavalink může obsluhovat více botů | Několik serverů, než se limitem stane CPU bota |
| Vhodné pro | Každého bota, u kterého čekáte růst | Učení nebo bota pro jeden server |
Většina veřejných hudebních botů používá Lavalink. S FFmpeg se začíná snáz, protože běží jen jeden program.
Udržované klientské knihovny pro Lavalink
Tito klienti jsou na oficiálním seznamu Lavalinku a v roce 2026 vydali verze se zmíněnými změnami hlasu:
- JavaScript (discord.js): lavalink-client, Shoukaku, Riffy, Moonlink.js
- Python (discord.py): Wavelink, lavalink.py, mafic, pomice
- C#: Lavalink4NET
- Java (JDA): Lavalink-Client
Každý z nich se připojí k serveru Lavalink pomocí hostitele, portu a hesla a dá vašemu botovi příkazy jako vyhledat, přehrát, přeskočit a hlasitost. Nastavení samotného serveru popisuje návod jak hostovat server Lavalink.
V JavaScriptu existuje také discord-player, který zpracovává zvuk přímo v botovi. Jeho aktuální verze už YouTube nepodporuje; přehrává SoundCloud, Vimeo, přílohy a odkazy ze Spotify či Apple Music přes jiné zdroje.
Cesta přes FFmpeg v pár řádcích
Pro ověření, že hlas funguje, přehrajte soubor, který vlastníte. V Pythonu nainstalujte doplněk pro hlas a ujistěte se, že máte v systému ffmpeg:
pip install "discord.py[voice]"
Pak se v rámci slash příkazu připojte do kanálu volajícího a přehrajte místní soubor:
channel = interaction.user.voice.channel
voice = await channel.connect()
voice.play(discord.FFmpegPCMAudio("song.mp3"))
await interaction.response.send_message("Playing.")
V JavaScriptu je ekvivalentem @discordjs/voice s @discordjs/opus a FFmpeg. Skutečný bot přidá frontu, příkazy pro přeskočení a zastavení a opustí kanál, když je prázdný.
Co smí hudební bot přehrávat
Tady se většina hudebních botů dostává do potíží, takže si to vyjasněte dřív, než začnete:
- Podmínky YouTube nepovolují stahování ani další vysílání jeho obsahu bez svolení ani obcházení jeho ochran. Velcí hudební boti byli ukončeni právě kvůli tomu.
- Zásady komunity Discordu zakazují sdílet obsah, který porušuje duševní vlastnictví kohokoli, a za to, co bot dělá, odpovídá jeho vlastník.
- Bezpečnější zdroje: hudba, kterou vlastníte nebo k ní máte licenci, knihovny bez licenčních poplatků a s licencí Creative Commons, internetová rádia, která to povolují, a soubory, které členové nahrají s právem je sdílet.
Lavalink a jeho pluginy technicky umí přehrávat z mnoha webů; zda to smíte, je samostatná otázka a odpověď na ni je na vás.
Hosting hudebního bota
Hudební bot musí zůstat online a během streamování držet stabilní spojení, což domácí PC na Wi-Fi dlouho nezvládne. Na Discord bot hostingu HytHost:
- Bot běží na runtime Node.js, Python, Java, Go, C# nebo Bun, který zvolíte při objednávce.
- Lavalink je samostatný runtime. Běží jako oddělený server: objednejte jeden tarif pro bota a jeden s runtime Lavalink, nebo nás u tarifu s více sloty pro boty požádejte o přesunutí jednoho z nich na Lavalink.
- Nasměrujte Lavalink klienta bota na adresu, port a heslo serveru Lavalink, jak je uvádí jeho panel.
Jak udržet samotného bota online, s automatickým restartem a tokenem na bezpečném místě, popisuje návod jak hostovat Discord bota 24/7.
Provozujte bota i jeho server Lavalink na Discord bot hostingu HytHost — Node.js, Python, Java, Lavalink a další, od €0.89/měs.
Zobrazit tarify bot hostinguČasto kladené otázky
Nejspíš kvůli šifrovanému hlasu na Discordu. Od 1. března 2026 se do hlasových hovorů mohou připojit jen klienti s podporou protokolu DAVE. Aktualizujte na discord.py 2.7, @discordjs/voice 0.19 nebo Lavalink 4.2 či novější a na aktuálního klienta pro Lavalink.
Ne. Malý bot může streamovat přímo přes FFmpeg. Lavalink se vyplatí, jakmile bot hraje na několika serverech najednou, protože z bota sejme práci se zvukem.
Technicky to některé nástroje stále umí, ale podmínky YouTube nepovolují stahování ani další vysílání jeho obsahu bez svolení a nástroje se často rozbíjejí. Bezpečnou volbou je hudba, kterou vlastníte nebo k ní máte licenci.
S discord.js klient pro Lavalink jako lavalink-client nebo Shoukaku; s discord.py Wavelink nebo lavalink.py. Vyberte takový, který měl vydání v roce 2026, aby podporoval šifrovaný hlas Discordu.
Samotný bot je nenáročný; náklady jsou ve zpracování zvuku. S Lavalinkem dejte serveru Lavalink pro malého bota asi 1 GB (naše doporučení) a botovi tolik, kolik potřebuje bez hudby.
Dostaňte svého hudebního bota online
Discord bot hosting HytHost provozuje vašeho bota i server Lavalink, s databází MySQL a zálohami — od €0.89/měs.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursByl tento návod užitečný?