Aoede is a Discord music bot that directly streams from Spotify to Discord. The only interface is Spotify itself.
Note: a Spotify Premium account is currently required. This is a limitation of librespot, the Spotify library Aoede uses. Facebook logins are not supported.
- Small servers with friends
- Discord Stages, broadcast music to your audience
(Images are available for x86 and arm64.)
Aoede will appear offline until you join a voice channel it has access it.
There are a variety of image tags available:
:0: versions >= 0.0.0:0.5: versions >= 0.5.0 and < 0.6.0:0.5.1: an exact version specifier:latest: whatever the latest version is
version: '3.4'
services:
aoede:
image: codetheweb/aoede
restart: always
volumes:
- ./aoede:/data
environment:
- DISCORD_TOKEN=
- SPOTIFY_USERNAME=
- SPOTIFY_PASSWORD=
- DISCORD_USER_ID= # Discord user ID of the user you want Aoede to follow
- SPOTIFY_BOT_AUTOPLAY= # Autoplay similar songs when your music ends (true/false)
- SPOTIFY_DEVICE_NAME=# .env
DISCORD_TOKEN=
SPOTIFY_USERNAME=
SPOTIFY_PASSWORD=
DISCORD_USER_ID=
SPOTIFY_BOT_AUTOPLAY=
SPOTIFY_DEVICE_NAME=docker run --rm -d --env-file .env codetheweb/aoedePrebuilt binaries are available on the releases page. Download the binary for your platform, then inside a terminal session:
- There are two options to make configuration values available to Aoede:
- Copy the
config.sample.tomlfile toconfig.tomland update as necessary. - Use environment variables (see the Docker Compose section above):
- On Windows, you can use
setx DISCORD_TOKEN my-token - On Linux / macOS, you can use
export DISCORD_TOKEN=my-token
- On Windows, you can use
- Copy the
- Run the binary:
- For Linux / macOS,
./platform-latest-aoedeafter navigating to the correct directory - For Windows, execute
windows-latest-aoede.exeafter navigating to the correct directory
- For Linux / macOS,
Requirements:
- automake
- autoconf
- cmake
- libtool
- Rust
- Cargo
Run cargo build --release. This will produce a binary in target/release/aoede. Set the required environment variables (see the Docker Compose section), then run the binary.

