Skip to content

NotKeKe/TuneZ-Discord-Bot

Repository files navigation

TuneZ

A Python-based Discord bot that works out-of-the-box for anyone who needs to play music on Discord.

Stars

License
Docs Docs

📖 Preface

Why did I make this?
  • A while back, a friend asked me for YinXi (my other bot). Later, I read a post by YeeCord and realized just how difficult maintaining music bots has become these days.
  • Since I already had YinXi, I thought: if I just split out the music-related code and made a dedicated music bot, would it go viral?
  • Plus, if yt-dlp keeps sending requests from the same IP, it's super easy to get hit with 403 (Forbidden) errors or other issues. (This is probably why there are fewer and fewer music bots; finding a stable source is genuinely tough)
    But if every user just self-hosts their own Discord bot based on their own needs, wouldn't that solve the problem?
  • So, I made TuneZ.
Why is it called TuneZ?
  • The reason is actually super simple.
  • I just asked Copilot to come up with a name, and it gave me "Tune".
    Then I thought, people born around the year 2000 are called Gen Z.
    So "Z" appeared.
    Combine them, and you get TuneZ.
Are there any risks?
  • The answer is also simple: not if you use it for yourself.
  • Usually, nothing bad happens with this kind of stuff if you use it yourself or just let friends use it.
  • Unless you decide to use it for profit.
    Then you can't blame me :)
    I'm not taking responsibility for that.

🖥️ Demo

TuneZ supports Chinese. It's just showing English because my Discord default language is English. Demo

🌟 Features

Comes with light blue animated emojis
Customizable emojis ❗Pay attention to image filenames (excluding extension); they must match the filenames in assets/emojis Example: list.giflist.png
  • On Windows, go to C:\Users\USERNAME\AppData\Roaming\Easy Music Bot\data\emojis and you can put your own images there.
  • In other environments, upload custom images to ./data/emojis/.
  • Finally, use /reload_emojis in your Discord channel to reload the emojis.
Simple and easy to start
  • Windows users can open TuneZ directly via the .exe file.
  • Users in other environments can launch it directly using Docker.
  • Or, after installing dependencies, just run main.py.

🛠️ Usage

1. If you simply want a Discord music bot, you can just invite YinXi to your server. This was my very first project.

2. Self-hosting (Since you clicked on this project, I assume this is what you'll choose)

❗If you don't have a Discord Bot yet, go to this file for a tutorial first❗

❗Except for using the .exe, other methods currently require you to Clone/Download the project first❗
git clone https://github.com/NotKeKe/TuneZ-Discord-Bot.git

  • Windows

    Using .exe
    • Go to Releases and download the version that suits you (currently there should only be an .exe)
    • Run windows.exe
      After running it, it will normally close itself first because it's just copying necessary resources out.
    • Go to the Roaming directory
      It should usually be in this format (change USERNAME to your own and you should find it): C:\Users\USERNAME\AppData\Roaming\Easy Music Bot
    • Find .env and open it with any text editor you like.
    • Enter your DISCORD_TOKEN
      Paste the Bot Token you just created on the Discord Developer site into DISCORD_TOKEN. The result should look like this:
      DISCORD_TOKEN = MTQ0Nz.....
      OWNER_ID = OWNER_ID
      (OWNER_ID is your own Discord ID. Everyone's is different. Mine is 7038778.... It's fine even if you leave it blank; currently, it's only used when `reload_emojis` is needed.)
    • Re-open windows.exe
    Now, you should see it starting up normally.
    Use /play to start playing music!
  • Docker

    Docker Compose
    • Rename .env.example to .env
      cp .env.example .env
    • Fill in your own Discord Bot Token
      Something like this:
      DISCORD_TOKEN = MTQ0Nz.....
      OWNER_ID = OWNER_ID
      (OWNER_ID is your own Discord ID. Everyone's is different. Mine is 7038778.... It's fine even if you leave it blank; currently, it's only used when `reload_emojis` is needed.)
    • Create logs and data directories
      (logs are mainly for checking errors; data is for storing user custom playlists, url cache, etc...)
      mkdir -p data logs
    • Start with docker compose
      docker compose up -d
    The Bot should be up and running successfully!
  • uv

    This project uses uv to manage dependencies and virtual environments (venv), so I'm recommending uv here.
    • Install uv (Pick the method that suits you best)
      • Using pip:
        pip install uv
      • Windows:
        powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
      • macOS or Linux:
        curl -LsSf https://astral.sh/uv/install.sh | sh
      • For more methods, visit the uv official site
    • Rename .env.example to .env
    • In .env, fill in your Token
      Something like this:
      DISCORD_TOKEN = MTQ0Nz.....
      OWNER_ID = OWNER_ID
      (OWNER_ID is your own Discord ID. Everyone's is different. Mine is 7038778.... It's fine even if you leave it blank; currently, it's only used when `reload_emojis` is needed.)
    • Sync the virtual environment
      uv sync
    • Run the program
      uv run main.py

Postscript (?

  • Remember to give me a Star if you succeed! It's my source of motivation!
  • No matter what problems or bugs you encounter, you can raise them in issue
    • Hope I can answer them

About

A simple, user‑friendly Discord music bot designed for everyone.

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Contributors