Spotify Discord MusicBot - Stream deine Musik von Spotify direkt auf Discord
Wer Discord aktiv benutzt und auf mehreren Servern unterwegs ist, kennt sie vielleicht, so genannte "MusicBots". Rythm oder Groovy sind die bekanntesten unter ihnen, es gibt aber noch viele weitere. All diese Bots streamen die Musik von Youtube (aus Videos) und auch wenn man Links zu Spotify Playlists einfügen kann, werden die Songs dann auf Youtube gesucht und abgespielt. Teilweise gehen die Bots auch einfach mal nicht, wenn die Anzahl an Streams auf Youtube per API des Bots überschritten ist. Dabei muss der Umweg über Youtube garnicht sein: Aoede ist ein selbst gehosteter Bot mit dem ihr Spotify Sogs direkt in Discord streamen könnt.
Vorteile
Das hat gleich mehrere Vorteile: Zuerst einmal ist der ganze Command-Spam in den Sprachkanälen überflüssig - Sobald ihr den Bot über eure Spotify App auswählt, springt er automatisch in den Gleichen Sprachkanal in dem Ihr seid und fängt an Musik zu spielen. Auch gibt es keine Unterbrechungen, Pausen, oder Dialoge mehr in der Musik - die Songs kommen nicht mehr aus Youtube Musikvideos, der Bot streamt direkt von Spotify. Zudem ist die Auswahl von Songs für dich einfacher - sie erfolgt direkt in der Spotify App (so als wärest du mit einem Bluetooth Lautsprecher verbunden).
Nachteile
Nachteile hat das Prinzip trotzdem: Zum einen Muss der Bot irgendwo gehosted werden. Außerdem können andere im Sprachkanal nicht mehr mit steuern, Befehle gibt es nicht. Die Kontrolle über den Bot liegt einzig an dir.
Installation
Kling immer noch gut? Cool. Dann müsst ihr den Bot nur noch irgendwo installieren. Die beste Methode dazu ist den Bot im Docker laufen zu lassen. Docker könnt ihr auf jedem x-beliebigen Linux Server ausführen aber auch auf eurem PC laufen lassen. Wir empfehlen euch hier zum Beispiel den 1€ VPS Server von Ionos.de - er reicht für unser kleines Projekt völlig aus, und neben dem Musik Bot könnt ihr noch andere Anwendungen, wie ein Passwort Manager, eine Website oder ein RSS Telegram Bot hosten (ich weiß, sehr spezifische Beispiele :). Wir empfehlen euch neben Docker auch noch Portainer zu installieren, eine grafische Oberfläche für Docker (die alles viel viel einfacher macht). Wir werden beides hier kurz installieren, wenn ihr es schon installiert habt, könnt ihr diesen Schritt überspringen.
Falls ihr euch den kleinen Projektserver (oder auch jeden Server) gemietet habt, installiert einfach Ubuntu 20.04 oder eine andere neue Ubuntu Version, dann könnt ihr diesem Tutorial einfach folgen.
Um die Befehle auszuführen müsst ihr euch per ssh mit eurem Server verbinden und mit dem root Account anmelden. Ein Tutorial wie das klappt, findet ihr hier.
1. Docker
Docker könnt ihr sehr einfach mit einem Befehl installieren. Dazu müsst ihr erstmal das Docker Repository hinzufügen. Wenn Ihr den 1€ Server bei ionos.de gemietet habt, könnt Ihr dort bei einer Server Neuinstallation einfach auf Docker klicken, dann wird Docker automatisch für euch installiert. Andernfalls müsst ihr manuell folgende Befehle ausführen (für Ubuntu).
Für andere Linux Versionen könnt ihr hier nachsehen: Install Docker Engine | Docker Documentation. Für Windows könnt ihr einfach eine App herunterladen.
Ubuntu Installation:
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Dann könnt ihr Docker mit einem einzigen Befehl installieren:
sudo apt-get install docker-ce docker-ce-cli containerd.io
2. Portainer
Portainer (die Grafische Oberfläche, mit der Ihr Docker einfach verwalten könnt, ohne jemals Befehle eingeben zu müssen), könnt ihr dafür sehr leicht, mit 2 Befehlen installieren. Erst erstellen wir ein Volumen (ein Speicherort für Docker), damit die Daten nach einem Neustart erhalten bleiben:
docker volume create portainer_data
Als nächstes installieren wir Portainer und binden es mit dem Volumen:
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
Falls Ihr Docker auf eurem PC laufen lasst und nicht auf einem Linux Server, müsst ihr Portainer anders installieren. Den Befehl dazu findet ihr hier: Docker - Documentation (portainer.io). Scrollt auf der Seite einfach runter, und wählt "Docker on Windows WSL / Docker on Desktop" aus.
Nach der Installation könnt ihr Portainer auf eurer IP Adresse und dem Port 9000 öffnen (z.B. 192.168.178.106:9000) in den Browser eingeben. Klickt hier einfach auf "Lokalen Docker verbinden" und erstellt die Anmeldedaten.
Wenn Ihr ein VPS gemietet habt, müsst ihr da natürlich die IP Adresse von dem VPS nehmen.
3. Spotify MusicBot
Nun könnt ihr endlich den Music Bot installieren. Durch die vorherige Installation von Portainer ist das glücklicherweise sehr leicht. Öffnet Portainer (eure Ip Adresse:9000 im Browser, seht oben) und klickt auf der linken Seite auf "Stacks" und dann auf "Add Stack". Hier könnt Ihr den Container benennen, der Name dient nur zu eurer Übersicht und hat keine Relevanz. Weitere Einstellungen müsst ihr nicht ändern, ihr müsst einzig und alleine folgenden Code in das große Textfeld kopieren:
version: '3.4'
services:
aoede:
image: codetheweb/aoede
restart: always
volumes:
- ./aoede:/data
environment:
- DISCORD_TOKEN= # Euer Discord Bot Token (im Discord Portal anfordern)
- SPOTIFY_USERNAME= # Spotify Nutzername
- SPOTIFY_PASSWORD= # Spotify Passwort
- DISCORD_USER_ID= # Discord Benutzer ID dem der Bot in Sprachkanäle folgt
Füllt alle 4 Variablen (unter enviroment) mit euren Daten aus. Ihr braucht keine Angst zu haben eire Spotify Nutzernamen und Passwort anzugeben, der Bot ist Open-Source, eure Daten werden nicht geklaut, und der Bot funktioniert wie eine Spotify App die sich anmeldet. Entfernt die # Kommentare ganz.
Ihr könnt jetzt auf Deploy klicken. Wenn alles funktionier seht ihr nun einen Container mit eurem gewähltem Namen, der Läuft. Klickt auf das kleine Dokumenten Symbol ("Logs") rechts neben dem Namen des Containers. Dort findet ihr einen Link, mit dem Ihr den Bot zu eurem Server hinzufügen könnt.
Benutzung
Um den Bot zu benutzen müsst ihr in einen Sprachkanal auf Discord gehen, in den der Bot auch kommen kann. Sobald der Bot euch in einem Sprachkanal erkennt, könnt Ihr einfach eure Spotify App öffnen und unten in der Ecke (bei Geräten) das Gerät "Aoede" auswählen und einen Song abspielen. Der Bot kommt dann automatisch zu euch und fängt an die Music zu spielen.
Der Quellcode von dem Bot ist hier zu finden: codetheweb/aoede: 🎧 a self-hosted Spotify -> Discord music bot (github.com)