Features
What djsnake does in a voice channel
One bot, one queue per server, and a web page anyone in the channel can open.
Most links just work.
Plain text works too: the bot picks the best YouTube match.
The clip page
It opens from the link the bot posts in the channel.
- Video and lyrics in sync
A muted video follows the audio, and synced lyrics from LRCLIB scroll over it.
- Controls on the web
Next, pause, seek, reorder, add a link or search by text.
- Two links
A control link, and a view-only link that is safe to share.
- Eight themes
Eight preset looks, plus your own colours, name and logo.
- Installs as an app
Add it to your home screen or desktop. Lock screen, headset and media keys can control it.
- Listening stats
Top tracks and artists, hours played and peak listeners, per server.
The sound
- Automix, always on
Loudness normalised to -14 LUFS, silence trimmed, tracks faded.
- Filters mid-track
Bass boost, nightcore, 8D, karaoke. The track does not restart.
- Optional crossfade
Turn it on for a session with
!crossfade on.
Queue and control
- One queue per server
Loop, autoplay, saved playlists, vote to skip, a DJ role and a 24/7 mode.
- Two forms for every command
Every command works with
!and as a slash command. - Queue limits
Queue size, tracks per member, track length and a cooldown, per server.
- Four languages
The bot and the clip page speak English, French, Spanish and German.
- Last.fm, optional
Each member can link an account to scrobble what they hear.
- Backups and metrics
Checksummed backups of your data, and Prometheus metrics if you turn them on.
What it does not do
- Video stops at 720p
Long playlists load 30 tracks unless you ask for the whole list, up to 200.
- It does not play from Spotify
Spotify, Deezer and Apple Music links are matched on YouTube, and the match can occasionally be the wrong version.
- Long Spotify lists need a key
Without your own Spotify API credentials, a list stops at 100 tracks. Private playlists cannot be read.
- Personal use
Respect YouTube's Terms of Service and the rights of the people whose videos you play.
Get djsnake running
Create a bot in the Discord Developer Portal and set its token. The rest is in the docs.
$ git clone https://github.com/selfhostr/djsnake.git
$ cd djsnake && cp .env.example .env # set DISCORD_TOKEN
$ docker compose pull && docker compose up -d