VectoBeat delivers premium audio playback, meticulous observability, and a polished operations toolchain built.
Music Bot for Discord
VectoBeat delivers premium audio playback, meticulous observability, and a polished operations toolchain built on Python, discord.py, and Lavalink v4.
Overview · Capabilities · Architecture · Setup · Commands · Operations · Contributing
VectoBeat is a production-ready Discord music bot that emphasises audibility, runtime transparency, and administrative control. The bot uses Lavalink for audio transport, yt-dlp for multi-source ingestion, and a thoughtfully designed slash-command surface.
* Spotify tracks are proxied via YouTube search unless a Spotify plugin is configured for your Lavalink node.
Domain
Highlights
Playback
Randomised search results, queue autosync, manual seek, replay, loop modes, volume control, auto-resume protection, Redis-backed playlists, history-aware autoplay
Queueing
Paginated queue view, move/remove/shuffle, queue metadata summary, up-next projections
Diagnostics
/status (latency, CPU, RAM, guild footprint), /lavalink node stats, /permissions check, /voiceinfo latency+perms
Branding
Config-driven logos, colours, author/footers across all embeds, with overrides per guild if required
Error Handling
User-facing exceptions routed to ephemeral embeds, logger visibility for unexpected faults
src/commands: Slash command suites (connection, playback, diagnostics, queue)src/events: Presence rotation, playback announcers, global error handlingsrc/services: Lavalink glue & audio resolution wrapperssrc/configs: Typed configuration (Pydantic) with `.env` overridesHigh-level interaction map between Discord, the VectoBeat runtime, Lavalink, and upstream media sources.
Source Mermaid definition lives at docs/system_architecture.mmd; regenerate the asset with:
```bash mmdc -i docs/system_architecture.mmd -o assets/images/architecture.png -t dark ```
python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt
.env and config.yml.45.84.196.19:32768.REDIS_HOST/PORT/PASSWORD/DB in .env or adjust config.yml.AUTOPLAY_DISCOVERY_LIMIT and AUTOPLAY_RANDOM_PICK (controls recommendation breadth and randomness)..env DISCORD_TOKEN=YOUR_BOT_TOKEN LAVALINK_HOST=example-host LAVALINK_PORT=2333 LAVALINK_PASSWORD=supersecret LAVALINK_HTTPS=false LAVALINK_REGION=eu REDIS_HOST=45.84.196.19 REDIS_PORT=32768 REDIS_PASSWORD= REDIS_DB=0 AUTOPLAY_DISCOVERY_LIMIT=10 AUTOPLAY_RANDOM_PICK=true
Optional: adjust config.yml for intents, shard count, embed theme.
python -m src.main
The bot registers slash commands and reports node health on startup. Review the logs for authentication or connectivity hints.
Category
Command
Description
Voice
/connect
Join caller’s voice channel, auditing missing permissions and node status.
/disconnect
Leave voice, destroy the Lavalink player, clear queue state.
/voiceinfo
Display latency, queue length, active status and permission checklist.
Playback
/play <query|url>
Resolve search or URL, queue up to three random candidates, start automatically.
/skip
Skip current track; embed shows remaining queue size.
/stop
Stop playback and clear queued tracks.
/pause / /resume
Pause or resume; embed indicates track title.
/volume
Set volume between 0 and 200%.
/loop
Toggle loop mode (Off, Track, Queue).
/seek mm:ss
Jump to a timestamp within the current track.
/replay
Restart currently playing track from the beginning.
Queue
/queue
Paginated queue view with “Now Playing” and upcoming entries.
/queueinfo
Summary overview (duration, volume, loop state, up-next block).
/remove <index>
Remove track by its 1-based index.
/move <from> <to>
Reorder queued items.
/shuffle
Shuffle queued tracks (requires ≥2).
/clear
Purge the queued tracks while leaving the current song playing.
Diagnostics
/ping
Latency snapshot (gateway + uptime + shard descriptor).
/status
Comprehensive metrics (latency p95, guild footprint, Lavalink stats, CPU/RAM).
/botinfo
Application metadata, owners, command count, runtime environment.
/uptime
Formatted uptime with Discord timestamp (absolute & relative).
/lavalink
Per-node statistics: players, CPU, memory, frame deficit.
/voiceinfo
See above; duplicated for quick reference.
/guildinfo
Guild demographics and configuration (requires Manage Guild).
/permissions
Audit the bot’s channel permissions with checkmarks.
Configuration
/profile show
Display the guild’s playback profile (default volume, autoplay, announcement style).
/profile set-volume
Persist a default volume applied whenever the bot joins voice.
/profile set-autoplay
Toggle automatic queue refill when playback finishes.
/profile set-announcement
Switch between rich embeds and minimal now-playing text.
Playlists
/playlist save
Persist the current queue (optionally including the active track) to Redis. Requires Manage Server.
/playlist load
Load a saved playlist into the queue, optionally replacing current items.
/playlist list
Enumerate playlists stored for the guild.
/playlist delete
Remove a playlist from storage. Requires Manage Server.
/status: Watch for CPU > 70%, RAM > 500MB – investigate long queues or Lavalink issues./lavalink: Frame deficit or high Lavalink CPU indicates node saturation./voiceinfo: Gateway latency spike implies region/regression; check Discord status./permissions (connect, speak, view channel)./stop followed by /play to reset the player.VectoBeat logs for “Autoplay” warnings.stdout for VectoBeat; enable log shipping in production (ELK, CloudWatch, etc.).INFO/PING) if playlist persistence is enabled.Contributions are welcome! Please review CODE_OF_CONDUCT.md and follow the steps below.
git checkout -b feature/amazing-improvement.python3 -m compileall src before committing.VectoBeat — engineered for premium audio experiences and operational clarity.
0
0 nhận xét
Chỉ người dùng đã đăng nhập mới có thể đăng nhận xét. Mọi nhận xét đều được quản lí bởi quản trị viên Top.gg. Vui lòng xem qua các quy tắc của chúng tôi trước khi đăng nhận xét.
5 sao
0
4 sao
0
3 sao
0
2 sao
0
1 sao
0
Chưa có nhận xét nào!