Music bot that supports Spotify and YouTube or any URL including SoundCloud links and Twitch streams. Fully free and open source.
- Play and search Spotify tracks and YouTube videos or playlists or play any URL including Soundcloud links and Twitch streams
- Fully free and open source
- Feature rich and highly customisable without a paywall
- Create cross-platform playlists with tracks from any source
- Simple and customisable player commands
- Create custom command presets as shortcuts for your most used commands
- Adjustable properties for even deeper customisation
- Sign in to Spotify to play your own Spotify playlists or upload aiode playlists
- Manage what roles can access which commands
Available commands
You can fetch this list in discord using the "@aiode help" command, or "@aiode help play" to get help with a specific command
Categories
Playback
play
Resume the paused playback, play the current track in the queue or play the specified track, video or playlist. Can play any URL or search youtube and spotify tracks or lists and also local playlists. Local playlists, like the queue, can contain tracks from any source (YouTube, Spotify and URL). Spotify search queries support the Spotify query syntax (i.e. the "artist:", "album:" and "track:" filters).
Usage examples:
Play the current queue or unpause playback
@aiode play
Play a specific track from Spotify
@aiode play numb
Play a track from a specific artist and album
@aiode play from the inside artist:linkin park album:meteora
Play a URL
@aiode play someurl.com
Play a video from YouTube
@aiode play $youtube youtube rewind 2018
Play a playlist from YouTube, showing a selection of 5 results
@aiode play $youtube $list $limit=5 memes
Play a YouTube playlist
@aiode play $youtube $list important videos
Play a Spotify playlist
@aiode play $spotify $list this is linkin park
Play a Spotify playlist from the current user's library
@aiode play $spotify $list $own goat
pause
Pause the current playback.
stop
Stop playback and empty the queue.
repeat
Toggles repeat for either the entire queue (repeat $all) or the current track (repeat $one).
rewind
Go back to the previous track in the queue. You can provide a number to rewind more than one track like this: @aiode rewind 5
skip
Skip to the next track in the queue or skip the specified amount of tracks. You can provide a number to skip more than one track like this: @aiode skip 5
shuffle
Toggles shuffle for this guild's queue. This generates a random order in which each track only appears once.
queue
Display the current queue or add a youtube video or playlist, spotify track or playlist, local playlist or any URL to the current queue. Spotify search queries support the Spotify query syntax (i.e. the "artist:", "album:" and "track:" filters).
Examples:
Display the queue widget
@aiode queue
Add a specific track from Spotify to the queue
@aiode queue numb
Add a track from a specific artist and album
@aiode queue from the inside artist:linkin park album:meteora
Add tracks from a local playlist to the queue
@aiode queue $list my list
Add tracks from a Spotify playlist to the queue
@aiode queue $spotify $list this is linkin park
Add tracks from a Spotify playlist in the current user's library to the queue
@aiode queue $list $spotify $own favs
Add a YouTube playlist to the queue
@aiode queue $youtube $list memes
Add a YouTube playlist to the queue, showing a selection of 5 results
@aiode queue $youtube $list $limit=5 memes
clear
Clear the current queue of all tracks (except the currently playing track)
forward
Skip the given amount of seconds or minutes in the current track.
Examples:
Forward 110 seconds
@aiode forward 110
Forward 2 minutes
@aiode forward $minutes 2
reverse
Rewind the given amount of seconds or minutes in the current track.
Examples:
Rewind 110 seconds
@aiode reverse 110
Rewind 2 minutes
@aiode rewind $minutes 2
volume
Change the music volume. Enter a value between 1 and 200.
Playlist management
create
Create an emtpy local playlist with the given name like @aiode create my list
delete
Delete the local playlist with the given name like @aiode delete my list
export
Export the current tracks in the queue to a new local list like @aiode export my list
add
Add a specific song from spotify, youtube, the current queue or any URL to the specified local playlist. Spotify search queries support the Spotify query syntax (i.e. the "artist:", "album:" and "track:" filters). To add tracks to the queue see the queue command.
Examples:
Add a specific track
@aiode add $spotify $own from the inside $to my list.
Add tracks from the current queue to a list
@aiode add $queue my list
Add tracks from a url
@aiode add someurl.com $to linkin park
remove
Remove an item from a local playlist. Put either the full title of the YouTube video or the spotify track name. If it was a track added by URL from a different source you can either remove it via its title or URL. You can also remove items by their index like such: @aiode remove $index 13-19 $from list.
move
Move one or several items in a aiode playlist to a different index. When moving items down the playlist the items will end up behind the track that is currently at the target index or before when moving items upwards. When entering an index range to move it includes the start and end index. Indices are human, meaning they start at 1. To view full playlists with all indices search the list (@aiode search $list my list) and then click the view full list link.
insert
Add a track to a aiode playlist. This command is an extension to the add command that inserts the tracks at a specific index rather than adding them to the end of the list.
Customisation
rename
Change the name of the bot. The bot then can be referenced to using that name instead of typing "@aiode".
preset
Create or delete a command preset or show all saved presets. Command presets can be used as shortcuts for lengthy commands or creating an alias for a command. Presets han hold one variable marked by "%s" that may be assigned a value when using the preset. Syntax to create a preset: [preset] $as [name].
Examples:
Create a preset to add a track to your favourite list like: @aiode fav numb
@aiode preset "add %s $to favs" $as fav
Create a preset to play a local list like: @aiode pl my list
@aiode preset "play $list %s" $as pl
Create an alias for command forward: @aiode ff 20
@aiode preset forward %s $as ff
List all local playlist with one word: @aiode list
@aiode search \$list $as list
Create a preset to play one of the current user's Spotify playlists
@aiode preset "play $spotify $own $list %s" $as psol
List all saved presets
@aiode preset
Delete a saved preset
@aiode preset $delete psol
prefix
Set a custom command prefix. Can be used instead of "@aiode" or the bot name to start a command.
property
List all properties or change the value of a property. Properties are used to customize the bot. For example the "color" property changes the colour theme or "playback notification" changes whether you receive "Now playing..." messages.
Examples:
list all properties
@aiode property
set the color of aiode messages to blue
@aiode property color $set blue
set the color to Spotify green
@aiode property color $set #1DB954
toggle playback notifications
@aiode property $toggle playback notification
General
answer
Answer a question asked by the bot. Commands like the play command may ask you to specify what track you meant if several options where found.
help
Lists all available commands and their descriptions or provides help with a specific command.
permission
Add or remove a role required to run a certain command or list all commands and who they are available to. By default all commands are available to each user, except for this command which initially is only available to the guild owner. But as soon as a role has been added only those members with said role can use the command. The guild owner can always use any command.
Examples:
Add playbackmanager to the roles that can use command play
@aiode permission $grant play $to playbackmanager
Remove playbackmanager from the roles that can use command add
@aiode permission $deny add $for playbackmanager
Clear all restrictions for command shuffle
@aiode permission $clear shuffle
analytics
Show various analytics about this bot
charts
Shows the most popular tracks and artists for your guild and globally
Spotify
login
Login to spotify. This sends you a link to the spotify login page which then redirects to the aiode callback.
upload
Upload the items from a local list to a new Spotify playlist. This ignores elements that are not Spotify tracks.
logout
Log out from Spotify.
Search
search
Search for YouTube and Spotify tracks or playlists and local playlists or list all local playlists. Spotify search queries support the Spotify query syntax (i.e. the "artist:", "album:" and "track:" filters).
Examples:
List all local playlists
@aiode search $list
Search for a specific local list
@aiode search $list my list
Search for a Spotify track
@aiode search $spotify numb artist:linkin park album:meteora
Search for a Spotify playlist
@aiode search $spotify $list this is linkin park
Search YouTube
@aiode search $youtube $list $limit=6 memes