Music bot for mumble
Go to file
2025-06-21 11:47:06 -06:00
bin Improved dashboard and music queue 2025-06-21 11:47:06 -06:00
lib Improved dashboard and music queue 2025-06-21 11:47:06 -06:00
scripts It works baby, seems like timing could be improved or something, but it freakin works 2025-06-18 20:59:24 -06:00
test Improved dashboard and music queue 2025-06-21 11:47:06 -06:00
web Improved dashboard and music queue 2025-06-21 11:47:06 -06:00
.envrc Initial commit 2025-06-18 10:07:27 -06:00
.gitignore Improved dashboard and music queue 2025-06-21 11:47:06 -06:00
analysis_options.yaml Initial commit 2025-06-18 10:07:27 -06:00
build.yaml It works baby, seems like timing could be improved or something, but it freakin works 2025-06-18 20:59:24 -06:00
config.json It works baby, seems like timing could be improved or something, but it freakin works 2025-06-18 20:59:24 -06:00
dart_test.yaml It works baby, seems like timing could be improved or something, but it freakin works 2025-06-18 20:59:24 -06:00
dev-compose.yml It works baby, seems like timing could be improved or something, but it freakin works 2025-06-18 20:59:24 -06:00
docker-compose.yml It works baby, seems like timing could be improved or something, but it freakin works 2025-06-18 20:59:24 -06:00
flake.lock Initial commit 2025-06-18 10:07:27 -06:00
flake.nix Improved dashboard and music queue 2025-06-21 11:47:06 -06:00
pubspec.lock It works baby, seems like timing could be improved or something, but it freakin works 2025-06-18 20:59:24 -06:00
pubspec.yaml It works baby, seems like timing could be improved or something, but it freakin works 2025-06-18 20:59:24 -06:00
README.md It works baby, seems like timing could be improved or something, but it freakin works 2025-06-18 20:59:24 -06:00
ROADMAP.md It works baby, seems like timing could be improved or something, but it freakin works 2025-06-18 20:59:24 -06:00

MumBullet - Mumble Music Bot

A Dart-based framework for building a music bot that connects to Mumble servers, processes chat commands, downloads audio from URLs, and streams audio back to the server with queue management and admin dashboard functionality.

Current Status

This project is currently in development. The framework and architecture are set up, but the Mumble connectivity is not yet implemented due to limitations in the dumble library documentation.

What Works

  • Configuration management
  • Logging system
  • Command line interface

What's Planned

  • Mumble server connection
  • Command processing with permissions
  • YouTube audio downloading and streaming
  • Queue management
  • Admin dashboard

Setup and Installation

Prerequisites

  • Dart SDK (version 3.7.3 or later)
  • FFmpeg (for audio processing)
  • yt-dlp (for YouTube downloads)
  • Docker and Docker Compose (for local testing)

Installation

  1. Clone the repository
  2. Install the dependencies:
    dart pub get
    
  3. Generate the JSON serialization code:
    dart run build_runner build
    
  4. Configure the bot by editing config.json
  5. Run the bot:
    dart bin/mumbullet.dart
    

Docker Test Environment

The project includes a Docker Compose configuration for local testing with a Mumble server:

docker-compose up

This will start a Mumble server on port 64738 with the password "testpass".

Configuration

The bot is configured using a JSON file (config.json by default). You can specify a different configuration file using the -c command line option.

Example configuration:

{
  "mumble": {
    "server": "localhost",
    "port": 64738,
    "username": "MusicBot",
    "password": "testpass",
    "channel": "Music"
  },
  "bot": {
    "command_prefix": "!",
    "default_permission_level": 0,
    "max_queue_size": 50,
    "cache_directory": "./cache",
    "max_cache_size_gb": 5
  },
  "dashboard": {
    "port": 8080,
    "admin_username": "admin",
    "admin_password": "changeme"
  }
}

Project Structure

The project is organized into the following directories:

  • bin/ - Main executable
  • lib/ - Library code
    • src/ - Source code
      • config/ - Configuration management (implemented)
      • logging/ - Logging system (implemented)
      • audio/ - Audio downloading and conversion (planned)
      • command/ - Command parsing and handling (planned)
      • dashboard/ - Web dashboard (planned)
      • mumble/ - Mumble connection and audio streaming (planned)
      • queue/ - Music queue management (planned)
      • storage/ - Database and cache management (planned)
  • test/ - Test files
  • web/ - Web dashboard static files (planned)

Contributing

Contributions to implement the planned features are welcome! The project needs help with:

  1. Understanding and implementing the dumble library for Mumble connectivity
  2. Implementing audio streaming using FFmpeg and yt-dlp
  3. Building the web dashboard interface
  4. Creating a robust queue management system

Roadmap

See the ROADMAP.md file for a detailed development plan.

License

This project is open source and available for collaborative development.