Skip to content

Repository files navigation

Experimental Lavalink

A standalone audio sending node based on Lavaplayer and Koe. Allows for sending audio without it ever reaching any of your shards.

Being used in production by FredBoat, Dyno, LewdBot, and more.

A basic example bot is available.

JDA guild

Features

  • Powered by Lavaplayer
  • Minimal CPU/memory footprint
  • Twitch/YouTube stream support
  • Event system
  • Seeking
  • Volume control
  • REST API for resolving Lavaplayer tracks, controlling players, and more
  • Statistics (good for load balancing)
  • Basic authentication
  • Prometheus metrics
  • Docker images
  • Plugin support (beta)

Requirements

  • Java 11* LTS or newer required.
  • OpenJDK or Zulu running on Linux AMD64 is officially supported.

Support for Darwin (Mac), Windows AMD64, and Linux ARM (Raspberry Pi) is provided on a best-effort basis. This is dependent on Lavaplayer's native libraries.

Lavaplayer currently supports following architectures:

Darwin (M1 & Intel), Linux aarch32, Linux aarch64, Linux ARMv7+ 32/64, Linux ARMHF(v6) 32, Linux i386 32, Linux x86 64, Windows i386 32 and Windows x86 64

JDA-NAS(Native Audio Buffer) & the Timescale filter are currently not supported on following architectures:

Linux ARMHF(v6) 32 and Linux aarch32

Support for other JVMs is also best-effort. Periodic CPU utilization stats are prone not to work everywhere.

*Java 11 appears to have some issues with Discord's TLS 1.3. Java 14 has other undiagnosed HTTPS problems. Use Java 13. Docker images have been updated. See #258, #260

Changelog

Please see here

Versioning policy

Lavalink follows Semantic Versioning.

Given a version number MAJOR.MINOR.PATCH, the following rules apply:

MAJOR breaking API changes
MINOR new backwards compatible features
PATCH backwards compatible bug fixes

Additional labels for release candidates are available as extensions to the MAJOR.MINOR.PATCH-rcNUMBER(3.6.0-rc1) format.

Client libraries:

ClientPlatformCompatible WithREST API SupportAdditional Information
LavaClientJavaJDAArchived
Lavalink.ktKotlinJDA/Kord/AnyKotlin Coroutines
Lavalink.pyPythonAny
lavasnek_rsPythonAny**asyncio-based libraries only
lavaplayer-pyPythonAny**asyncio-based libraries only
WavelinkPythondiscord.py V2
PomicePythondiscord.py V2
discord-ext-lavaPythondiscord.py
LavapyPythondiscord.py
MagmaPythondiscord.py
interactions-lavalinkPythoninteractions.py
LavadenoDenoAny
LavaJSNode.jsAny
LavaClientNode.jsAny
LavacoffeeNode.jsAny
LavacordNode.jsAny
FastLinkNode.jsAny
Moonlink.jsNode.jsAny
@skyra/audioNode.jsdiscord.jsArchived
PoruNode.jsAny
ShoukakuNode.jsAny
LavaudioNode.jsAny
GorilinkNode.jsdiscord.jsArchived/Unmaintained
SandySoundsNode.jsAnyUnmaintained
eris-lavalinkNode.jserisUnmaintained
Victoria.NETDiscord.Net
Lavalink4NET.NETDiscord.Net/DSharpPlus
DSharpPlus.Lavalink.NETDSharpPlus
Lavalink.NET.NETAnyUnmaintained
SharpLink.NETDiscord.NetUnmaintained
DisCatSharp.Lavalink.NETDisCatSharp
DisGoLinkGoAny
waterlinkGoAny
gavalinkGoAnyUnmaintained
Lavalink-rsRustAny**tokio-based libraries only
CoglinkCConcord

Or alternatively, you can create your own client library, following the implementation documentation. Any client libraries marked with Unmaintained have been marked as such as their repositories have not received any commits for at least 1 year since time of checking, however they are listed as they may still support Lavalink, and/or have not needed maintenance, however keep in mind that compatibility and full feature support is not guaranteed.

Server configuration

Download binaries from the GitHub actions or the GitHub releases(specific versions prior to v3.5 can be found in the CI Server).

Put an application.yml file in your working directory. (Example here)

Run with java -jar Lavalink.jar

Docker images are available on the Docker Hub.

Docker Pulls

About

Standalone audio sending node based on Lavaplayer.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages