Open-source Discord music bot powered by discord.py, Lavalink, MongoDB, and the bundled CytechLink audio client.
Important
Project status: Revived / Maintenance Mode
CytechMusic has been reopened to keep the public release installable, compatible, secure, and maintainable. The revival focuses on bug fixes, dependency updates, code quality, documentation, and compatibility patches. Major new features are not planned here.
Cyori remains the active next-generation project. CytechMusic is the public community edition and maintenance line.
- Keep the existing feature set working on supported Python and Discord/Lavalink stacks.
- Patch bugs, compatibility problems, and security issues.
- Clean technical debt where it can be done without changing expected behaviour.
- Improve automated checks and documentation.
- Keep self-hosting straightforward.
- Avoid feature creep and large rewrites; new product development belongs in Cyori.
- Lavalink-backed playback.
- YouTube, Spotify, SoundCloud, and other sources supported by the configured Lavalink node.
- Play, pause, skip, stop, seek, volume, loop, shuffle, and queue controls.
- Queue pagination, removal, and ordering tools.
- Nightcore, Vaporwave, and 8D presets.
- Speed, karaoke, tremolo, vibrato, rotation, distortion, low-pass, and channel-mix controls.
- English and Thai language support.
- DJ role and DJ mode.
- Vote-gated features.
- 24/7 mode and autoplay.
- Dedicated music channel/controller setup.
- Embedded web dashboard/API.
- Uptime, CPU/RAM, latency, and Lavalink status information.
- Dynamic help and bot information commands.
- Python 3.10+
- MongoDB
- Lavalink v3 or v4 compatible with the bundled CytechLink implementation
- FFmpeg where required by your deployment
git clone https://github.com/Cytech-Team/CytechMusic.git
cd CytechMusic
python -m venv .venvActivate the virtual environment and install dependencies:
python -m pip install --upgrade pip
python -m pip install -r requirements.txtCopy the environment template:
cp .env.example .envFill in at minimum your Discord bot token, MongoDB connection, and Lavalink connection details, then start the bot:
python main.pyCaution
Never commit .env, bot tokens, API keys, database credentials, or webhook secrets. The provided .gitignore excludes common local environment files.
The complete public configuration template is in .env.example. Optional integrations such as Spotify, Top.gg, Stripe, remote logging, and cross-server role synchronisation can be left unset when unused.
For cross-server role synchronisation, configure SOURCE_GUILD_ID and SYNC_ROLE_ID only if you intentionally use that feature. The public template leaves both disabled by default.
discord.py- MongoDB / Motor / PyMongo
- Lavalink + bundled CytechLink
aiohttpweb API/dashboard- Optional Stripe, Spotify, Top.gg, and lyrics integrations
| Command | Description |
|---|---|
/play [query] |
Play a song or playlist from a URL or search. |
/stop |
Stop playback and clear the queue. |
/skip |
Skip the current song. |
/pause |
Pause or resume playback. |
/volume [1-200] |
Adjust playback volume. |
/queue |
Show the current queue. |
/loop |
Toggle track/queue looping. |
/seek [time] |
Seek to a timestamp such as 1:30. |
/nowplaying |
Show current track information and controls. |
Accepted changes are primarily:
- bug fixes;
- compatibility patches;
- dependency/security updates;
- reliability and performance fixes;
- tests, CI, documentation, and safe refactors.
Large new features should target Cyori instead of expanding CytechMusic's scope again.
Pull requests are welcome. Please keep changes focused and preserve existing behaviour unless the change fixes a documented bug or compatibility issue.
Distributed under the MIT License.
Developed and maintained by Cytech Team Development.
Updated automatically from GitHub's dated stargazers. Only currently starred accounts are included.
