Skip to main content
Lavalink supports third-party plugins to add additional functionality such as custom audio sources, custom filters, WebSocket handling, REST endpoints, and much more.

What Are Plugins?

Plugins extend Lavalink’s core functionality by providing:
  • Custom Audio Sources - Support for additional streaming platforms (Spotify, Apple Music, Deezer, etc.)
  • Audio Filters - Advanced audio processing and effects
  • API Extensions - New REST endpoints and WebSocket handlers
  • Utility Features - Lyrics, sponsor segment skipping, search enhancements, and more

How Plugins Work

1

Plugin Loading

Lavalink loads all .jar files placed in the plugins directory at startup
2

Automatic Download

Plugins can be automatically downloaded by configuring them in your application.yml file
3

Integration

Plugins integrate with Lavalink using the Spring Boot framework and plugin API

Plugin Architecture

Plugins are built using the Lavalink Plugin API and Spring Boot framework.

Plugin Capabilities

Audio Source Managers

Add support for new streaming platforms and audio sources

Media Container Probes

Support for additional media container formats

REST Endpoints

Create custom API endpoints for your specific needs

Request Interceptors

Modify or intercept existing REST endpoint behavior

Audio Info Modifiers

Customize track and playlist JSON data

Type-Safe Configuration

Define custom configuration properties in application.yml

Plugin Configuration Methods

There are two ways to use plugins with Lavalink:

1. Manual Installation

Place plugin .jar files directly in the plugins directory:
lavalink/
├── application.yml
├── Lavalink.jar
└── plugins/
    ├── youtube-plugin-1.0.0.jar
    └── lavasrc-plugin-4.0.0.jar
You may need to create the plugins directory manually if it doesn’t exist.
Configure plugins in your application.yml to download them automatically:
lavalink:
  plugins:
    - dependency: "dev.lavalink.youtube:youtube-plugin:1.0.0"
    - dependency: "com.github.topi314.lavasrc:lavasrc-plugin:4.0.0"
      repository: "https://maven.lavalink.dev/releases"
Benefits:
  • No manual file management
  • Version control through configuration
  • Easy updates and deployment
  • Custom repository support

Default Repositories

By default, Lavalink uses the official Maven repository:
  • Releases: https://maven.lavalink.dev/releases
  • Snapshots: https://maven.lavalink.dev/snapshots
You can override these defaults in your configuration:
lavalink:
  defaultPluginRepository: "https://maven.example.com/releases"
  defaultPluginSnapshotRepository: "https://maven.example.com/snapshots"

Plugin Directory Configuration

Customize where Lavalink saves and loads plugins:
lavalink:
  pluginsDir: "./lavalink-plugins" # defaults to "./plugins"

Next Steps

Using Plugins

Learn how to install and configure plugins

Available Plugins

Browse the list of available plugins

Developing Plugins

Create your own custom plugin

Build docs developers (and LLMs) love