Warning

This document is for Red's development version, which can be significantly different from previous releases. If you're a regular user, you should read the Red documentation for the current stable release.

Audio

This is the cog guide for the audio cog. You will find detailed docs about usage and commands.

[p] is considered as your prefix.

Note

To use this cog, load it by typing this:

[p]load audio

You can see additional help for any command in this guide by using [p]help with the command name, like [p]help playlist append.

In this guide, you will see references to “Lavalink” or the “Lavalink.jar”. Lavalink is the Java-based audio backend we use to be able to play music through the bot. Most users will not have to worry much about Lavalink or what it is, as Audio manages this process for you by default. Advanced users can read more about Lavalink and special cases under the Lavalink - Red Community-Supported Advanced Usage section below.

You will also see references to managed or unmanaged in regards to the Lavalink.jar. The default is managed, as Audio manages the Lavalink.jar in this state. If it is run as an unmanaged process, this means you as the bot owner will be managing the Lavalink process yourself.

When the Audio cog is first loaded, it will contact GitHub and download the newest Lavalink.jar file for your bot to use. Any time Red is updated and you update your bot, it will probably download a new, updated Lavalink.jar for your bot. It is important to keep your bot updated as fixes are provided for Lavalink frequently.

Warning

All commands should be used in a Discord server, and not in Direct Messages as Audio is not available there.

Basic Audio Use

The following commands are used for controlling the audio being played, such as starting, stopping, and altering volume.

  • [p]play - Play a single song or a playlist URL or use this command with words to search for a song.

  • [p]search - Search for a track on YouTube. Searching on Soundcloud can be done with [p]search sc and the keywords to search for.

  • [p]stop - Stops playback and clears the queue.

  • [p]pause - This is a toggle. Use [p]pause again to resume the music.

  • [p]prev - Stops playback of the current song and returns to the start of the previous song played.

  • [p]skip - Skip to the next song in the queue, if there is one.

  • [p]seek - Seek ahead to a specific track time, or seek ahead by seconds.

  • [p]now - Show what song is currently playing.

  • [p]volume - Set the volume from 0% to 150%. 100% is the default. Discord server owners can set a limit to the volume with [p]audioset maxvolume.

Note

The following services are currently supported through [p]play:

  • Bandcamp

  • HTTPS Icecast Streams

  • HTTPS Shoutcast Streams

  • Local file playback (see here)

  • SoundCloud

  • Spotify links via YouTube (see here)

  • Twitch

  • Vimeo

  • YouTube

  • Other AAC, MP3, or OGG-encoded streams

Note

[p]audioset restrict is a toggle that only allows commercial site (YouTube, Soundcloud, etc) playback by default. When toggled off, users will be able to play songs from HTTPS streams or arbitrary sites, but this could be a security issue as your bot’s IP address will be sent to any site it’s connecting to, per standard internet protocol.

Frequently Asked Questions

Q: I used a playlist link with some of the playlist related commands and it tells me that it can’t find it. How can I use this playlist link with playlist commands in audio?

Audio uses Red playlists in its commands that take playlist arguments. These playlists can be created and modified using the [p]playlist group command. When a playlist or song(s) are saved as a Red playlist, it is assigned an ID automatically, and it is also assigned the one-word name you provided it when creating the playlist. Either one of these identifiers can be used with playlist-related commands.

Tip

If you have a playlist URL, use [p]playlist save <url> to save it as a Playlist with Audio.

Q: How do I turn off autoplay?

Use the [p]audioset autoplay toggle command.

Q: How do I get the bot to disconnect from the channel when it’s done playing?

[p]audioset dc will make the bot auto-disconnect when playback completes and the queue is empty. [p]audioset emptydisconnect with a seconds argument greater than 0 will make the bot auto-disconnect once it’s alone in the channel, after the amount of seconds given to the command. This setting takes precedence over [p]audioset dc if both settings are active.

Q: How do I use localtracks?

Q: My console is saying that “Port 2333 is already in use”. How can I fix this?

If you are trying to run multiple bots with Audio, you should follow our guide on setting up Audio for multiple bots. Otherwise, another process is using the port, so you need to figure out what is using port 2333 and terminate/disconnect it yourself.

Q: My terminal is saying that I “must install Java 11 for Lavalink to run”. How can I fix this?

You are getting this error because you have a different version of Java installed, or you don’t have Java installed at all. As the error states, Java 11 is required, and can be installed from here.

If you have Java 11 installed, and are still getting this error, you will have to manually tell Audio where your Java install is located. Use [p]llset java <path_to_java_11_executable>, to make Audio launch Lavalink with a specific Java binary. To do this, you will need to locate your java.exe/java file in your Java 11 install.

Alternatively, update your PATH settings so that Java 11 is the one used by java. However, you should confirm that nothing other than Red is running on the machine that requires Java.

Playlist Commands

Playlists can be saved locally on the bot in a variety of different scopes:

  • Global - The playlist will be available on all servers.

  • Guild (default scope) - The playlist will be available only in a specified guild.

  • User - The playlist will be available in any guild that the user shares with the bot.

Some of the most relevant playlist commands include:

  • [p]playlist append - Add a track URL, playlist link, or quick search to a playlist.

  • [p]playlist create - Creates an empty playlist.

  • [p]playlist delete - Delete a saved playlist.

  • [p]playlist info - Retrieve information about a saved playlist.

  • [p]playlist list - List saved playlists.

  • [p]playlist queue - Save the currently playing queue to a playlist.

  • [p]playlist remove - Remove a track from a playlist by URL.

As always, you can run [p]help playlist <command> for more information.

Owner-Only Audioset Commands

  • [p]audioset cache - This sets the local metadata caching level for Audio. By default, this is set to on as it helps reduce 429 Forbidden errors from song services, and also caches Spotify song lookups. Most users will not need to touch this option.

  • [p]audioset cacheage - How long the entries in the cache last. By default, song metadata is cached for 365 days (1 year).

  • [p]audioset status - Show the now playing song in the bot’s status, or show how many servers the bot is playing music on, if more than one.

  • [p]audioset restrictions global - Manage the keyword blocklist/allowlist for the whole bot.

Guild-based Audioset Commands

  • [p]audioset notify - Toggle extra messages: Audio will display a notification message when a track starts, showing the song title, artist, and the thumbnail (if enabled and present). This notify message follows the last invoking Audio command - if an Audio command is used in one channel and this setting is on, the notify messages will start to appear in the channel where the command was used. If another Audio command is used in another channel, notify messages will start appearing in the second channel instead of the first command channel.

  • [p]audioset maxvolume - Set the max volume for the guild.

  • [p]audioset autodeafen - Toggle the bot being auto-deafened upon voice channel join.

  • [p]audioset restrictions - Manage the keyword blocklist/allowlist for the guild.

  • [p]audioset lyrics - Searching for tracks will prefer songs with ‘lyrics’ in the name, to avoid videos with long story intros or outros.

Spotify Playback and API Keys

We will never be able to play directly from Spotify itself as it is against their Terms of Service. Audio can play single tracks or playlists from Spotify by looking up the song(s) on YouTube and playing those tracks instead. This is possible by providing your bot with a YouTube API key and a Spotify API key. Instructions for setting both can be found under [p]audioset youtubeapi and [p]audioset spotifyapi.

The YouTube API keys that are being given out currently only have 10000 units of quota per day, which is equivalent to 100 Spotify song lookups. There is a local metadata cache that Audio uses to be able to retain information about song lookups. For example, with a 500 song Spotify playlist, the bot will be able to fetch the first 100 songs the first day the Spotify playlist URL is used with Audio, then the next day it will be able to use the first 100 lookups from the local cache, and use the API credits to look up the next 100 songs. After 5 days of playing the Spotify playlist through Audio, that playlist will be fully cached locally until the cached entries are set to expire and will not require any API credits to play songs.

The following commands are relevant:

  • [p]genre - Lets users pick a Spotify music genre to queue music from.

  • [p]audioset countrycode - Lets guild owners specify what country code to prefer for Spotify searches, for the guild.

  • [p]audioset mycountrycode - Lets individual users pick what country code to prefer for Spotify searches of their own.

Local Tracks

Audio can play music from a localtracks folder on the device where the bot is hosted. This feature is only available if your bot and your Lavalink.jar are on the same host, which is the default setup.

To use this feature:

  1. Create a “localtracks” folder anywhere where Lavalink/your bot user has permissions to access, on the system.

  2. Use [p]audioset localpath <localtracks path> to set the folder created above as the localtracks folder.

  3. Create/move/copy/symlink your album folders (Subfolders containing your tracks) to the folder created in Step 1.

  4. Put any of Audio’s supported files in the following folders:

    • localtracks/<parent folder>/song.mp3

    • localtracks/<parent folder>/<child folder>/song.mp3

When using this localtracks feature, use [p]local commands. Use [p]play <parent folder>/song.mp3 to play single songs. Use [p]local folder <parent folder>/<child folder> to play the entire folder.

The following formats are supported:

  • MP3

  • FLAC

  • Matroska/WebM (AAC, Opus or Vorbis codecs)

  • MP4/M4A (AAC codec)

  • OGG streams (Opus, Vorbis and FLAC codecs)

  • AAC streams

The following files are partially supported:

  • .ra

  • .wav

  • .opus

  • .wma

  • .ts

  • .au

  • .mov

  • .flv

  • .mkv

  • .wmv

  • .3gp

  • .m4v

  • .mk3d

  • .mka

  • .mks

The following files are NOT supported:

  • .mid

  • .mka

  • .amr

  • .aiff

  • .ac3

  • .voc

  • .dsf

  • .vob

  • .mts

  • .avi

  • .mpg

  • .mpeg

  • .swf

DJ Role and Voteskip

Audio has an internal permissions system for restrictions to audio commands while other people are listening to music with the bot. Bot owners, server admins and mods bypass these restrictions when they are in use.

[p]audioset dj will turn on the DJ role restriction system, [p]audioset role will let you choose or reassign the DJ role, and if you wish to make non-privileged users vote to skip songs, voteskip can be enabled with [p]audioset vote.

If a non-privileged user is listening to music alone in the channel, they can use commands without restrictions, even if DJ role or voteskip settings are active.

Sound Quality Issues

Laggy audio is most likely caused by:

  • A problem with the connection between the machine that is hosting Lavalink and the Discord voice server.

  • Issues with Discord.

You can try the following to resolve poor sound quality:

  • Don’t host on home internet, especially over a WiFi connection. Try hosting your bot elsewhere.

  • Try the web browser instead of the desktop client for listening.

  • Simply wait, as audio quality may improve in due course.

  • Restart your bot.

  • Check to make sure it’s not just a bad quality song (try a different song).

  • Try to listen on a different Discord server or server region.

  • If not everyone is experiencing the issue, it’s a Discord client issue.

No Sound

If the bot’s speaking light is active, but there is no sound, troubleshoot the following:

  1. Is the bot’s user volume turned up? (right click on the bot in Discord, see the slider).

  2. Is the bot muted or deafened? Are you deafened? Are you deaf?

  3. Check Discord audio device settings and volume (cog icon next to your username in the bottom left, click “Voice and Video”).

  4. Try dragging and dropping the bot back to the voice channel.

  5. Check system audio device settings and volume.

  6. Ask another member to come into the voice channel to confirm that it’s not just you.

If the track progress is stuck on 00:00 when you run [p]now:

  1. Try to run [p]disconnect and replay the song.

  2. Try to reload the audio cog with [p]audioset restart.

  3. Make sure the firewall on the host is configured properly.

Commands

audioset

Syntax

[p]audioset

Description

Music configuration options.

audioset autodeafen

Note

This command is locked to the mod role.

Syntax

[p]audioset autodeafen

Description

Toggle whether the bot will be auto deafened upon joining the voice channel.

audioset autoplay

Note

This command is locked to the mod role.

Syntax

[p]audioset autoplay

Description

Change auto-play setting.

audioset autoplay playlist

Syntax

[p]audioset autoplay playlist <playlist_name_OR_id> [args]

Description

Set a playlist to auto-play songs from.

Args

The following are all optional:

  • –scope <scope>

  • –author [user]

  • –guild [guild] (only the bot owner can use this)

Scope is one of the following:

  • Global

  • Guild

  • User

Author can be one of the following:

  • User ID

  • User Mention

  • User Name#123

Guild can be one of the following:

  • Guild ID

  • Exact guild name

Example Usage

  • [p]audioset autoplay playlist MyGuildPlaylist

  • [p]audioset autoplay playlist MyGlobalPlaylist --scope Global

  • [p]audioset autoplay playlist PersonalPlaylist --scope User --author Draper

audioset autoplay reset

Syntax

[p]audioset autoplay reset

Description

Resets auto-play to the default playlist.

audioset autoplay toggle

Syntax

[p]audioset autoplay toggle

Description

Toggle auto-play when there are no songs in the queue.

audioset cache

Note

This command is locked to the bot owner.

Syntax

[p]audioset cache [level]

Description

Sets the caching level.

Level can be one of the following:

  • 0: Disables all caching

  • 1: Enables Spotify Cache

  • 2: Enables YouTube Cache

  • 3: Enables Lavalink Cache

  • 5: Enables all Caches

If you wish to disable a specific cache use a negative number.

audioset cacheage

Note

This command is locked to the bot owner.

Syntax

[p]audioset cacheage <age>

Description

Sets the cache max age. This commands allows you to set the max number of days before an entry in the cache becomes invalid.

audioset countrycode

Note

This command is locked to the mod role.

Syntax

[p]audioset countrycode <country>

Description

Set the country code for Spotify searches.

audioset dailyqueue

Note

This command is locked to the admin role.

Syntax

[p]audioset dailyqueue

Description

Toggle daily queues. Daily queues creates a playlist for all tracks played today.

audioset dc

Note

This command is locked to the mod role.

Syntax

[p]audioset dc

Description

Toggle the bot auto-disconnecting when done playing. This setting takes precedence over [p]audioset emptydisconnect.

audioset dj

Note

This command is locked to the admin role.

Syntax

[p]audioset dj

Description

Toggle DJ mode. DJ mode allows users with the DJ role to use audio commands.

audioset emptydisconnect

Note

This command is locked to the mod role.

Syntax

[p]audioset emptydisconnect <seconds>

Description

Auto-disconnect from channel when bot is alone in it for x seconds, 0 to disable. [p]audioset dc takes precedence over this setting.

audioset emptypause

Note

This command is locked to the mod role.

Syntax

[p]audioset emptypause <seconds>

Description

Auto-pause after x seconds when the channel is empty, 0 to disable.

audioset globaldailyqueue

Note

This command is locked to the bot owner.

Syntax

[p]audioset globaldailyqueue

Description

Toggle global daily queues. Global daily queues creates a playlist for all tracks played today.

audioset jukebox

Note

This command is locked to the mod role.

Syntax

[p]audioset jukebox <price>

Description

Set a price for queueing tracks for non-mods, 0 to disable.

audioset localpath

Note

This command is locked to the bot owner.

Syntax

[p]audioset localpath [local_path]

Description

Set the localtracks path if the Lavalink.jar is not run from the Audio data folder. Leave the path blank to reset the path to the default, the Audio data directory.

audioset logs

Note

This command is locked to the bot owner.

Note

This command is only available for managed Lavalink servers.

Syntax

[p]audioset logs

Description

Sends the Lavalink server logs to your DMs.

audioset lyrics

Note

This command is locked to the mod role.

Syntax

[p]audioset lyrics

Description

Prioritise tracks with lyrics.

audioset maxlength

Note

This command is locked to the mod role.

Syntax

[p]audioset maxlength <seconds>

Description

Max length of a track to queue in seconds, 0 to disable. Accepts seconds or a value formatted like 00:00:00 (hh:mm:ss) or 00:00 (mm:ss). Invalid input will turn the max length setting off.

audioset maxvolume

Note

This command is locked to the admin role.

Syntax

[p]audioset maxvolume <maximum volume>

Description

Set the maximum volume allowed in this server.

audioset mycountrycode

Syntax

[p]audioset mycountrycode <country>

Description

Set the country code for Spotify searches.

audioset notify

Note

This command is locked to the mod role.

Syntax

[p]audioset notify

Description

Toggle track announcement and other bot messages.

audioset persistqueue

Note

This command is locked to the admin role.

Syntax

[p]audioset persistqueue

Description

Toggle persistent queues. Persistent queues allows the current queue to be restored when the queue closes.

audioset restart

Note

This command is locked to the bot owner.

Syntax

[p]audioset restart

Description

Restarts the lavalink connection.

audioset restrict

Note

This command is locked to the bot owner.

Syntax

[p]audioset restrict

Description

Toggle the domain restriction on Audio.

When toggled off, users will be able to play songs from non-commercial websites and links. When toggled on, users are restricted to YouTube, SoundCloud, Vimeo, Twitch, and Bandcamp links.

audioset restrictions

Note

This command is locked to the mod role.

Syntax

[p]audioset restrictions

Description

Manages the keyword whitelist and blacklist.

audioset restrictions blacklist

Syntax

[p]audioset restrictions blacklist

Description

Manages the keyword blacklist.

audioset restrictions blacklist add

Syntax

[p]audioset restrictions blacklist add <keyword>

Description

Adds a keyword to the blacklist.

audioset restrictions blacklist clear

Syntax

[p]audioset restrictions blacklist clear

Description

Clear all keywords added to the blacklist.

audioset restrictions blacklist delete

Syntax

[p]audioset restrictions blacklist delete <keyword>

Description

Removes a keyword from the blacklist.

audioset restrictions blacklist list

Syntax

[p]audioset restrictions blacklist list

Description

List all keywords added to the blacklist.

audioset restrictions global

Note

This command is locked to the bot owner.

Syntax

[p]audioset restrictions global

Description

Manages the global keyword whitelist/blacklist.

audioset restrictions global blacklist

Syntax

[p]audioset restrictions global blacklist

Description

Manages the global keyword blacklist.

audioset restrictions global blacklist add

Syntax

[p]audioset restrictions global blacklist add <keyword>

Description

Adds a keyword to the blacklist.

audioset restrictions global blacklist clear

Syntax

[p]audioset restrictions global blacklist clear

Description

Clear all keywords added to the blacklist.

audioset restrictions global blacklist delete

Syntax

[p]audioset restrictions global blacklist delete <keyword>

Description

Removes a keyword from the blacklist.

audioset restrictions global blacklist list

Syntax

[p]audioset restrictions global blacklist list

Description

List all keywords added to the blacklist.

audioset restrictions global whitelist

Syntax

[p]audioset restrictions global whitelist

Description

Manages the global keyword whitelist.

audioset restrictions global whitelist add

Syntax

[p]audioset restrictions global whitelist add <keyword>

Description

Adds a keyword to the whitelist. If anything is added to whitelist, it will blacklist everything else.

audioset restrictions global whitelist clear

Syntax

[p]audioset restrictions global whitelist clear

Description

Clear all keywords from the whitelist.

audioset restrictions global whitelist delete

Syntax

[p]audioset restrictions global whitelist delete <keyword>

Description

Removes a keyword from the whitelist.

audioset restrictions global whitelist list

Syntax

[p]audioset restrictions global whitelist list

Description

List all keywords added to the whitelist.

audioset restrictions whitelist

Syntax

[p]audioset restrictions whitelist

Description

Manages the keyword whitelist.

audioset restrictions whitelist add

Syntax

[p]audioset restrictions whitelist add <keyword>

Description

Adds a keyword to the whitelist. If anything is added to whitelist, it will blacklist everything else.

audioset restrictions whitelist clear

Syntax

[p]audioset restrictions whitelist clear

Description

Clear all keywords from the whitelist.

audioset restrictions whitelist delete

Syntax

[p]audioset restrictions whitelist delete <keyword>

Description

Removes a keyword from the whitelist.

audioset restrictions whitelist list

Syntax

[p]audioset restrictions whitelist list

Description

List all keywords added to the whitelist.

audioset role

Note

This command is locked to the admin role.

Syntax

[p]audioset role <role_name>

Description

Set the role to use for DJ mode.

audioset settings

Syntax

[p]audioset settings

Description

Show the current settings.

audioset spotifyapi

Note

This command is locked to the bot owner.

Syntax

[p]audioset spotifyapi

Description

Instructions to set the Spotify API tokens.

audioset status

Note

This command is locked to the bot owner.

Syntax

[p]audioset status

Description

Enable/disable tracks’ titles as status.

audioset thumbnail

Note

This command is locked to the mod role.

Syntax

[p]audioset thumbnail

Description

Toggle displaying a thumbnail on audio messages.

audioset vote

Note

This command is locked to the mod role.

Syntax

[p]audioset vote <percent>

Description

Percentage needed for non-mods to skip tracks, 0 to disable.

audioset youtubeapi

Note

This command is locked to the bot owner.

Syntax

[p]audioset youtubeapi

Description

Instructions to set the YouTube API key.

audiostats

Note

This command is locked to the bot owner.

Syntax

[p]audiostats

Description

Audio stats.

autoplay

Note

This command is locked to the mod role.

Syntax

[p]autoplay

Description

Starts auto play.

bump

Syntax

[p]bump <index>

Description

Bump a track number to the top of the queue.

bumpplay

Syntax

[p]bumpplay [play_now=False] <query>

Description

Force play a URL or search for a track.

disconnect

Syntax

[p]disconnect

Description

Disconnect from the voice channel.

eq

Syntax

[p]eq

Description

Equalizer management.

Band positions are 1-15 and values have a range of -0.25 to 1.0. Band names are 25, 40, 63, 100, 160, 250, 400, 630, 1k, 1.6k, 2.5k, 4k, 6.3k, 10k, and 16k Hz. Setting a band value to -0.25 nullifies it while +0.25 is double.

eq delete

Syntax

[p]eq delete <eq_preset>

Description

Delete a saved eq preset.

eq list

Syntax

[p]eq list

Description

List saved eq presets.

eq load

Syntax

[p]eq load <eq_preset>

Description

Load a saved eq preset.

eq reset

Syntax

[p]eq reset

Description

Reset the eq to 0 across all bands.

eq save

Syntax

[p]eq save [eq_preset]

Description

Save the current eq settings to a preset.

eq set

Syntax

[p]eq set <band_name_or_position> <band_value>

Description

Set an eq band with a band number or name and value.

Band positions are 1-15 and values have a range of -0.25 to 1.0. Band names are 25, 40, 63, 100, 160, 250, 400, 630, 1k, 1.6k, 2.5k, 4k, 6.3k, 10k, and 16k Hz. Setting a band value to -0.25 nullifies it while +0.25 is double.

genre

Syntax

[p]genre

Description

Pick a Spotify playlist from a list of categories to start playing.

local

Syntax

[p]local

Description

Local playback commands.

local folder

Syntax

[p]local folder [folder]

Description

Play all songs in a localtracks folder.

Example usage

  • [p]local folder - Open a menu to pick a folder to queue.

  • [p]local folder folder_name - Queues all of the tracks inside the folder_name folder.

local play

Syntax

[p]local play

Description

Play a local track.

To play a local track, either use the menu to choose a track or enter in the track path directly with the play command. To play an entire folder, use [p]help local folder for instructions.

Example usage

  • [p]local play - Open a menu to pick a track.

  • [p]play localtracks\album_folder\song_name.mp3

  • [p]play album_folder\song_name.mp3 - Use a direct link relative to the localtracks folder.

now

Syntax

[p]now

Description

Now playing.

pause

Syntax

[p]pause

Description

Pause or resume a playing track.

percent

Syntax

[p]percent

Description

Queue percentage.

play

Syntax

[p]play <query>

Description

Play the specified track or search for a close match.

To play a local track, the query should be <parentfolder>\<filename>. If you are the bot owner, use [p]audioset info to display your localtracks path.

playlist

Syntax

[p]playlist

Description

Playlist configuration options.

Scope information

  • Global: Visible to all users of this bot. Only editable by bot owner.

  • Guild: Visible to all users in this guild. Editable by bot owner, guild owner, guild admins, guild mods, DJ role and playlist creator.

  • User: Visible to all bot users, if --author is passed. Editable by bot owner and playlist creator.

playlist append

Syntax

[p]playlist append <playlist_name_OR_id> <track_name_OR_url> [args]

Description

Add a track URL, playlist link, or quick search to a playlist. The track(s) will be appended to the end of the playlist.

Args

The following are all optional:

  • –scope <scope>

  • –author [user]

  • –guild [guild] (only the bot owner can use this)

Scope is one of the following:

  • Global

  • Guild

  • User

Author can be one of the following:

  • User ID

  • User Mention

  • User Name#123

Guild can be one of the following:

  • Guild ID

  • Exact guild name

Example usage

  • [p]playlist append MyGuildPlaylist Hello by Adele

  • [p]playlist append MyGlobalPlaylist Hello by Adele --scope Global

  • [p]playlist append MyGlobalPlaylist Hello by Adele --scope Global --Author Draper#6666

playlist copy

Syntax

[p]playlist copy <id_or_name> [args]

Description

Copy a playlist from one scope to another.

Args

The following are all optional:

  • –from-scope <scope>

  • –from-author [user]

  • –from-guild [guild] (only the bot owner can use this)

  • –to-scope <scope>

  • –to-author [user]

  • –to-guild [guild] (only the bot owner can use this)

Scope is one of the following:

  • Global

  • Guild

  • User

Author can be one of the following:

  • User ID

  • User Mention

  • User Name#123

Guild can be one of the following:

  • Guild ID

  • Exact guild name

Example usage

  • [p]playlist copy MyGuildPlaylist --from-scope Guild --to-scope Global

  • [p]playlist copy MyGlobalPlaylist --from-scope Global --to-author Draper#6666 --to-scope User

  • [p]playlist copy MyPersonalPlaylist --from-scope user --to-author Draper#6666 --to-scope Guild --to-guild Red - Discord Bot

playlist create

Syntax

[p]playlist create <name> [args]

Description

Create an empty playlist.

Args

The following are all optional:

  • –scope <scope>

  • –author [user]

  • –guild [guild] (only the bot owner can use this)

Scope is one of the following:

  • Global

  • Guild

  • User

Author can be one of the following:

  • User ID

  • User Mention

  • User Name#123

Guild can be one of the following:

  • Guild ID

  • Exact guild name

Example usage

  • [p]playlist create MyGuildPlaylist

  • [p]playlist create MyGlobalPlaylist --scope Global

  • [p]playlist create MyPersonalPlaylist --scope User

playlist dedupe

Syntax

[p]playlist dedupe <playlist_name_OR_id> [args]

Description

Remove duplicate tracks from a saved playlist.

Args

The following are all optional:

  • –scope <scope>

  • –author [user]

  • –guild [guild] (only the bot owner can use this)

Scope is one of the following:

  • Global

  • Guild

  • User

Author can be one of the following:

  • User ID

  • User Mention

  • User Name#123

Guild can be one of the following:

  • Guild ID

  • Exact guild name

Example usage

  • [p]playlist dedupe MyGuildPlaylist

  • [p]playlist dedupe MyGlobalPlaylist --scope Global

  • [p]playlist dedupe MyPersonalPlaylist --scope User

playlist delete

Syntax

[p]playlist delete <playlist_name_OR_id> [args]

Description

Delete a saved playlist.

Args

The following are all optional:

  • –scope <scope>

  • –author [user]

  • –guild [guild] (only the bot owner can use this)

Scope is one of the following:

  • Global

  • Guild

  • User

Author can be one of the following:

  • User ID

  • User Mention

  • User Name#123

Guild can be one of the following:

  • Guild ID

  • Exact guild name

Example usage

  • [p]playlist delete MyGuildPlaylist

  • [p]playlist delete MyGlobalPlaylist --scope Global

  • [p]playlist delete MyPersonalPlaylist --scope User

playlist download

Note

This command is locked to the bot owner.

Syntax

[p]playlist download <playlist_name_OR_id> [v2=False] [args]

Description

Download a copy of a playlist.

These files can be used with the [p]playlist upload command. Red v2-compatible playlists can be generated by passing True for the v2 variable.

Args

The following are all optional:

  • –scope <scope>

  • –author [user]

  • –guild [guild] (only the bot owner can use this)

Scope is one of the following:

  • Global

  • Guild

  • User

Author can be one of the following:

  • User ID

  • User Mention

  • User Name#123

Guild can be one of the following:

  • Guild ID

  • Exact guild name

Example usage

  • [p]playlist download MyGuildPlaylist True

  • [p]playlist download MyGlobalPlaylist False --scope Global

  • [p]playlist download MyPersonalPlaylist --scope User

playlist info

Syntax

[p]playlist info <playlist_name_OR_id> [args]

Description

Retrieve information from a saved playlist.

Args

The following are all optional:

  • –scope <scope>

  • –author [user]

  • –guild [guild] (only the bot owner can use this)

Scope is one of the following:

  • Global

  • Guild

  • User

Author can be one of the following:

  • User ID

  • User Mention

  • User Name#123

Guild can be one of the following:

  • Guild ID

  • Exact guild name

Example usage

  • [p]playlist info MyGuildPlaylist

  • [p]playlist info MyGlobalPlaylist --scope Global

  • [p]playlist info MyPersonalPlaylist --scope User

playlist list

Syntax

[p]playlist list [args]

Description

List saved playlists.

Args

The following are all optional:

  • –scope <scope>

  • –author [user]

  • –guild [guild] (only the bot owner can use this)

Scope is one of the following:

  • Global

  • Guild

  • User

Author can be one of the following:

  • User ID

  • User Mention

  • User Name#123

Guild can be one of the following:

  • Guild ID

  • Exact guild name

Example usage

  • [p]playlist list

  • [p]playlist list --scope Global

  • [p]playlist list --scope User

playlist queue

Syntax

[p]playlist queue <name> [args]

Description

Save the queue to a playlist.

Args

The following are all optional:

  • –scope <scope>

  • –author [user]

  • –guild [guild] (only the bot owner can use this)

Scope is one of the following:

  • Global

  • Guild

  • User

Author can be one of the following:

  • User ID

  • User Mention

  • User Name#123

Guild can be one of the following:

  • Guild ID

  • Exact guild name

Example usage

  • [p]playlist queue MyGuildPlaylist

  • [p]playlist queue MyGlobalPlaylist --scope Global

  • [p]playlist queue MyPersonalPlaylist --scope User

playlist remove

Syntax

[p]playlist remove <playlist_name_OR_id> <url> [args]

Description

Remove a track from a playlist by URL.

Args

The following are all optional:

  • –scope <scope>

  • –author [user]

  • –guild [guild] (only the bot owner can use this)

Scope is one of the following:

  • Global

  • Guild

  • User

Author can be one of the following:

  • User ID

  • User Mention

  • User Name#123

Guild can be one of the following:

  • Guild ID

  • Exact guild name

Example usage

  • [p]playlist remove MyGuildPlaylist https://www.youtube.com/watch?v=MN3x-kAbgFU

  • [p]playlist remove MyGlobalPlaylist https://www.youtube.com/watch?v=MN3x-kAbgFU --scope Global

  • [p]playlist remove MyPersonalPlaylist https://www.youtube.com/watch?v=MN3x-kAbgFU --scope User

playlist rename

Syntax

[p]playlist rename <playlist_name_OR_id> <new_name> [args]

Description

Rename an existing playlist.

Args

The following are all optional:

  • –scope <scope>

  • –author [user]

  • –guild [guild] (only the bot owner can use this)

Scope is one of the following:

  • Global

  • Guild

  • User

Author can be one of the following:

  • User ID

  • User Mention

  • User Name#123

Guild can be one of the following:

  • Guild ID

  • Exact guild name

Example usage

  • [p]playlist rename MyGuildPlaylist RenamedGuildPlaylist

  • [p]playlist rename MyGlobalPlaylist RenamedGlobalPlaylist --scope Global

  • [p]playlist rename MyPersonalPlaylist RenamedPersonalPlaylist --scope User

playlist save

Syntax

[p]playlist save <name> <url> [args]

Description

Save a playlist from a URL.

The following are all optional:

  • –scope <scope>

  • –author [user]

  • –guild [guild] (only the bot owner can use this)

Scope is one of the following:

  • Global

  • Guild

  • User

Author can be one of the following:

  • User ID

  • User Mention

  • User Name#123

Guild can be one of the following:

  • Guild ID

  • Exact guild name

Example usage

  • [p]playlist save MyGuildPlaylist https://www.youtube.com/playlist?list=PLx0sYbCqOb8Q_CLZC2BdBSKEEB59BOPUM

  • [p]playlist save MyGlobalPlaylist https://www.youtube.com/playlist?list=PLx0sYbCqOb8Q_CLZC2BdBSKEEB59BOPUM --scope Global

  • [p]playlist save MyPersonalPlaylist https://open.spotify.com/playlist/1RyeIbyFeIJVnNzlGr5KkR --scope User

playlist start

Syntax

[p]playlist start <playlist_name_OR_id> [args]

Description

Load a playlist into the queue.

Args

The following are all optional:

  • –scope <scope>

  • –author [user]

  • –guild [guild] (only the bot owner can use this)

Scope is one of the following:

  • Global

  • Guild

  • User

Author can be one of the following:

  • User ID

  • User Mention

  • User Name#123

Guild can be one of the following:

  • Guild ID

  • Exact guild name

Example usage

  • [p]playlist start MyGuildPlaylist

  • [p]playlist start MyGlobalPlaylist --scope Global

  • [p]playlist start MyPersonalPlaylist --scope User

playlist update

Syntax

[p]playlist update <playlist_name_OR_id> [args]

Description

Updates all tracks in a playlist.

Args

The following are all optional:

  • –scope <scope>

  • –author [user]

  • –guild [guild] (only the bot owner can use this)

Scope is one of the following:

  • Global

  • Guild

  • User

Author can be one of the following:

  • User ID

  • User Mention

  • User Name#123

Guild can be one of the following:

  • Guild ID

  • Exact guild name

Example usage

  • [p]playlist update MyGuildPlaylist

  • [p]playlist update MyGlobalPlaylist --scope Global

  • [p]playlist update MyPersonalPlaylist --scope User

playlist upload

Note

This command is locked to the bot owner.

Syntax

[p]playlist upload [args]

Description

Uploads a playlist file as a playlist for the bot.

V2 and old V3 playlist will be slow. V3 Playlist made with [p]playlist download will load a lot faster.

Args

The following are all optional:

  • –scope <scope>

  • –author [user]

  • –guild [guild] (only the bot owner can use this)

Scope is one of the following:

  • Global

  • Guild

  • User

Author can be one of the following:

  • User ID

  • User Mention

  • User Name#123

Guild can be one of the following:

  • Guild ID

  • Exact guild name

Example usage

  • [p]playlist upload

  • [p]playlist upload --scope Global

  • [p]playlist upload --scope User

prev

Syntax

[p]prev

Description

Skip to the start of the previously played track.

queue

Syntax

[p]queue [page=1]

Description

List the songs in the queue.

queue clean

Syntax

[p]queue clean

Description

Removes songs from the queue if the requester is not in the voice channel.

queue cleanself

Syntax

[p]queue cleanself

Description

Removes all tracks you requested from the queue.

queue clear

Syntax

[p]queue clear

Description

Clears the queue.

queue shuffle

Syntax

[p]queue shuffle

Description

Shuffles the queue.

remove

Syntax

[p]remove <index_or_url>

Description

Remove a specific track number from the queue.

repeat

Syntax

[p]repeat

Description

Toggle repeat.

seek

Syntax

[p]seek <seconds>

Description

Seek ahead or behind on a track by seconds or to a specific time. Accepts seconds or a value formatted like 00:00:00 (hh:mm:ss) or 00:00 (mm:ss).

shuffle

Syntax

[p]shuffle

Description

Toggle shuffle.

shuffle bumped

Syntax

[p]shuffle bumped

Description

Toggle bumped track shuffle.

Set this to disabled if you wish to avoid bumped songs being shuffled. This takes priority over [p]shuffle.

sing

Syntax

[p]sing

Description

Make Red sing one of her songs.

skip

Syntax

[p]skip [skip_to_track]

Description

Skip to the next track, or to a given track number.

stop

Syntax

[p]stop

Description

Stop playback and clear the queue.

summon

Syntax

[p]summon

Description

Summon the bot to a voice channel.

volume

Syntax

[p]volume [vol]

Description

Set the volume, 1% - 150%.

Managed Node Management Commands

llset config

Syntax

[p]llset config

Description

Configure the managed Lavalink node runtime options.

All settings under this group will likely cause Audio to malfunction if changed from their defaults, only change settings here if you have been advised to by #support.

llset config bind

Syntax

[p]llset config bind [host=localhost]

Description

Set the managed Lavalink node’s binding IP address.

Arguments

  • [host]: The node’s binding IP address, defaulting to “localhost”.

llset config port

Syntax

[p]llset config port [port=2333]

Description

Set the managed Lavalink node’s connection port.

This port is the port the managed Lavalink node binds to, you should only change this if there is a conflict with the default port because you already have an application using port 2333 on this device.

Arguments

  • [port]: The node’s connection port, defaulting to 2333.

llset config server

Syntax

[p]llset config server

Description

Configure the managed node authorization and connection settings.

llset config server buffer

Syntax

[p]llset config server buffer [milliseconds=400]

Description

Set the managed Lavalink node JDA-NAS buffer size. Only change this if you have been directly advised to, changing it can cause significant playback issues.

Arguments

  • [milliseconds] - The buffer size, defaults to 400.

llset config server framebuffer

Syntax

[p]llset config server framebuffer [milliseconds=1000]

Description

Set the managed Lavalink node framebuffer size. Only change this if you have been directly advised to, changing it can cause significant playback issues.

Arguments

  • [milliseconds] - The framebuffer size, defaults to 1000.

llset config source

Syntax

[p]llset config source

Description

Toggle audio sources on/off.

By default, all sources are enabled, you should only use commands here to disable a specific source if you have been advised to, disabling sources without background knowledge can cause Audio to break.

llset config source bandcamp

Syntax

[p]llset config source bandcamp

Description

Toggle Bandcamp source on or off. This toggle controls the playback of all Bandcamp related content.

llset config source http

Syntax

[p]llset config source http

Description

Toggle HTTP direct URL usage on or off. This source is used to allow playback from direct HTTP streams (this does not affect direct URL playback for the other sources).

llset config source local

Syntax

[p]llset config source local

Description

Toggle local file usage on or off. This toggle controls the playback of all local track content, usually found inside the localtracks folder.

llset config source soundcloud

Syntax

[p]llset config source soundcloud

Description

Toggle SoundCloud source on or off. This toggle controls the playback of all SoundCloud related content.

llset config source twitch

Syntax

[p]llset config source twitch

Description

Toggle Twitch source on or off. This toggle controls the playback of all Twitch related content.

llset config source vimeo

Syntax

[p]llset config source vimeo

Description

Toggle Vimeo source on or off. This toggle controls the playback of all Vimeo related content.

llset config source youtube

Syntax

[p]llset config source youtube

Description

Toggle YouTube source on or off (this includes Spotify). This toggle controls the playback of all YouTube and Spotify related content.

llset config token

Syntax

[p]llset config token [password=youshallnotpass]

Description

Set the managed Lavalink node’s connection password. This is the password required for Audio to connect to the managed Lavalink node. The value by default is youshallnotpass.

Arguments

  • [password] - The node’s connection password, defaulting to youshallnotpass.

llset heapsize

Syntax

[p]llset heapsize [size=3G]

Description

Set the managed Lavalink node maximum heap-size.

By default, this value is 50% of available RAM in the host machine represented by [1-1024][M|G] (256M, 256G for example).

This value only represents the maximum amount of RAM allowed to be used at any given point, and does not mean that the managed Lavalink node will always use this amount of RAM.

Arguments

  • [size] - The node’s maximum heap-size, defaulting to 3G.

llset java

Syntax

[p]llset java [javapath]

Description

Change your Java executable path.

This command shouldn’t need to be used most of the time, and is only useful if the host machine has conflicting Java versions.

If changing this make sure that the Java executable you set is supported by Audio. The current supported version is Java 11.

Arguments

  • [java] - The java executable path, leave blank to reset it back to default.

llset yaml

Syntax

[p]llset yaml

Description

Uploads a copy of the application.yml file used by the managed Lavalink node.

Unmanaged Node Management Commands

Note

A normal Red user should never have to use these commands unless they are managing multiple Red bots with Audio.

llset host

Syntax

[p]llset host [host=localhost]

Description

Set the Lavalink node host. This command sets the connection host which Audio will use to connect to an external Lavalink node.

Arguments

  • [host] - The connection host, defaulting to “localhost”.

llset password

Syntax

[p]llset password [password=youshallnotpass]

Description

Set the Lavalink node password. This command sets the connection password which Audio will use to connect to an external Lavalink node.

Arguments

  • [password] - The connection password, defaulting to “youshallnotpass”.

llset port

Syntax

[p]llset port [port=2333]

Description

Set the Lavalink node port. This command sets the connection port which Audio will use to connect to an external Lavalink node.

Arguments

  • [password] - The connection password, defaulting to 2333.

llset secured

Syntax

[p]llset secured

Description

Set the Lavalink node connection to secured. This toggle sets the connection type to secured or unsecured when connecting to an external Lavalink node.