Skip to main content

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
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

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 - string IDs
  • 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:

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 changes
  • TrackStart / TrackEnd - Track lifecycle events
  • TrackException - Error handling for problematic tracks
  • TrackStuck - Detection of stuck playback
  • WebSocketClosed - Voice connection monitoring

Architecture

DisGoLink is organized into two main packages: The high-level client interface for managing nodes, players, and events. This is your primary interaction point with the library. 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

Build docs developers (and LLMs) love