- Properly fixed the YouTube cipher detection (previous one missed some operations).
- Partially fixed YouTube cipher detection where reserved keywords are function names.
- Ability to store one user data object in audio track instances.
- Dumping YouTube scripts where cipher detection does not work.
- Fixed YouTube tracks with only mixed audio-video MP4.
- Twitch stream title is now stream status rather than channel name.
- Fixed MP3 not working with local files.
- Fixed only MP3 working with local files.
- Fixed deadlock when starting tracks from exception event
- Fixed seeking while track is initialising possibly interrupting load.
- Fixed stopped track threads sometimes not exiting.
- Added track URL field to track info object.
- Fixed SoundCloud client ID not updated if expiration was discovered on a request for search or playlist.
- Fixed SoundCloud not working due to client ID change.
- SoundCloud client ID now fetched from their page now, not hardcoded.
- Support for mono MP3 format.
- PlayerLibrary which exposes the library version.
- Fixed using nodes not working after node list is cleared once.
- Fixed read timeout exception thrown when playing some YouTube live streams.
- Fixed excessive amount of requests made for YouTube live streams.
- Added a way to configure HTTP request settings for source managers.
- Changing volume with PCM output rebuilds frame buffer into silence.
- Added NicoNico source manager.
- Fixed exploding on seekable YouTube live streams.
- Fixed using an unnecessary high track start message version when communicating with node.
- Fixed a potential issue with YouTube ciphers not being detected correctly (403 error) and added more cipher logging.
- Fixed some reconnect cases for HTTP connections not actually working.
- Fixed inaccurate seek on resampled streams.
- Retry connection also on premature HTTP response end exception.
- Abandoned tracks are taken over by other nodes more quickly.
- When remote nodes go offline, their tracks are slowly taken over by other nodes.
- Fixed Beam.pro tracks not playable in nodes.
- Fixed seeking on tracks which had not been started yet.
- Fixed a possible crash when a Vorbis track was shut down before being successfully initialised.
- Retry stream connection on NoHttpResponseException, which may be caused by connection reuse.
- Retry stream connection on SSL errors, which may be caused by severed connection.
- Retry stream connection once on 500 series errors, due to possibly flaky server side issues.
- Fixed loadFailed being called for exceptions in other callbacks.
- Improved logging to know causes of all failed requests and changes some inappropriate logging levels.
- Fixed a regression with YouTube dashmpd-only tracks not working.
- Support for alternative YouTube JSON format (adaptive_fmts -> url_encoded_fmt_stream_map).
- Fixed interrupts from previous tracks may be carried over to executors of new tracks.
- Beam.pro source manager.
- Fixed reused clients restricting the number of concurrent connections to a very low value.
- Fixed track stop or seek throwing an exception in some conditions due to InterruptedException getting wrapped.
- Track info loader queue full exception is passed to loadFailed instead of being thrown directly.
- Fixed using wrong version of lavaplayer-common dependency (again).
- Fixed track loading queue throwing "queue full" exception when the queue is not empty.
- Fixed using wrong version of lavaplayer-common dependency.
- Added the option to increase the number of threads used to load tracks.
- Reusing HTTP client objects as much as possible.
- Limited the size of the track info loader queue.
- Fixed YouTube live streams opening a new connection for each request.
- Fixed no read timeout applied to requests to nodes.
- Fixed track getting locked when seek gets stuck.
- Fixed attempting to read the entire response on closing a stream mid-way.
- Increased timeout for terminating the tracks of a node if its processing is stuck.
- Fixed Vorbis MKV tracks not working if the channel count was not specified in MKV audio section.
- Partial support for YouTube live streams (only MP4).
- Method to poll frames from AudioPlayer in a blocking way.
- Support for different audio output formats.
- Utility class for getting an AudioInputStream from AudioPlayer.
- Fixed another smaller leak with Vorbis.
- Fixed a native memory leak with Vorbis tracks.
- ARM binaries are now loaded from natives/linux-arm and natives/linux-aarch64 directories instead of x86 ones.
- WAV file support (16-bit PCM).
- Loading unlisted SoundCloud tracks.
- Searching on SoundCloud with scsearch: prefix.
- Option to specify maximum number of YouTube playlist pages to load (was hardcoded to 6).
- Fixed SoundCloud playlist tracks in wrong order.
- Fixed paid movies appearing in YouTube search results.
- Fixed YouTube playlists with UU prefix not working.
- Support for OS X (native library).
- Fixed YouTube tracks broken when player.js URL was given without hostname.
- Fixed constant delay on processing node messages.
- Fixed making a new HTTP connection for each node request.
- Reduced playing track count effect on node balancing.
- Node balancing takes CPU and latency more seriously.
- Node messaging changed, requires node update to 1.1.38.
- MKV file handling refactored to be more lightweight.
- Fixed track marker and position reset when starting the track.
- Fixed loading HTTP urls with local redirects.
- YouTube search results no longer include ads.
- Fixed a regression with loading native libraries on Windows.
- Fixed an issue when JDA-NAS and LavaPlayer were used together with different classloaders.
- Made node balancing weight data available.
- Request time to nodes also used for balancing between nodes.
- Fixed an issue with MP3 files sometimes being detected as ADTS streams.
- Made various statistics about remote nodes available.
- Made requests to nodes tolerate higher latency without stuttering.
- Changing remote node list does not stop tracks on unaffected nodes.
- Dependency restructuring for compatibility with JDA-NAS.
- Support for legacy MP3 ID3v2.2 tags.
- Fixed nonexistent YouTube tracks being tried as raw HTTP urls.
- Title and artist information for MP4/M4A files.
- Can check if playlist is a search result.
- Fixed SoundCloud not working because because of SoundCloud client ID expiring.
- Option to disable YouTube searches.
- Support YouTube searches by using "ytsearch: query" as identifier.
- Made it simple to register all bundled sources through the methods of AudioSourceManagers.
- Allow redirects from raw HTTP urls to other source providers.
- Fixed an exception on the end of some MP4 tracks.
- Added mayEndTrack field to end reasons.
- Special end reason for failed track initialization.
- Fixed an issue with resolving correct YouTube stream URL due to a bug in cipher detection.
- Lowered default resampling quality.
- Fixed some tracks mistakenly detected as MP3 streams.
- Allow icy:// urls, which are used in some radio stream playlists.
- Fixed exception on OGG streams when they end.
- SoundCloud fix + provider more resilient to site updates.
- Track markers.
- Loop feature. It can be done with markers.
- SoundCloud liked tracks page loadable as a playlist.
- Common exception in case a playlist is private.
- Fixed YouTube track not loaded if it is part of a private playlist.
- Twitch stream support.
- Vimeo support.
- Support for the more common non-fragmented format of MP4/M4A.
- IDv2.3 tag support.
- Fixed exception on long ID3 tags on streams.
- Plain text files with an URL loaded as radio stream playlist.
- Fixed SoundCloud not working due to site update.
- Support for PLS playlists for radio streams.
- Support for ICY protocol to fix some SHOUTcast streams.
- Support for ADTS+AAC radio streams.
- Bundled some LetsEncrypt SSL root certificate missing on some JDK installations.
- Support for adding custom SSL certificates.
- Fixed SoundCloud URLs not working with a slash in the end.
- BandCamp support.
- M3U support for radio streams.
- MPEG2+layerIII MP3 format support.
- Fixed an exception on OGG stream playback.
- OGG stream support.
- Fixed exception on loading age-restricted YouTube videos.
- Fixed an exception on decoding some FLAC files.
- Fixed huge CPU load on tracks from local files.
- FLAC support.
- MP3 stream support.
- Fixed NPE on missing Content-Length in HTTP responses.
- HTTP source for loading any URL as a track.
- Loading artist and title from MP3 tags.
- Custom executor support.
- Fixed track end not triggering on exception.
- Accurate seeking and duration for VBR MP3 files.
- Track serialization.
- Fixed only one thread used for loading track info.
- Shutting down player managers and source managers.
- Cleaning up abandoned players.
- File type detection based on content.
- Track end reasons.
- Fixed TrackStartEvent event not called.
- Audio output hook for experimental native UDP packet scheduling.
- Fixed huge CPU load from GC monitor.
- Fixed track duration reported in microsecons.
- GC pause monitor for logging the number of GC pauses in different duration ranges.
- Made null a valid argument for playTrack with identical behavior to stopTrack.
- SoundCloud playlist support.
- Fixed YouTube tracks which use dash XML and are protected with cipher.
- Offloading audio processing to remote nodes with load balancing.
- Refactoring of track execution.
- Method for loading items in order.
- Opus encoding quality setting.
- Fixed SoundCloud tracks with underscores not working.
- Resampling quality setting.
- Track length info provided in milliseconds instead of seconds.
- Fixed getPosition always returning 0 when setPosition was called before start.
- Tracks can be cloned (for replay).
- SoundCloud support (single tracks)
- Support for special playlist types on YouTube (liked videos, favorites, mixes).
- MP3 support.
- YouTube track is loaded as a playlist if playlist is referenced in the URL.
- Fixed broken special characters in track info when system default charset is not UTF8.
- Severity levels for FriendlyException.
- Report YouTube errors with the proper error message and COMMON severity.
- Fixed smooth transition not working from volume 0.
- Volume support with smooth transition.
- Support for nonstandard opus streams, such as mono.
- Fixed onTrackException not being called.
- Initial release.