Zira Music
Zira Music: Getting Started
High quality music for your server: invite the bot, play your first song, and unlock the web player.
Zira Music brings high quality music playback to your server, with playlists, liked songs, and a full web player in the Zira dashboard.
Inviting Zira Music#
There are two Zira Music bots, so a busy server can run music in two voice channels at once: one bot in each. Invite either (or both) from the Zira dashboard: open your server, pick Player under Zira Music, and click the invite button. The only thing they will not do is share one voice channel: if a bot is already playing in the channel you are in and you ask the other one to start, it tells you which bot is there, so use that one or pick a different channel.
Already have Zira in your server? The dashboard's Zira Music pages light up as soon as the music bot joins. If you only have Zira Music, add Zira to unlock the dashboard.
Playing music#
Join a voice channel and use /play with a song name. Zira Music searches its full high quality library, new releases included; pick a result and it starts playing right away, even if we have never played that song before.
Playing from a link#
You can also paste a link into /play, for example a YouTube or Spotify link to a song or a YouTube playlist. Zira Music always plays its own high quality copy of the song, never the original site, so it looks the song up in its library first:
- The song is in the library: it plays right away, and the reply shows the song it found.
- The song is not in the library: nothing is queued, and Zira Music tells you so. Search for the song by name with
/playinstead and pick it from the results. - A playlist link: the songs in the library play in order, and any song the library does not have is skipped. If none of the first few songs are in the library, the playlist is not queued.
- A link Zira Music cannot read (for example SoundCloud, or a Spotify album or playlist): you get an "I can't play that link" message. For a Spotify playlist, use Spotify import instead.
Podcasts, long mixes, livestreams and other videos that are not a single song are not in the library, so they cannot be played.
Useful commands:
| Command | What it does |
|---|---|
/play <search or link> | Search the library and pick a song, or play a song or playlist from a link |
/search <search> | Same as /play: show library results and let you choose what to queue |
/queue | Show the paginated queue. DJs can remove a song from the page |
/remove <song number> | Remove one queued song |
/skip | Vote to skip. DJs and members with Move Members skip instantly |
/pause, /resume | Pause and resume playback |
/stop | Stop playback and clear the queue |
/shuffle | Randomize the queue |
/loop | Loop one song, the whole queue, or turn looping off |
/volume <0-200> | Set volume. Free servers stop at 100; Premium allows 200 |
/player | Post a fresh copy of the player controls in the current text channel |
/join, /leave | Join or leave voice. The force option requires a DJ role or Move Members |
/like | Save the current song to your Liked Songs |
/filter | Apply or clear an audio filter. Premium and DJ controlled |
/nonstop start, /nonstop stop | Start or stop persistent 24/7 playback. Premium |
/download | Download media from a supported URL. Premium; Discord upload limits still apply |
/invite, /info, /stats | Invite the bot or view bot and playback statistics |
Every now playing message has a heart button: click it and the song lands in your personal Liked Songs playlist.
The web player#
Open your server in the dashboard and pick Player under Zira Music. From your browser you can:
- See what's playing with live progress
- Search the library and queue songs without typing commands
- Pause, skip, shuffle, loop, and set the volume
- Reorder or remove queued songs
- Start and stop 24/7 non-stop mode (Premium)
The History page lists recently played songs for the selected music bot. Premium expands the history and adds 30-day top-track and top-requester summaries. History is separate for each Zira Music bot, while personal playlists remain shared.
DJ roles and control#
By default anyone can control the music, and skipping is by vote. In Music Settings on the dashboard (or /config) you can:
- Add DJ roles: DJs skip instantly and can force join/leave/stop
- Turn on DJ-only mode so only DJs control playback
- Set the vote-skip threshold and the default volume
- Choose a fixed channel for now playing messages, or turn them off
Each Zira Music bot keeps its own settings. If you run both music bots, configure each one separately: use its tab on the dashboard, or run /config on that bot. Your playlists and Liked Songs are shared, so they work with every Zira Music bot.
Music settings, one by one#
| Setting | What happens |
|---|---|
| DJ roles | Members with any selected role bypass skip voting and may force join, leave, and stop |
| DJ-only mode | Only DJs can control music. Set at least one DJ role first |
| Skip threshold | Percentage of human listeners whose votes are needed to skip, from 1 to 100 |
| Default volume | Volume used every time this music bot joins, including /join and 24/7 Non-stop. Values above 100 need Premium. /volume overrides it for the rest of the session |
| Now playing announcements | Turns player messages on or off |
| Announcement channel | Sends player messages to one fixed text channel. Leave it empty to use the command channel |
| Autoplay | When the queue ends, Premium servers continue with similar songs |
The equivalent Discord commands are /config djs add|remove|list, /config dj-only, /config skip-threshold, /config default-volume, /config notify, /config announce-channel, and /config autoplay.
Voice and text permissions#
Zira Music needs to View and Connect to the voice channel, Speak, and use voice activity. It needs View Channel, Send Messages, and Embed Links in the text channel used for commands or now playing messages. Stage channels may also require permission to speak.
If the bot is already busy elsewhere, join its channel or ask a DJ to use the force option. Non-stop mode must be stopped before the bot can be moved or disconnected.