v3.4.0
NodeLink v3.4.0
Finally got v3.4.0 ready. The big highlight here is definitely the Plugin System. Now you can just drop a local plugin or install one via NPM, and it works—giving you direct access to the internal server instance to add custom routes and filters easily.
I also played around with Node.js SEA to get standalone binaries working. This means you can just run the executable without worrying about npm install or having Node set up perfectly on the machine. It's still a bit of an experiment, but it's a huge step for making deployment easier. https://github.com/PerformanC/NodeLink/actions/runs/20412069429
YouTube got a lot of attention too. I fixed those memory leaks that were killing the process and added STS Caching. OAuth tokens also rotate now, which helps keep things stable. Plus, Vimeo is now built-in and enabled by default.
The config validator is also much better now. Instead of just crashing, it actually tells you what part of the config is broken so you can fix it quickly.
Added
- fcd5408 add: implement plugin system with custom routes and filters
- d58577e add: implement binary build process and registry generation
- 1efa458 add: gitHub Actions workflow for building binaries
- 174bae8 add: vimeo support for sources
- f41bd43 add: basic STS caching system #127
- 6001d16 add: multi-language audio support and fix lyrics caption data
- 8fc72ff add: implement tunnel-cloudflared plugin and sample plugin structure
- e49a825 add: ignore functionality for IPs, userIds, and guildIds
- 7662e30 add: extract tidal token without an account
- dfa812d add: implement cache clearing for STS and HTTP/2 failed hosts
- 9e6bd54 add: enhance build script for improved module
- 0dbf65f add: enhance binary handling for symphonia-decoder packages
Fixed
- d7dc6e8 fix: enhance YouTube stream URL resolution and improve error handling
- 883988e fix: youtube music searching / resolving
- 5082107 fix: force voice update on connection error to ensure reconnection
- 27fdb91 fix: resolve flowery tts api voice id requirement
- 249b5ed fix: send stats updates to active sessions via WebSocket
- cf7b535 fix: hide version in logs when client version is undefined
- 2791218 fix: plugins not showing on /info path
- b1efe24 fix: correct isSeekable flag for streams
- 7adccc2 fix: update symphonia-decoder dependency version format
- 9fb4912 fix: ytmusic not beign instanced on the source
- 04011a2 fix: non sts based clients beign able to find streams
Updated & Improved
- fa6ca9e improve: enhance YouTube OAuth token handling with rotation
- ac1c29c improve: add range, enum, and cross-field config validation
- daca99d improve: fix more youtube memory leaks & fix youtube lives.
- 4fbd1a6 improve: vimeo performance & memory leaks fixes.
- 29e89fa improve: add explicit validation errors for config values
- 23ff35a improve: enhance cross-build support and update build scripts
- 0ab0def improve: refactor audio pipeline creation using stream pipeline
- 39dbf89 improve: performance & encryptedHostFlags extractor for common
- 79bec7d improve: stream processor performance
- 02414cf improve: streamline progressive stream handling using pipeline
What's Changed
- add: basic STS caching system by @kikkia in #127
- update: readme to mark (TS) Lavalink-Client V3 Supported by @UnschooledGamer in #129
- improve: add explicit validation errors for config values by @aroradev1010 in #131
- add: system plugins by @1Lucas1apk in #132
- improve: add range, enum, and cross-field config validation by @aroradev1010 in #134
- add: implement binary build process and registry generation by @1Lucas1apk in #135
- merge: dev → v3 with Vimeo support, plugin system, YouTube/OAuth improvements, config validation, and multiple fixes by @1Lucas1apk in #136
New Contributors
- @kikkia made their first contribution in #127
- @aroradev1010 made their first contribution in #131
Full Changelog: v3.3.0...v3.4.0