Skip to content

Yanoee/DJDikkat_MusicBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

102 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Logo

License Node.js Discord.js NodeLink Shoukaku Website Free Forever

๐ŸŽง DJ DIKKAT - Free Discord Music Bot

A free, open source Discord music bot with Spotify and YouTube support.
No ads. No premium. No BS. Built by one person, free for everyone.


๐ŸŒ Website โ€ข ๐Ÿ“จ Invite Bot โ€ข โญ Vote on Top.gg โ€ข โค๏ธ Support on Patreon โ€ข ๐Ÿ’ป Report a Bug


๐Ÿ”ง Features

  • Multi-source playback - Search by name, paste a YouTube, Spotify, or SoundCloud URL. Tracks, albums, and playlists all work. YouTube Music is tried first, YouTube second, SoundCloud as final fallback.
  • Spotify support - Resolves Spotify tracks, albums, and full playlists to YouTube via the Spotify Web API. No Spotify premium account needed on your end.
  • Interactive player card - A persistent embed in your text channel with live controls. No need to type commands - everything is a button click.
  • 3-state loop - Cycles Off ~ Track ~ Queue ~ Off. Toggle any time from the player card or /play.
  • Queue shuffle - Fisher-Yates shuffle applied instantly, reflected live in the card.
  • Play history - Per-guild log of up to 200 tracks with timestamps and requester info. Paginated and sent to your DM via /history.
  • Stats tracking - Per-guild stats: most-played songs, top users, daily and weekly breakdowns. Data older than 30 days is pruned automatically.
  • Auto-disconnect - Bot leaves after 5 minutes of idle. No manual cleanup needed.
  • Idle player card - When the queue empties, the card stays with a live countdown and a "Play Again" button for the last track.
  • Clean chat - Player card is deleted and reposted fresh with each new song. Stale cards from previous sessions are cleaned up on startup.
  • Auto-leave on empty voice - Bot disconnects immediately when the last human leaves the voice channel.
  • Voice channel status - Updates the voice channel status to show the currently playing track.
  • Weekly announcements - Sends an informational embed to each guild every 7 days (dismissible by admins).
  • Owner welcome DM - When added to a new server, the owner gets a DM with a quick-start guide and required permissions list.
  • Per-guild data isolation - History, stats, and settings live in separate JSON files per guild. One guild can never touch another's data.

๐Ÿ“Ÿ Commands

Command Description
/play <query> Search by name or paste a YouTube, Spotify, or SoundCloud URL. Tracks, albums, and playlists all work. Queue cap: 5 tracks.
/pause Pause or resume the current track.
/skip Skip the current track immediately.
/stop Stop playback and clear the queue. Bot stays in voice.
/queue Show the current queue with requester info. Paginated, 10 tracks per page.
/history View recently played tracks for this server. Paginated, sent via DM.
/stats Show music stats - top songs, top users, today's top, and weekly top. Auto-deletes after 3 minutes if nothing is playing.
/disconnect Stop everything and disconnect the bot from voice.
/health (Admin only) Full health report sent via DM - Discord ping, RAM, CPU, NodeLink stats, uptime, and last update info.

Player Card Buttons

When music is playing, a rich embed appears in your text channel:

Row 1

Button Action
โธ / โ–ถ๏ธ Pause / Resume
โญ๏ธ Skip to next track
โน๏ธ Stop playback

Row 2

Button Action
๐Ÿ” / ๐Ÿ”‚ Cycle loop mode (Off ~ Track ~ Queue ~ Off)
๐Ÿ”€ Shuffle the queue
๐Ÿ“œ View the queue
๐Ÿงน Clear the queue

When idle (queue empty)

Button Action
โฎ๏ธ Play Again Re-queue the last played track
๐Ÿ”Œ Disconnect the bot

Buttons have a 5-second per-user cooldown to prevent spam.


๐Ÿ›  Tech Stack

  • Debian 12 (Bookworm) - production server environment
  • Node.js โ‰ฅ 18 - runtime
  • Discord.js v14 - Discord API wrapper
  • Shoukaku v4 - NodeLink/Lavalink client for Node.js
  • NodeLink - audio streaming backend
  • Spotify Web API - track metadata and resolution for Spotify links
  • dotenv - environment variable management
  • Plain JavaScript - no framework, no bloat

๐Ÿ–ค Dedication

This project is dedicated to DJ Dikkat (Mehmet Aykฤฑn).
It is not official, not affiliated, and not monetized, just a small personal tribute built with respect.


โค๏ธ Support the Project

DJ DIKKAT is free forever. If it saved you from paying for another bot, consider supporting on Patreon.

~ patreon.com/Yanoee

Every patron helps keep the server running. Nothing is ever required.


๐Ÿ“œ License

MIT - do what you want, just don't claim it's yours.

Author