Version 4 Changelog
Lavalink v4 is now out of beta! This version represents a major modernization of the Lavalink API with a focus on REST-based player control.
v4.2.1
Library updates- Updated koe to version
3.0.0-pre5 - Updated libdave to version
0.1.0
v4.2.0
Features:v4.1.2
Updates: Features:- Added before request logging configuration option in #1170
- Added check for empty plugin files and redownload/delete them in #1178
v4.1.1
Fixes:v4.1.0
Features:- Added plugin update checker on start in #1121
- Added full cause stack trace in exception object in #1128
- Allow overriding default request timeouts in #1117
- Added new docker image based on
distroless& updated alpine variant to java 21 in #1131 - Added custom Lavalink metrics prometheus collector in #1150
- Added support for spring cloud config in #1144
- Updated Koe to
2.1.0& setdeafenedto true (This should lower the incoming traffic for Lavalink) in 5b0d139
- Fixed race condition when creating media connection and setting up playback in 588ca40
- Fixed filter values being omitted when default value is used in #1141
- Fixed wrong CPU stats when spamming
/v4/statsendpoint in #1151 - Fixed plugin manager ignoring cmd args in #1129
- Removed tls flags in dockerfile preventing tls 1.3 from working in #1118
v4.0.8
Updates: Features:- Allow usage of non-allocating frame buffers in #1095
- Added shutdown handling to close sessions cleanly in #1102
v4.0.7
Updates:- Updated Lavaplayer to
2.2.1 - Updated spring-boot to
3.3.0& spring-websocket to6.1.9 - Updated kotlin to
2.0.0& kotlinx-serialization-json to1.7.0 - Updated logback to
1.5.6& sentry-logback to7.10.0
v4.0.6
Updates:v4.0.5
Updates:- Updated Lavaplayer to
2.1.2 - Updated Koe to
2.0.1(fixes theIndexOutOfBoundsExceptionwhen playing a YouTube track)
- Added option to enable Nico source
- Expose Lavalink sessions to plugins via the
ISocketServerinterface
v4.0.4
Updates:- Updated Lavaplayer to
2.1.1
v4.0.3
Fixes:- Fixed plugins not registering (introduced in
4.0.2) - Fixed some issues where plugins would be redownloaded every time Lavalink started (introduced in
4.0.1)
v4.0.2
Fixes:- Fixed issue where all plugins get deleted when already present (introduced in
v4.0.1) - Always include plugin info & user data when serializing (introduced in
v4.0.1)
- Updated oshi to
6.4.11
v4.0.1
Updates:- Updated Lavaplayer to
2.1.0 - Updated oshi to
6.4.8
- Fix user data missing field exception in protocol
- Fix plugin manager not deleting old plugin version
- Fix not being able to seek when player is paused
- Removed illegal reflection notice
v4.0.0
Breaking Changes
WebSocket Operations Removed
WebSocket Operations Removed
All websocket messages sent by the client have been removed. Everything is now done via REST:
play→ Update Playertrack→encodedortrack→identifierfieldstop→ Update PlayerencodedTrackfield withnullpause→ Update Playerpausefieldseek→ Update Playerpositionfieldvolume→ Update Playervolumefieldfilters→ Update Playerfiltersfielddestroy→ Destroy PlayervoiceUpdate→ Update PlayervoicefieldconfigureResuming→ Update Session
API Changes
API Changes
- Lavalink now requires Java 17 or higher to run
- Removal of all
/v3endpoints except/version. All other endpoints are now under/v4 - Reworked track loading result. See Track Loading
- Resuming a session now requires the
Session-Idheader instead ofResume-Keyheader - Updated capitalization of Track End Reason and Severity enums
Docker Changes
Docker Changes
- Remove default 4GB max heap allocation from docker image
- Update docker ubuntu base image from focal (20) to jammy (22)
-Xmx flag to 4G in docker. This caused issues with some systems which had less than 4GB of RAM. We have now removed this flag and let the JVM decide the max heap allocation. The default is 1GB or 25% of total memory, whichever is lower.New Features
- Allow setting user data on tracks in the REST API. See Update Player
- Added default plugin repository. Plugin devs can now request their plugin to be added to the default repository. See Plugin Development
- Addition of full
Trackobjects in following events:TrackStartEvent,TrackEndEvent,TrackExceptionEvent,TrackStuckEvent - Add JDA-NAS support for musl (
x86-64,aarch64) based systems (most notablyalpine) - Add
Omissible#isPresent&Omissible#isOmittedto theprotocolmodule - New config option to specify the directory to load plugins from:
lavalink.pluginsDir(defaults to./plugins) - Enable request logging by default
Updates
- Update to Koe
2.0.0-rc2 - Update Lavaplayer to
2.0.4, which includes native support for artwork urls and ISRCs in the track info - Update to the Protocol Module to support Kotlin/JS
Bug Fixes
- Fixed error when seeking and player is not playing anything
- Fixed null pointer when a playlist has no selected track
Beta Releases
v4.0.0-beta.5
v4.0.0-beta.5
- Update lavaplayer to
2.0.3- Fixed YouTube access token errors - Added default plugin repository
- Fixed error when seeking and player is not playing anything
v4.0.0-beta.4
v4.0.0-beta.4
- Update lavaplayer to
2.0.2- Support MPEG 2.5 and fixed some requests not timing out - Add
Omissible#isPresent&Omissible#isOmittedto theprotocolmodule - Fix null pointer when a playlist has no selected track
v4.0.0-beta.3
v4.0.0-beta.3
- Update lavaplayer to
2.0.0- Fixed YouTube 403 errors & YouTube access token errors
v4.0.0-beta.2
v4.0.0-beta.2
- Update lavaplayer to
08cfbc0- Fixed ogg streaming - Add JDA-NAS support for musl (
x86-64,aarch64) based systems (most notablyalpine) - New config option to specify the directory to load plugins from:
lavalink.pluginsDir(defaults to./plugins)
v4.0.0-beta.1
v4.0.0-beta.1
- New Lavalink now requires Java 17 or higher to run
- Removal of all websocket messages sent by the client. Everything is now done via REST
- Update to Lavaplayer custom branch, which includes native support for artwork urls and ISRCs in the track info
- Addition of full
Trackobjects in following events:TrackStartEvent,TrackEndEvent,TrackExceptionEvent,TrackStuckEvent - Resuming a session now requires the
Session-Idheader instead ofResume-Keyheader - Reworked track loading result
- Update to the Protocol Module to support Kotlin/JS
- Removal of all
/v3endpoints except/version. All other endpoints are now under/v4