djsnake

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.

YouTubeLinks, playlists and lives
SpotifyTracks, albums and playlists
SoundCloud, BandcampTracks and sets
Deezer, Apple MusicTracks, albums and playlists
Twitch, radiosChannels, Icecast, Shoutcast, .pls, .m3u

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