🎵 Music
Stream music straight into your voice channels with a fast, modern player. Audio is decoded on Strom’s dedicated audio node — not in the bot process — so playback stays smooth even with many servers listening at once.
Every feature lives under a single /music command, with subcommands for each action (and a /music playlist group for saved playlists).
- Play from YouTube, YouTube Music, SoundCloud, and Spotify (search + links).
- Interactive button control panel under every now-playing message.
- Queue management, loop, shuffle, seek, volume, and audio filters.
- 24/7 mode, autoplay, saved playlists, and lyrics.
- A fair-use daily listening quota per server.
- Dashboard settings for DJ role, default volume, and 24/7.
Quick start
- Join a voice channel.
- Run
/music playwith a song name or a link. - Use the buttons under the now-playing message, or the subcommands below, to control playback.
/music play query: Never Gonna Give You Up
/music play query: https://www.youtube.com/watch?v=dQw4w9WgXcQ
/music play query: lofi beats source: SoundCloud
Strom joins your channel, posts a Now Playing card, and starts streaming. Add more tracks any time — they’re appended to the queue.
Command reference
Every command works as both a slash command (/music play) and a prefix command (!music play).
Playback
| Command | Description |
|---|---|
/music play query:<text|url> [source] | Play a track/playlist, or queue it if something is already playing. Available in NSFW channels only. |
/music pause | Pause the current track. |
/music resume | Resume playback. |
/music skip | Skip to the next track. (gated) |
/music stop | Stop playback and clear the queue. (gated) |
/music leave | Disconnect Strom from the voice channel. (gated) |
/music nowplaying | Show the current track with the control panel. |
/music seek position:<time> | Jump to a position — 90, 1:30, or 1:02:03. |
/music volume level:<0-200> | Set playback volume. |
Queue
| Command | Description |
|---|---|
/music queue [page] | Show the queue, paginated. |
/music shuffle | Shuffle the upcoming tracks. |
/music remove index:<n> | Remove a track at the given queue position. |
/music loop mode:<off|track|queue> | Set the loop mode. |
/music autoplay state:<on|off> | Keep playing related tracks when the queue ends. |
Enhancements
| Command | Description |
|---|---|
/music filter preset:<name> | Apply an audio filter (see Filters). |
/music lyrics | Show lyrics for the current track. |
/music playlist ... | Manage personal saved playlists, playlist tracks, and single-track playback. |
/music 247 state:<on|off> | Toggle 24/7 mode (Strom stays connected). |
/music quota | Show the server’s remaining daily listening time. |
::: details Permissions (gated actions) Most commands are open to anyone in Strom’s voice channel. The disruptive actions — skip, stop, leave — are gated. You can use them if any of these is true:
- You requested the current track.
- You have the DJ role (set on the dashboard).
- You have Manage Server.
- You’re the only human in the channel with Strom. :::
Control panel
Every Now Playing message comes with two rows of buttons, so members can control playback without typing commands:
| Button | Action |
|---|---|
| Back | Restart the current track. |
| Pause / Play | Toggle pause and resume. |
| Skip | Skip to the next track. (gated) |
| Stop | Stop playback and clear the queue. (gated) |
| Loop: <mode> | Cycle loop: off → track → queue. |
| Volume Down / Volume Up | Step the volume down or up. |
| Shuffle | Shuffle the queue. |
| Queue | Show the queue. |
| Autoplay | Toggle autoplay of related tracks. |
Buttons work for anyone sharing Strom’s voice channel; the gated actions (Skip, Stop) still enforce the DJ rules above.
Sources
Pick where to search with the source option on /music play. The default is YouTube.
| Source | source value | Notes |
|---|---|---|
| YouTube | youtube | Default. Direct video & playlist links supported. |
| YouTube Music | youtubemusic | Cleaner results for songs. |
| SoundCloud | soundcloud | Tracks and sets. |
| Spotify | spsearch | Search + links — see the note below. |
Pasting a link from any supported platform works regardless of the source setting.
Spotify can’t be streamed directly — Strom reads track info from Spotify, then plays the matching audio from YouTube.
- Spotify search (
/music play source: Spotify <song>) still works — it automatically falls back to YouTube. - Spotify links may not always resolve; if they don’t, use a song name or a YouTube/SoundCloud link instead.
Filters
Apply audio presets with /music filter preset:<name>.
| Preset | Effect |
|---|---|
clear | Remove all filters. |
bassboost | Heavier low end. |
nightcore | Faster + higher pitch. |
vaporwave | Slower + lower pitch. |
8d | Rotating “surround” effect. |
karaoke | Reduce vocals. |
treble | Brighter highs. |
soft | Gentle low-pass smoothing. |
/music filter preset: bassboost
/music filter preset: clear
Playlists
Playlists are personal to each user in each server. You can save the current queue, inspect numbered tracks later, add new songs manually, remove tracks by position, or queue one specific saved track by number. Each user can keep up to 6 playlists per server.
Older music documentation that only listed /music playlist save, /music playlist load, /music playlist list, and /music playlist delete as the full playlist feature set is now deprecated.
Those commands still work, but they no longer describe the complete playlist system. Use the expanded playlist commands below for track-level management.
Playlist commands
| Command | Description |
|---|---|
/music playlist save name:<name> [query] | Save the current playing track plus the full queue, or create a playlist directly from a track or playlist query or URL. |
/music playlist load name:<name> | Load every track from one saved playlist into the queue. |
/music playlist list | List all of your saved playlists for the current server. |
/music playlist view name:<name> | Show one playlist with numbered track positions. |
/music playlist add name:<name> query:<text|url> | Add one track to an existing playlist by search query or URL. |
/music playlist remove name:<name> position:<n> | Remove one track from a playlist by its 1-based position number. |
/music playlist play name:<name> position:<n> | Queue one specific playlist track by its 1-based position number. |
/music playlist delete name:<name> | Delete one saved playlist permanently. |
Playlist examples
/music playlist save name: chill
/music playlist save name: chill query: Never Gonna Give You Up
/music playlist save name: chill query: https://open.spotify.com/track/...
/music playlist load name: chill
/music playlist list
/music playlist view name: chill
/music playlist add name: chill query: Never Gonna Give You Up
/music playlist remove name: chill position: 2
/music playlist play name: chill position: 1
/music playlist delete name: chill
/music playlist savestores everything currently queued, including the playing track, when noqueryis provided./music playlist savecan also create or replace a playlist directly from a song name, video URL, Spotify link, SoundCloud link, or supported playlist link./music playlist loadre-queues the full playlist and counts toward the daily quota like any other playback./music playlist viewis the source of truth for numbered track positions used byremoveandplay.- Track positions are 1-based inside the selected playlist, not queue positions.
- Each user can have at most 6 saved playlists per server. Delete one to free a slot.
24/7 mode
By default Strom leaves a channel when it’s been alone for about 2 minutes or the queue ends. Turn on 24/7 to keep it connected:
/music 247 state: on
With 24/7 enabled, Strom stays in the channel after the queue finishes and won’t auto-leave when alone. You can also enable 24/7 from the dashboard.
Daily listening quota
To keep things fair, each server has a daily music listening limit (default 4 hours). Only active, non-paused playback counts.
/music quota
- Shows time used, remaining, and when it resets.
- When the limit is reached, playback stops automatically and new
/music playrequests are blocked until reset. - Paused time is not counted.
::: info The quota is per server, not per user, and resets every day at 00:00 UTC. :::
Dashboard settings
Open the dashboard → your server → Music to configure:
| Setting | What it does |
|---|---|
| DJ role | Members with this role can use the gated actions (skip, stop, leave) on anyone’s tracks. |
| Default volume | The volume Strom starts at when it joins (0–200). |
| 24/7 mode | Keep Strom connected even when the queue ends or the channel empties. |
Requirements
Strom needs Connect and Speak permission in the voice channel before it can play. Without them, /music play returns a permission error.
Troubleshooting
::: details A song gets stuck or skips immediately Try a different source using the source option on /music play (e.g. switch from YouTube to SoundCloud). If the issue persists, the track may be unavailable or geo-restricted in your region. :::
::: details Spotify links don’t resolve Spotify links may not always work. Use a song name with /music play instead — Strom will automatically find the best match from YouTube. :::
::: details Lyrics show a search link instead of text Lyrics are sourced from Genius. If the lyrics panel shows a link rather than text, the track title may not have matched cleanly — try searching for the song manually on youtube.com. :::
::: details “I need Connect and Speak permission” Strom can’t join or transmit in the voice channel. Grant the Strom Bot role Connect and Speak on that channel (or server-wide), then try again. :::
