finds.dev← search

// the find

lavalink-devs/Lavalink

★ 1,869 · Kotlin · MIT · updated Jun 2026

Standalone audio sending node based on Lavaplayer.

Lavalink is a self-hosted audio server for Discord bots that offloads audio processing from your bot's shards to a dedicated node over WebSocket. You run it as a Java service, point your bot's client library at it, and it handles playback, seeking, filters, and voice connection state. It's the de facto standard for Discord bots that need to stream audio at any real scale.

The shard isolation is the core win — your bot process never touches audio frames, so a music outage doesn't drag down command handling. The plugin system is genuinely well-designed: a clean API surface (`plugin-api` module) with typed extension points for filters, player behavior, and REST interception, so third-party plugins (like the YouTube source) don't require forking. Prometheus metrics plus stats events per session make load balancing across multiple Lavalink nodes straightforward. The protocol module is Kotlin Multiplatform, which means client library authors on JS or JVM get typed models from the same source rather than maintaining parallel definitions.

YouTube support is deliberately broken out into a separate plugin that requires its own setup and maintenance — it's the first thing anyone needs and the first thing that breaks when YouTube changes something. The auth model is a single shared password for all clients connecting to a node; there's no per-client token or permission scoping, so if you run a shared Lavalink instance across multiple bots, they can all control each other's players. The test coverage in the repo is thin — one filter test file and one auth filter test, nothing touching the actual audio pipeline or WebSocket session logic. Windows ARM support is effectively unsupported (Lavaplayer falls back to x86 emulation silently).

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →