🎧 a self-hosted Spotify β†’ Discord music bot

Overview

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.

Demo

πŸ’Ό Usecases

  • Small servers with friends
  • Discord Stages, broadcast music to your audience

πŸ— Usage

(Images are available for x86 and arm64.)

Docker Compose (recommended):

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

Prebuilt Binaries:

Prebuilt binaries are available on the releases page. Download the binary for your platform, then inside a terminal session:

  1. Set the required environment variables (see the Docker Compose section)
    • On Windows, you can use setx DISCORD_TOKEN my-token
    • On Linux / macOS, you can use export DISCORD_TOKEN=my-token
  2. Run the binary:
    • For Linux / macOS, ./platform-latest-aoede after navigating to the correct directory
    • For Windows, execute windows-latest-aoede.exe after navigating to the correct directory

Building from source:

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.

Issues
  • thread 'main' panicked at 'called `Result::unwrap()`

    thread 'main' panicked at 'called `Result::unwrap()`

    Keep getting this error when using docker-compose up, and when the docker container is running. Docker container keeps restarting .

    thread 'main' panicked at 'called Result::unwrap() on an Err value: ParseIntError { kind: InvalidDigit }', src/main.rs:295:79

    note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

    Screenshot_7

    image

    opened by LiamBica 1
  • Make credentials optional if using on local network

    Make credentials optional if using on local network

    afaik it shoult be possible to use the bot with spotify webapi tokens -> it should be possible to implement oauth and offer the bot to more than one user without giving away login credentials

    enhancement good first issue 
    opened by cloudybyte 4
  • audio resampling

    audio resampling

    is there any reason for resampling the audio here? afaik it just causes cpu utilization... In fact why are we touching the audio data at all?

    opened by cloudybyte 3
Owner
Max Isom
Student and developer. Likes starting side projects and occasionally finishes them.
Max Isom
🎧 a self-hosted Spotify β†’ Discord music bot

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 c

Max Isom 53 Sep 14, 2021
A spotify daemon

Spotifyd An open source Spotify client running as a UNIX daemon. Spotifyd streams music just like the official client, but is more lightweight and sup

null 5.3k Sep 17, 2021
Polaris is a music streaming application, designed to let you enjoy your music collection from any computer or mobile device.

Polaris is a music streaming application, designed to let you enjoy your music collection from any computer or mobile device. Polaris works by streami

Antoine Gersant 736 Sep 13, 2021
A discord.py experimental extension for audio recording

discord-ext-audiorec This project is currently under development. We do not guarantee it works.

Tomoya Ishii 4 Sep 2, 2021
Gtk/Rust native Spotify client for the GNOME desktop.

Gtk/Rust native Spotify client for the GNOME desktop.

Alexandre Trendel 1.1k Sep 20, 2021
Your musical pokedex, Plex for music

Musidex Your musical pokedex, Plex for music. Add songs from youtube videos or youtube playlist to your library, or import them from your local files.

PΓ’ris DOUADY 10 Sep 6, 2021
A song analysis library for making playlists

bliss-rs is the Rust improvement of bliss, a library used to make playlists by analyzing songs, and computing distance between them.

null 22 Sep 18, 2021
Easy Api in Rust to play Sounds

ears ears is a simple library to play sounds and music in Rust. Provides an access to the OpenAL spatialization functionality in a simple way. Accepts

Jan Niklas Hasse 77 Jun 10, 2021
A Rust environment for sound synthesis and algorithmic composition.

Sorceress A Rust environment for sound synthesis and algorithmic composition, powered by SuperCollider. Overview Sorceress is a Rust crate that provid

Wesley Merkel 59 Aug 15, 2021
A rust binding for the FMOD library

rust-fmod This is a rust binding for FMOD, the library developped by FIRELIGHT TECHNOLOGIES. FMOD website : www.fmod.org You can also find it on crate

Guillaume Gomez 51 Sep 15, 2021
An open-source and fully-featured Digital Audio Workstation, made by musicians, for musicians

Meadowlark An open-source and fully-featured Digital Audio Workstation, made by musicians, for musicians. *Current design mockup, not a functioning pr

Meadowlark 55 Sep 18, 2021
The open source musician's digital music stand

DiNoScore* A digital music stand written with GTK in Rust using WoAB. Includes an editor to import your sheet. Touch-friendly thanks to Libhandy. Ever

null 4 Aug 23, 2021
A third-party iTunes addon to show the lyrics on the desktop.

iLyrics A third-party iTunes addon to show the lyrics on the desktop. Preview Prerequisites iTunes Usage Download the binary or build from source. Run

Jiahao Lu 15 Sep 6, 2021
A third-party iTunes addon to show the lyrics on the desktop.

iTunes Desktop Lyrics for Windows A third-party iTunes addon to show the lyrics on the desktop. Preview Prerequisites iTunes Usage Download the binary

Jiahao Lu 15 Sep 6, 2021
High-level PortMidi bindings and wrappers for Rust

portmidi-rs High-level PortMidi bindings for Rust. PortMidi website: http://portmedia.sourceforge.net/portmidi/ Installation Add this to your Cargo.to

Philippe Delrieu 63 Jun 23, 2021