Skip to content
Notice

We know about some playback issues and are finishing a release that fixes them. Thanks for bearing with us.

Playing music

Playing music

What /play accepts, how Orpheus finds the version of a song you meant, and the commands for the queue.

What you can give /play

A link. YouTube, Spotify, SoundCloud, Bandcamp and Vimeo links work, and so do direct links to audio. Apple Music links don't work yet, and Orpheus tells you so if you paste one.

A playlist or album link. Orpheus queues up to 200 tracks from it. If the link had more than that, the reply tells you and points you at /playlist import, which can take the rest.

Some words. For example /play query: pink pony club. Orpheus searches YouTube. If YouTube comes back with nothing, or with results that don't fit what you typed, it also checks SoundCloud and uses whichever answer fits your words better. That's how tracks that only exist on SoundCloud still turn up.

Suggestions while you type

Once you've typed three characters, /play shows up to 10 suggestions from the Deezer music catalogue, each with its title, artist and length.

Picking a suggestion is more precise than typing. Orpheus looks that exact release up again, so it knows the real title, artist and length, and uses them to check what it finds on YouTube.

If you paste a link, you get a single suggestion naming the service. When Orpheus can look the link up quickly, it shows the track's name too. Links longer than 100 characters get no suggestion (usually Spotify share links with tracking on the end), but pressing enter still plays them.

How Orpheus picks the right song

YouTube returns plenty of near misses: lyric videos, sped-up edits, hour-long loops and covers. Orpheus checks results before it queues one.

When it knows which song you mean

It knows when you picked a suggestion, or when the top catalogue answer covers every word you typed and most of those words are the song's title. For example, /play query: stuck in my head youth only counts if the catalogue's answer is by an artist called Youth.

Each YouTube result is then checked for:

  • Title. It has to be the same song title. A longer title that only contains yours, such as a medley, fails.
  • Artist. The artist has to appear in the uploader's name or in the title. Orpheus accepts a copy from a lyric channel when its length matches the release.
  • Length. It has to be within 20 seconds, or within 20%, of the release's length. This stops an hour-long loop standing in for a three-minute song.
  • Versions you didn't ask for. See Versions you have to ask for.
  • Live streams. Orpheus refuses them when it expects a song with a fixed length.

The best result that passes every check wins. Uploads from the artist's own channel get a small edge over other copies: a "- Topic" channel, a VEVO channel or a channel with the artist's name.

If nothing passes, Orpheus searches once more using the song's proper title and artist. If that fails too, it still plays the best match for your words as long as the title is right and it isn't a version you didn't ask for. Otherwise you get "Nothing found".

When it doesn't

If the catalogue can't say what you meant, Orpheus scores each result on how many of your words appear in its title and uploader. It takes points off for every version you didn't type. The highest score wins. When two results tie, YouTube's own order decides.

Versions you have to ask for

Orpheus refuses these or ranks them lower unless your request includes the word:

remix, sped up, slowed, reverb, nightcore, cover, karaoke, instrumental, acoustic, live, 8D, bass boosted, extended, "10 hours" style lengths, loop, mashup, bootleg and a cappella.

So /play query: blinding lights gets the original, and /play query: blinding lights sped up gets the sped-up one.

"Live" only counts when it describes a recording, like "(Live)", "Live at Wembley" or a title ending in "- Live". A song called "Live Forever" is fine.

How to play Spotify music in Discord compares this with Spotify's own Listen Along.

Spotify only gives Orpheus the track's details, so Orpheus finds a playable copy and checks it:

  1. It searches YouTube for the track's ISRC, the recording's ID code. Orpheus treats a hit there as the recording.
  2. Otherwise it searches YouTube for the title and artist, then SoundCloud, then YouTube for the title alone. The top five results each time go through the checks above.

If none of them pass, Orpheus queues nothing and tells you it found the track but couldn't find a copy it's confident is the same recording. Searching for the song by name sometimes finds a version it can check.

If Spotify itself isn't answering, Orpheus reads the details from Spotify's public embed page instead. Orpheus then matches a single track on title, artist and length. If all it can find out is the title, it won't guess, and asks you to search by name and artist. It queues a playlist or album by name, matches each track when its turn comes, and skips any it can't match.

Some YouTube videos refuse to play without a login, such as age-restricted uploads and some official music channels. When that happens Orpheus looks for a different upload of the same song, using the same checks, and tells you it found another copy.

/search query: <words> shows you up to 10 results in a menu only you can see. You can pick where to search: YouTube, which is the default, SoundCloud or Spotify.

Searching doesn't make Orpheus join a channel. It joins when you pick a result, and you need to be in a voice channel by then. If Orpheus is already playing in a different voice channel, it refuses your pick.

Orpheus queues a YouTube or SoundCloud result exactly as you picked it. A Spotify result only carries the track's details, so Orpheus finds a playable copy and checks it the same way it checks a Spotify link. If no copy passes, Orpheus queues nothing and tells you. Run /search again to choose something else.

Orpheus keeps the results for 5 minutes. After that, run /search again.

Adding from the dashboard

Adding a song or link from the dashboard goes through the same steps as /play. It uses the same search, checks, SoundCloud fallback and Spotify handling, with the same limit of 200 tracks from a playlist or album link. Suggestions while you type are only in /play. See The dashboard.

The queue

  • /queue shows what's coming up, 10 tracks per page, with buttons to change page and a menu that moves a track to the front. Only you see it. /queue page: 3 jumps straight to a page.
  • /remove position: 4 takes track 4 out. The numbers match what /queue shows.
  • /move from: 6 to: 1 moves track 6 so it plays next.
  • /shuffle shuffles the upcoming tracks.
  • /loop mode: repeats nothing, this track or the whole queue.
  • /seek to: jumps within the current track. It accepts 1:30, 90, 2m15s, or +30 and -10 to jump from where you are. Live streams can't be seeked.
  • /clear empties the upcoming queue and lets the current track play out. If a radio station is running, /clear ends the station too, and if the station picked the current track, it stops that as well.
  • /skip skips. Skipping the last track ends the queue, and autoplay or radio take over if they're on.
  • /stop stops, clears the queue, ends any radio station and leaves.

Every command and its options are listed on the commands page.

When a track won't play

Orpheus tries a couple of things before giving up on a track:

  1. It fetches the same YouTube video a second way.
  2. If that fails, it looks for the same song on SoundCloud, then Bandcamp, and only accepts a copy that passes the title, artist and length checks. Orpheus puts the stand-in next in the queue. This happens once per track.

If none of that works you'll see a short "Could not play" message and it moves on.

If three tracks in a row fail, Orpheus stops and posts a message saying the source is probably having problems. A track counts as working once it has played for 10 seconds. Orpheus keeps your queue, so press play or use /play once things recover.