Så gör du en musikbot för Discord
På den här sidan
En musikbot är en Discord-bot som ansluter till en röstkanal och spelar upp ljud. Själva botten — kommandon, en kö, ett meddelande om vad som spelas just nu — är vanlig botkod. Det svåra är ljudet: att hämta låtar, koda dem och strömma dem till röstkanalen utan hack.
Den här guiden förklarar de två sätten att hantera ljudet, vilka bibliotek som fortfarande fungerar efter Discords röständringar 2026 och vad en musikbot får och inte får spela. Har du aldrig gjort en bot, börja med så gör du en Discord-bot.
Först: Discords krypterade röst (DAVE)
Sedan 1 mars 2026 tillåter Discord bara end-to-end-krypterade röstsamtal via ett protokoll som heter DAVE. En bot byggd på ett bibliotek som inte stöder det kan inte längre ansluta till röstkanaler alls. Därför slutade många äldre guider och repon för musikbottar att fungera.
Innan du börjar, se till att dina verktyg är tillräckligt nya:
| Bibliotek | Stöd för DAVE från |
|---|---|
| discord.py | 2.7.0, installerat som discord.py[voice] |
| @discordjs/voice | 0.19, som kräver Node.js 22.12 eller nyare |
| Lavalink-server | 4.2.0 |
| discord-player | 7.2.0 |
Två sätt att spela ljud: Lavalink eller FFmpeg
| Lavalink | FFmpeg i botten | |
|---|---|---|
| Så fungerar det | En separat ljudserver strömmar musiken; botten skickar kommandon till den | Botten avkodar och strömmar själv ljudet med FFmpeg |
| Botten behöver | Ett klientbibliotek för Lavalink | FFmpeg och Opus installerade bredvid botten |
| Skalar till | Många servrar samtidigt; en Lavalink kan försörja flera bottar | Några få servrar innan bottens CPU blir gränsen |
| Passar för | Alla bottar du räknar med ska växa | Att lära sig, eller en bot för en enda server |
De flesta publika musikbottar använder Lavalink. FFmpeg är enklare att börja med eftersom det bara finns ett program att köra.
Klientbibliotek för Lavalink som underhålls
De här klienterna finns på Lavalinks officiella lista och har släppt versioner under 2026 med röständringarna ovan:
- JavaScript (discord.js): lavalink-client, Shoukaku, Riffy, Moonlink.js
- Python (discord.py): Wavelink, lavalink.py, mafic, pomice
- C#: Lavalink4NET
- Java (JDA): Lavalink-Client
Var och en ansluter till en Lavalink-server med värd, port och lösenord och ger sedan din bot kommandon som sök, spela, hoppa över och volym. Att sätta upp själva servern tas upp i så hostar du en Lavalink-server.
I JavaScript finns också discord-player, som hanterar ljudet inne i botten. Den nuvarande versionen stöder inte längre YouTube; den spelar SoundCloud, Vimeo, bifogade filer och länkar från Spotify eller Apple Music via andra källor.
FFmpeg-sättet på några rader
För att se rösten fungera, spela en fil som du äger. I Python installerar du voice-tillägget och ser till att ffmpeg finns på ditt system:
pip install "discord.py[voice]"
Sedan, inuti ett slash-kommando, ansluter du till användarens kanal och spelar en lokal fil:
channel = interaction.user.voice.channel
voice = await channel.connect()
voice.play(discord.FFmpegPCMAudio("song.mp3"))
await interaction.response.send_message("Playing.")
I JavaScript är motsvarigheten @discordjs/voice med @discordjs/opus och FFmpeg. En riktig bot lägger till en kö, kommandon för att hoppa över och stoppa och lämnar kanalen när den är tom.
Vad en musikbot får spela
Det är här de flesta musikbottar hamnar i problem, så var tydlig med det innan du bygger:
- YouTubes villkor tillåter inte att innehållet laddas ner eller sänds vidare utan tillstånd, eller att deras skydd kringgås. Stora musikbottar har stängts ner just på grund av detta.
- Discords communityriktlinjer förbjuder delning av innehåll som gör intrång i någons immateriella rättigheter, och botens ägare ansvarar för vad den gör.
- Säkrare källor: musik du äger eller har licens för, royaltyfria bibliotek och Creative Commons-bibliotek, internetradio som tillåter det och filer som dina medlemmar laddar upp med rätt att dela dem.
Lavalink och dess plugins kan tekniskt sett spela från många sajter; om du får göra det är en separat fråga, och den är din att besvara.
Hosting av en musikbot
En musikbot måste vara online och hålla en stabil anslutning medan den strömmar, något en hemdator på Wi-Fi sällan klarar länge. På HytHost Discord-bot-hosting:
- Botten körs på den Node.js-, Python-, Java-, Go-, C#- eller Bun-runtime du väljer vid beställning.
- Lavalink är en egen runtime. Den körs som en separat server: beställ en plan för botten och en med Lavalink-runtime, eller be oss på en plan med flera bot-platser att flytta en av dem till Lavalink.
- Peka bottens Lavalink-klient mot Lavalink-serverns adress, port och lösenord, som de visas i dess panel.
Hur du håller själva botten online, med automatisk omstart och token på ett säkert ställe, tas upp i så hostar du en Discord-bot 24/7.
Kör botten och dess Lavalink-server på HytHost Discord-bot-hosting — Node.js, Python, Java, Lavalink med mera, från €0.89/mån.
Se planer för bot-hostingVanliga frågor
Troligen på grund av Discords krypterade röst. Sedan 1 mars 2026 kan bara klienter som stöder DAVE-protokollet ansluta till röstsamtal. Uppdatera till discord.py 2.7, @discordjs/voice 0.19 eller Lavalink 4.2 eller nyare, och till en aktuell Lavalink-klient.
Nej. En liten bot kan strömma direkt med FFmpeg. Lavalink lönar sig när botten spelar på flera servrar samtidigt, eftersom den tar över ljudarbetet från botten.
Tekniskt sett kan vissa verktyg fortfarande det, men YouTubes villkor tillåter inte att innehållet laddas ner eller sänds vidare utan tillstånd, och verktygen går ofta sönder. Musik du äger eller har licens för är det säkra valet.
Med discord.js en Lavalink-klient som lavalink-client eller Shoukaku; med discord.py Wavelink eller lavalink.py. Välj ett med en release från 2026, så att det stöder Discords krypterade röst.
Själva botten är lätt; det är ljudarbetet som kostar. Med Lavalink ger du Lavalink-servern ungefär 1 GB för en liten bot (vår rekommendation) och botten det den behöver utan musik.
Få din musikbot online
HytHost Discord-bot-hosting kör din bot och din Lavalink-server, med en MySQL-databas och backuper — från €0.89/mån.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursVar den här guiden till hjälp?