Sådan laver du en Discord-musikbot
På denne side
En musikbot er en Discord-bot, der går ind i en talekanal og afspiller lyd. Selve botten — kommandoer, en kø, en besked om hvad der spiller nu — er almindelig botkode. Det svære er lyden: at hente numre, kode dem og streame dem ind i talekanalen uden hakken.
Denne guide forklarer de to måder at håndtere lyden på, hvilke biblioteker der stadig virker efter Discords stemmeændringer i 2026, og hvad en musikbot må og ikke må afspille. Har du aldrig lavet en bot, så start med sådan laver du en Discord-bot.
Først: Discords krypterede stemme (DAVE)
Siden 1. marts 2026 tillader Discord kun end-to-end-krypterede taleopkald via en protokol kaldet DAVE. En bot bygget på et bibliotek, der ikke understøtter den, kan slet ikke længere komme ind i talekanaler. Derfor holdt mange ældre vejledninger og repositories til musikbotter op med at virke.
Før du går i gang, så sørg for, at dine værktøjer er nye nok:
| Bibliotek | DAVE-understøttelse fra |
|---|---|
| discord.py | 2.7.0, installeret som discord.py[voice] |
| @discordjs/voice | 0.19, som kræver Node.js 22.12 eller nyere |
| Lavalink-server | 4.2.0 |
| discord-player | 7.2.0 |
To måder at afspille lyd på: Lavalink eller FFmpeg
| Lavalink | FFmpeg i botten | |
|---|---|---|
| Sådan virker det | En separat lydserver streamer musikken; botten sender den kommandoer | Botten afkoder og streamer selv lyden med FFmpeg |
| Botten skal bruge | Et Lavalink-klientbibliotek | FFmpeg og Opus installeret ved siden af botten |
| Skalerer til | Mange servere på én gang; én Lavalink kan forsyne flere botter | Nogle få servere, før bottens CPU bliver grænsen |
| God til | Enhver bot, du forventer vil vokse | At lære, eller en bot til én server |
De fleste offentlige musikbotter bruger Lavalink. FFmpeg er nemmere at starte med, fordi der kun er ét program at køre.
Lavalink-klientbiblioteker, der vedligeholdes
Disse klienter står på Lavalinks officielle liste og har haft udgivelser i 2026 med stemmeændringerne ovenfor:
- JavaScript (discord.js): lavalink-client, Shoukaku, Riffy, Moonlink.js
- Python (discord.py): Wavelink, lavalink.py, mafic, pomice
- C#: Lavalink4NET
- Java (JDA): Lavalink-Client
Hver af dem forbinder til en Lavalink-server med en vært, en port og en adgangskode og giver derefter din bot kommandoer som søg, afspil, spring over og lydstyrke. Opsætningen af selve serveren gennemgås i sådan hoster du en Lavalink-server.
I JavaScript findes også discord-player, som håndterer lyden inde i botten. Den nuværende version understøtter ikke længere YouTube; den afspiller SoundCloud, Vimeo, vedhæftede filer og links fra Spotify eller Apple Music via andre kilder.
FFmpeg-metoden på få linjer
For at se stemmen virke skal du afspille en fil, du ejer. I Python installerer du voice-tilføjelsen og sikrer dig, at ffmpeg findes på dit system:
pip install "discord.py[voice]"
Derefter, inde i en slash-kommando, går du ind i brugerens kanal og afspiller 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 er det tilsvarende @discordjs/voice med @discordjs/opus og FFmpeg. En rigtig bot tilføjer en kø, kommandoer til at springe over og stoppe og forlader kanalen, når den er tom.
Hvad en musikbot må afspille
Det er her, de fleste musikbotter kommer i problemer, så vær helt klar over det, før du bygger:
- YouTubes vilkår tillader ikke, at indholdet downloades eller genudsendes uden tilladelse, eller at man omgår deres beskyttelse. Store musikbotter er blevet lukket netop af den grund.
- Discords retningslinjer for fællesskabet forbyder deling af indhold, der krænker nogens immaterielle rettigheder, og bottens ejer er ansvarlig for, hvad den gør.
- Sikrere kilder: musik, du ejer eller har licens til, royaltyfrie biblioteker og Creative Commons-biblioteker, internetradio, der tillader det, og filer, dine medlemmer uploader med ret til at dele dem.
Lavalink og dets plugins kan teknisk set afspille fra mange sider; om du må, er et separat spørgsmål, og det er dit at besvare.
Hosting af en musikbot
En musikbot skal forblive online og holde en stabil forbindelse, mens den streamer, og det klarer en hjemme-pc på Wi-Fi sjældent i længden. På HytHost Discord-bot-hosting:
- Botten kører på den Node.js-, Python-, Java-, Go-, C#- eller Bun-runtime, du vælger ved bestilling.
- Lavalink er en runtime for sig. Den kører som en separat server: bestil én plan til botten og én med Lavalink-runtimen, eller bed os på en plan med flere bot-pladser om at flytte en af dem til Lavalink.
- Peg bottens Lavalink-klient mod Lavalink-serverens adresse, port og adgangskode, som vist i dens panel.
Hvordan du holder selve botten online med automatisk genstart og tokenet et sikkert sted, gennemgås i sådan hoster du en Discord-bot 24/7.
Kør botten og dens Lavalink-server på HytHost Discord-bot-hosting — Node.js, Python, Java, Lavalink og mere, fra €0.89/md.
Se planer for bot-hostingOfte stillede spørgsmål
Sandsynligvis på grund af Discords krypterede stemme. Siden 1. marts 2026 kan kun klienter, der understøtter DAVE-protokollen, deltage i taleopkald. Opdater til discord.py 2.7, @discordjs/voice 0.19 eller Lavalink 4.2 eller nyere og til en aktuel Lavalink-klient.
Nej. En lille bot kan streame direkte med FFmpeg. Lavalink kan betale sig, når botten spiller på flere servere på én gang, fordi den tager lydarbejdet væk fra botten.
Teknisk set kan nogle værktøjer stadig, men YouTubes vilkår tillader ikke, at indholdet downloades eller genudsendes uden tilladelse, og værktøjerne går ofte i stykker. Musik, du ejer eller har licens til, er det sikre valg.
Med discord.js en Lavalink-klient som lavalink-client eller Shoukaku; med discord.py Wavelink eller lavalink.py. Vælg et med en udgivelse fra 2026, så det understøtter Discords krypterede stemme.
Selve botten er let; det er lydarbejdet, der koster. Med Lavalink giver du Lavalink-serveren omkring 1 GB til en lille bot (vores anbefaling) og botten det, den skal bruge uden musik.
Få din musikbot online
HytHost Discord-bot-hosting kører din bot og din Lavalink-server med en MySQL-database og backups — fra €0.89/md.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursVar denne guide en hjælp?