{"id":30660606,"url":"https://github.com/giabb/dismu","last_synced_at":"2025-08-31T14:11:38.003Z","repository":{"id":309974780,"uuid":"1038152931","full_name":"giabb/DisMu","owner":"giabb","description":"A Discord Music Bot with comprehensive audio playback capabilities. The bot supports playing music from YouTube URLs, playlists, search functionality, and queue management across multiple Discord guilds.","archived":false,"fork":false,"pushed_at":"2025-08-25T15:21:50.000Z","size":40,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-25T17:32:45.634Z","etag":null,"topics":["container","discord-bot","discord-py","dockerfile","python","self-hosted","yt-dlp"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/giabb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-14T17:51:06.000Z","updated_at":"2025-08-25T15:21:53.000Z","dependencies_parsed_at":"2025-08-14T23:25:35.852Z","dependency_job_id":"6b31bb20-a76f-4127-9704-fb9aaaa21e94","html_url":"https://github.com/giabb/DisMu","commit_stats":null,"previous_names":["giabb/dismu"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/giabb/DisMu","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giabb%2FDisMu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giabb%2FDisMu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giabb%2FDisMu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giabb%2FDisMu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/giabb","download_url":"https://codeload.github.com/giabb/DisMu/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giabb%2FDisMu/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272988919,"owners_count":25026961,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-31T02:00:09.071Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["container","discord-bot","discord-py","dockerfile","python","self-hosted","yt-dlp"],"created_at":"2025-08-31T14:11:37.302Z","updated_at":"2025-08-31T14:11:37.991Z","avatar_url":"https://github.com/giabb.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003ch1\u003eDisMu\u003c/h1\u003e\n\u003cdiv style=\"display: flex; align-items: center; justify-content: center; gap: 20px; border: none;\"\u003e\n\u003cdiv\u003e\n\u003cimg src=\"https://i.ibb.co/gZf37YW8/DisMu.png\" alt=\"Bot Logo\" width=\"150\"\u003e\n\u003c/div\u003e\n\u003cdiv\u003e\n\n**A powerful Discord Music Bot with comprehensive audio playback capabilities**\n\n[![Python](https://img.shields.io/badge/Python-3.12+-blue.svg)](https://python.org)\n[![License](https://img.shields.io/badge/License-GPL%203.0-red.svg)](LICENSE.md) \n[![Docker](https://img.shields.io/badge/Docker-Supported-blue.svg)](https://docker.com)\n\n[Features](#-features) • [Installation](#-installation) • [Configuration](#-configuration) • [Contributing](#-configuration)\n\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n## 📋 Table of Contents\n- [✨ Features](#-features)\n- [📋 Prerequisites](#-prerequisites)\n- [🚀 Installation](#-installation)\n  - [🐳 Docker Installation (Recommended)](#-docker-installation-recommended)\n  - [🔧 Manual Installation](#-manual-installation)\n- [⚙️ Configuration](#-configuration)\n- [🎯 Usage](#-usage)\n- [⚠️ Known Issues](#️-known-issues)\n- [🗺️ Roadmap](#️-roadmap)\n- [🤝 Contributing](#-contributing)\n- [👥 Contributors](#-contributors)\n- [📄 License](#-license)\n- [🙏 Credits](#-credits)\n\n## ✨ Features\n\n### 🎶 **Core Features**\n- **YouTube Integration**: Play music from URLs, playlists, and search results\n- **Multi-Guild Support**: Individual settings and queues per Discord server\n- **Advanced Queue Management**: Add, remove, shuffle, bump, and reorder tracks\n- **Playlist Support**: Import entire YouTube playlists with automatic shuffling\n- **Interactive Search**: Browse and select from YouTube search results\n- **Paginated Interfaces**: Clean, navigable embeds for queues and search results\n- **Auto-Cleanup**: Automatic message deletion to keep channels tidy\n- **Error Handling**: Graceful error management with user-friendly messages\n\n## 📋 Prerequisites\n\n### 🐳 **Docker Installation (Recommended)**\n- [Docker](https://docs.docker.com/get-docker/) installed on your system\n- [Docker Compose](https://docs.docker.com/compose/install/) (usually included with Docker)\n\n### 🔧 **Manual Installation**\n- **Python**: 3.12 or higher\n- **FFmpeg**: [Download and install](https://ffmpeg.org/download.html)\n- **Python Dependencies**: Choose one option:\n  - Use `requirements.txt` with pip\n  - Use `pyproject.toml` with [Poetry](https://python-poetry.org/)\n  - Install manually: `discord.py 2.5.2+`, `PyNaCl 1.5.0+`, `python-dotenv 1.1.1+`, `yt-dlp (latest)`\n\n## 🚀 Installation\n\n### Step 1: Environment Configuration\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/giabb/DisMu.git\n   cd DisMu\n   ```\n\n2. **Create environment file**\n   ```bash\n   cp .env.sample .env\n   ```\n\n3. **Get your Discord Bot Token**\n   - Follow this [comprehensive guide](https://www.writebots.com/discord-bot-token/)\n   - Ensure your bot has these Discord permissions:\n      - ✅ Connect to Voice Channels\n      - ✅ Speak in Voice Channels  \n      - ✅ Send Messages\n      - ✅ Embed Links\n      - ✅ Read Message History\n      - ✅ Manage Messages (for cleanup)\n\n4. **Configure your `.env` file**\n   ```env\n   # Required\n   BOT_TOKEN=your_discord_bot_token_here\n   \n   # Optional (defaults provided)\n   DEFAULT_PREFIX=%\n   DEFAULT_DELETE_TIME=15\n   EMBED_AUTODELETE=60\n   SEARCH_TIMEOUT=60\n   ```\n\n### 🐳 **Docker Installation (Recommended)**\n\n**Quick Start:**\n```bash\ndocker compose up --build -d\n```\n\n**Reference for other docker compose commands:**\n```bash\ndocker compose logs -f  # View logs in real time\ndocker compose down     # Stop and remove the container\ndocker compose stop     # Stop the container\ndocker compose restart  # Restart the container (if stopped)\n```\n\n### 🔧 **Manual Installation**\n\n1. **Install Python dependencies**\n   \n   **Using pip:**\n   ```bash\n   python -m venv .venv\n   source .venv/bin/activate\n   pip install -r requirements.txt\n   ```\n   \n   **Using Poetry:**\n   ```bash\n   poetry config virtualenvs.in-project true # This will create the .venv folder inside the project\n   poetry install --no-root\n   source .venv/bin/activate\n   ```\n\n2. **Run the bot**\n   ```bash\n   python -m src.main\n   ```\n\n## ⚙️ Configuration\n\n### Environment Variables\n\n| Variable              | Default    | Description                               |\n|-----------------------|------------|-------------------------------------------|\n| `BOT_TOKEN`           | *Required* | Your Discord bot token                    |\n| `DEFAULT_PREFIX`      | `%`        | Command prefix for the bot                |\n| `DEFAULT_DELETE_TIME` | `15`       | Seconds before auto-deleting messages     |\n| `EMBED_AUTODELETE`    | `60`       | Seconds before auto-deleting embeds       |\n| `SEARCH_TIMEOUT`      | `60`       | Seconds to wait for user search selection |\n\n## 🎯 Usage\n\nOnce the bot is running and invited to your server:\n\n1. **Test the bot**: Type `%help` (or your configured prefix)\n2. **Join a voice channel** and use `%join` to connect the bot\n3. **Play music**: `%play \u003cYouTube URL\u003e` or `%search \u003csong name\u003e`\n4. **Explore commands**: Use `%help` to see all available commands\n\n\u003e **📚 For detailed command documentation, visit the [Wiki](https://github.com/giabb/DisMu/wiki/Extensive-Command-Guide)**\n\n## ⚠️ Known Issues\n\nCurrently, there are no known major issues. \n\nIf you encounter any problems:\n1. Check the [Issues](https://github.com/giabb/DisMu/issues) page\n2. Create a new issue with detailed information\n3. Include logs and steps to reproduce\n\n## 🗺️ Roadmap\n\n### 🔄 **Upcoming Features**\n\n- [ ] **Enhanced Commands**: Additional queue management and playback options\n- [ ] **Playlist Persistence**: Save and load custom playlists\n- [ ] **Spotify Integration**: Play tracks from Spotify playlists\n\n## 🤝 Contributing\n\nWe love contributions! Here's how you can help:\n\n### 🐛 **Bug Reports**\n- Use the [issue tracker](https://github.com/giabb/DisMu/issues)\n- Include detailed reproduction steps\n- Provide error logs and environment details\n\n### 🚀 **Feature Requests**\n- Describe the feature and its benefits\n- Provide use cases and examples\n- Discuss implementation approaches\n\n### 💻 **Code Contributions**\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes with proper documentation\n4. Commit your changes\n5. Push to the branch\n6. Open a Pull Request\n\n### 📝 **Documentation**\n- Improve README or Wiki pages\n- Add code comments and docstrings\n- Create tutorials and guides\n\n## 👥 Contributors\n\n\u003cdiv align=\"center\"\u003e\n\n**Project Creator \u0026 Maintainer**\n\n[![Giovanbattista Abbate](https://github.com/giabb.png?size=100)](https://github.com/giabb)\n\n**[Giovanbattista Abbate](https://github.com/giabb)**\n\n\u003c/div\u003e\n\n---\n\n*Want to contribute? See the [Contributing](#-contributing) section above!*\n\n## 📄 License\n\nThis project is licensed under the **GNU General Public License v3.0**.\n\nThis means you can:\n- ✅ Use the software for any purpose\n- ✅ Study and modify the source code\n- ✅ Distribute copies of the software\n- ✅ Distribute modified versions\n\n**Requirements:**\n- 📋 Include the original license\n- 📋 State changes made to the code\n- 📋 Make source code available when distributing\n\nSee the [LICENSE.md](LICENSE.md) file for complete details.\n\n## 🙏 Credits\n\n- **README Template**: Inspired by [PurpleBooth](https://github.com/PurpleBooth)\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**Made with ❤️ for the Discord community**\n\n[⭐ Star this repo](https://github.com/giabb/DisMu) • [🐛 Report Issues](https://github.com/giabb/DisMu/issues) • [💬 Discussions](https://github.com/giabb/DisMu/discussions)\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiabb%2Fdismu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgiabb%2Fdismu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiabb%2Fdismu/lists"}