Welcome to DisGoLink
DisGoLink is a modern Lavalink client written in Golang that enables you to build powerful Discord music bots with ease. It provides full support for Lavalink 4.0+ and the new plugin ecosystem.Quickstart
Get up and running with DisGoLink in minutes
Installation
Install DisGoLink and set up your development environment
API Reference
Explore the complete API documentation
Discord Support
Join our community for help and discussions
What is DisGoLink?
DisGoLink is a feature-rich Lavalink client that handles all the complexity of integrating Lavalink with your Discord bot. It manages WebSocket connections, audio player state, voice events, and provides an intuitive API for playing audio in Discord voice channels. Whether you’re building a simple music bot or a complex audio application, DisGoLink provides the tools you need to deliver high-quality audio experiences to your Discord users.Key Features
Lavalink 4.0+ Support
Full compatibility with the latest Lavalink features and APIs
Plugin System
Extend functionality with official and community plugins
Event-Driven Architecture
React to player events, track changes, and voice state updates
Multi-Node Support
Connect to multiple Lavalink nodes with automatic best-node selection
Session Resuming
Resume playback after restarts without losing state
Type-Safe API
Leverage Go’s type system for safer, more maintainable code
Why DisGoLink?
Built for Go Developers
DisGoLink is designed from the ground up for the Go ecosystem, providing idiomatic Go interfaces and patterns. It uses the Disgo Snowflake package for type-safe Discord ID handling.Discord Library Compatibility
While DisGoLink works best with DisGo, it’s compatible with other Discord libraries:- DisGo -
type ID uint64(recommended) - DiscordGo -
stringIDs - Arikawa -
type Snowflake uint64 - Disgord -
type Snowflake uint64
DisGoLink uses the Disgo Snowflake package. When using other Discord libraries, you may need to convert between ID types.
Rich Plugin Ecosystem
Extend DisGoLink with official plugins:- SponsorBlock - Skip sponsored segments in videos
- LavaQueue - Advanced queue management
- LavaSrc - Additional audio sources
- LavaLyrics - Synchronized lyrics support
- LavaSearch - Enhanced search capabilities
Use Cases
DisGoLink is perfect for building:- Music Bots - Play music from YouTube, Spotify, SoundCloud, and more
- Radio Bots - Stream live radio or podcasts to voice channels
- Audio Notification Systems - Play alerts and announcements
- Voice Channel Utilities - Custom audio experiences for communities
- DJ Bots - Advanced audio mixing and effects
Event-Driven Design
DisGoLink provides comprehensive event handlers for all Lavalink events:PlayerUpdateMessage- Periodic player state updates (default: every 5 seconds)PlayerPause/PlayerResume- Pause state changesTrackStart/TrackEnd- Track lifecycle eventsTrackException- Error handling for problematic tracksTrackStuck- Detection of stuck playbackWebSocketClosed- Voice connection monitoring
Architecture
DisGoLink is organized into two main packages:disgolink Package
The high-level client interface for managing nodes, players, and events. This is your primary interaction point with the library.
lavalink Package
Low-level Lavalink protocol types and messages. These types represent the raw Lavalink API structures.
Getting Started
Ready to build your Discord music bot? Head over to the Installation guide to set up DisGoLink, or jump straight into the Quickstart to see it in action.Next: Installation
Install DisGoLink and prepare your development environment