How 31zeta/zeta-discordbot works
Zeta Discord Bot is a Pycord music bot. The main workflow starts with a Discord user requesting a search or media link; the bot obtains media information from go-music-api, Bilibili, or YouTube, downloads or reuses audio, adds it to a guild playlist, and plays it in a voice channel. Interactive playlist controls, guild-specific state, configurable settings, and QR-based platform login are additional product capabilities. The supplied excerpts show parts of core orchestration, caching, and provider behavior; several feature links are documented in the README but their exact call wiring is not visible.
Main entry points: core.py Bot commands · file_management.py Audio cache · go_music.py Cookie login · ytdlp.py YouTube extraction
Components 21
Discord interaction
- Application entry
main.py - Bot commands
zeta_bot/core.py - Playlist controls
zeta_bot/core.py
Media discovery
- Music API client
zeta_bot/go_music.py - Bilibili search
zeta_bot/bilibili.py - YouTube extraction
zeta_bot/ytdlp.py
Playback and state
- Audio model
zeta_bot/audio.py - Audio cache
zeta_bot/file_management.py - Guild state
zeta_bot/guild.py - Playlist model
zeta_bot/playlist.py - FFmpeg playback
zeta_bot/audio.py
Configuration and login
- Bot settings
zeta_bot/setting.py - Cookie login
zeta_bot/go_music.py - QR login command
go_music_qr_login.py - Console and logs
zeta_bot/output_console.py
Other components
- Discord user
- Discord platform
- go-music-api
- Bilibili
- YouTube
- Local configuration
Connections 25
- Discord user → Discord platform: issues request
- Discord platform → Bot commands: dispatches command
- Application entry → Bot commands: starts bot
- Bot commands → Discord platform: sends responses
- Bot commands → Music API client: requests media
- Bot commands → Bilibili search: searches media
- Bot commands → YouTube extraction: extracts media
- Music API client → go-music-api: requests metadata/audio
- Bilibili search → Bilibili: searches/downloads
- YouTube extraction → YouTube: extracts audio
- Bot commands → Audio cache: gets audio files
- Audio cache → Music API client: downloads via API
- Audio cache → YouTube extraction: downloads via yt-dlp
- Bot commands → Playlist model: manages tracks
- Guild state → Playlist model: provides playlists
- Playlist controls → Playlist model: edits playlist
- Bot commands → Guild state: gets guild state
- Bot commands → Audio model: plays audio
- Audio model → FFmpeg playback: decodes audio
- Bot commands → Bot settings: loads settings
- Bot settings → Local configuration: reads/writes
- QR login command → Cookie login: starts QR login
- Cookie login → Local configuration: saves cookies
- Cookie login → go-music-api: syncs cookies
- Bot commands → Console and logs: records activity