v3.5.0
NodeLink v3.5.0
NodeLink v3.5.0 delivers a big expansion in sources, audio capabilities, and server tooling. The worker architecture is reworked into specialized source and voice execution paths with stronger isolation, plus a command socket and improved orchestration for worker control. New integrations include Telegram, Bilibili, Genius, Amazon Music mirroring, Pinterest, Mixcloud, Audiomack, Gaana, and Shazam, plus richer source recommendations and specialized searches for YouTube and SoundCloud. On the platform side, worker management gains a dedicated API, improved scaling, stability, and source validation. The audio pipeline sees memory and CPU optimization, new filters (reverb and flanger), voice receive, and a raw PCM streaming endpoint. YouTube and Spotify stability continue to improve, and client headers are refreshed for 2026.
Commit count in v3.4.0..dev: 115 (requested 114). This file includes all commits from that range.
Added
- 95e662d add: source Telegram integration with video extraction
- 05b92ef add: bilibili source support with flv playback and lyrics
- c4ac97d add: genius source support with smart mirror
- b0fb9c3 add: amazon music as a mirror source
- 710d739 add: pinterest source
- 79d5192 add: mixcloud source and fix hls memory leak
- 3cc5e7f add: implement getSource method in SourcesManager
- bdaec03 feat: add reverb and flanger audio filters
- d9936ee add: endpoint /v4/loadstream for raw PCM audio streaming
- 14ccb6c add: specialized search support for playlists and artists on YouTube
- 9a9861f add: specialized search support for playlists, albums, users, tracks for soundcloud
- f1ea03c add: speak prefix to google-tts by default
- 4ec116d add: soundcloud clientId to nodelink config
- 44d58dc add: endpoint configuration and worker management API
- 2a20a91 add: implement command socket communication for worker management
- dd2630c add: voice receive
- 3215510 add: track recommendations from the sources
- 7907280 add: implement YouTube recommendations and enhance playlist handling
- 00f3745 add: audiomack source support
- 5c98b5c add: implement Gaana source support
- d1cea42 add: support for shazam source
Fixed
- 9b53c08 fix: handle socket close event on session resume to prevent leaks
- a031dd2 fix: define missing helper functions in YouTube source
- 7234ca9 fix: improve video stream handling in Telegram source
- 54008a0 fix: force kill cloudflared process on exit to prevent zombies
- 0788e0a fix: resolve webm seeking crash and http recursion bug
- 66d0c58 fix: replace process.on with process.once for shutdown
- bcdaa91 fix: improve shutdown handling by removing redundant signal listeners
- 8897f14 fix: streamline worker cleanup and shutdown handling
- 26cc5b5 fix: enhance shutdown handling in NodelinkServer and WorkerManager
- 2d7aead fix: enhance tunnel logging
- f6f3c34 fix: implement forceSave method in CredentialManager
- 5c89014 fix: enhance token fetching in PandoraSource with remote
- c0739c0 fix: add remote token URL configuration for PandoraSource
- 618db45 fix: add clear() methods to filters to prevent audio artifacts
- c8bb14e fix: correctly close the session sockets
- 9cf6de4 fix: resolve logger reference error and improve stream error handling
- bd275e5 fix: use mirrored track info for loadstream and mix layers
- 967faec fix: bun websocket not beign created if useBunServer is false & fix other misc issues.
- ba78a6f fix: remove unused ,
- a8478e3 fix: remove accidental applewebkit on android vr headers
- 65ab49c fix: replace ` with '
- 89f6a45 fix: correct extract the track author on internal tracks
- 9c3ab61 fix: soundcloud regex for client id retrieval
- 573709d fix: make socket destroy chain optional
- 3930a79 fix: playerManager create race condition
- ad5b7e0 fix: improve error handling in track encoding and decoding functions
- 51ad8a3 fix: avoid null padding in track details and add seekable meta tag
- 5eb74c1 fix: refactor decodeTrack and encodeTrack
- 1d964bf fix: enhance source worker management with load tracking and task
- 7288adf fix: load stream functionality with error handling and streaming support
- 84f7590 fix: youtube lives having frequently duplicated audios
- e72dcf5 fix: make res.on('close') an optional chain
- 0e96327 fix: fix loadlyrics endpoint & improve loadchapters speed
- 605e59a fix: bilibili making loadlyrics crash
Updated & Improved
- 28c7963 improve: add source-specific configuration validation
- 581b48c Merge pull request #137 from aroradev1010/improve-source-config-validation
- c64394e update: streamline YouTube OAuth validation process
- 8d9be4c Merge branch 'dev' of https://github.com/PerformanC/NodeLink into dev
- d2d8dac update: clear searchTerms in Telegram and search method
- 9cb0fe3 improve: youtube recovery on aborted connections
- 939fb3e update: improve vkmusic with native HLS and session refresh
- b61fae4 improve: optimize audio processing and buffer management
- d4b2fd9 improve: optimize memory with buffer pool and split stats interval
- 679a521 improve: optimize audio processing cpu and memory usage
- dd3e47c improve: enhance local address handling in HTTP requests
- e292398 improve: worker scaling and stability with cost-based load balancing
- 70ce1b5 update: enable opus dtx by default for saving bandwidth
- 844b516 improve: implement stability and performance optimizations
- 006b968 Merge branch 'dev' of https://github.com/PerformanC/NodeLink into dev
- d5e369e improve: exp hibernation configuration
- 2b7edf1 improve: implement CredentialManager for secure credential handling
- 1c2fd23 improve: implement unified track matching and optimize mirrors
- e6dd710 Merge branch 'dev' into feat/reverb-flanger-filters
- 20392f7 Merge pull request #139 from notinsane-dev/feat/reverb-flanger-filters
- 53820e7 improve: enhance system stability and network robustness
- fa5a949 improve: reduce karaoke filter allocations by reusing arrays
- a7e58a5 update: replace toddy-mediaplex with @toddynnn/voice-opus
- 7bb222d update: replace toddy-mediaplex with @toddynnn/voice-opus
- 4943406 update: android_vr builds to android 15 & latest meta quest 3 youtube.
- a317ffa update: use youtube.com/tv for encryptedHostFlags & use amazon fire tv headers.
- 92af874 update: web client to the 2026 version
- d853b20 update: tvhtml5 version & samsung user agent
- e11501a update: ios version
- 49781d4 update: android app versions
- 5d3dc22 update: use identity header on android for saving ram
- 2be2735 Merge pull request #141 from ToddyTheNoobDud/dev
- 932309b update: disable opus dtx by default
- 40f1928 improve: add external server for Spotify getToken handling
- d4e6692 improve: implement Spotify API rate limit handling
- 793853e remove: unnecessary files from Dockerfile
- 57ef297 improve: search spotify to support multiple types
- 406bb29 improve: enhance comments and organization in docker-compose.yml
- 5d2464b update: enable optional channelId on player connection creation request
- a8b724b update: upgrade Node.js version to 25-alpine in Dockerfile
- 299035f update: config.default.js for soundcloud clientId
- f8e3da9 improve: specialized source cluster and per-guild worker queues
- c268959 update: log invalid password in unauthorized connection attempts
- 04f4b0d improve: improvement to the match sources and searchterm system
- fcba805 improve: enhance compatibility table with additional notes for clients
- b54d10f improve: modify the default search source to mirror streams
- c68eaeb update: move voiceReceive
- b57263a update: biome lint
- d5478b3 update: biome check write
- 1254298 update: bump version to 3.5.0
- 03d6f5e Merge branch 'dev' of https://github.com/PerformanC/NodeLink into dev
- 66d8e71 update: clients to 2026 versions
- bf939f2 update: format audiomack with biome
- 44753b1 update: clarify Gaana API server hosting instructions
- c8ef927 update: add credits comment to Gaana source file
- 610e61a Update lastfm.js
- 95268a8 Update lastfm.js
- 795379f Update lastfm.js
- 3cb4ada Refactor LastFMSource to support API searches
- 2ca894c Merge pull request #146 from southctrl/patch-1
What's Changed
- improve: add source-specific configuration validation by @aroradev1010 in #137
- feat: add reverb and flanger audio filters by @notinsane-dev in #138
- fix: add clear() methods to filters to prevent audio artifacts by @notinsane-dev in #139
- update: replace toddy-mediaplex with @toddynnn/voice-opus & youtube clients maintance. by @ToddyTheNoobDud in #141
- add: last.fm support to search by @southctrl in #146
- merge: v3 <- dev by @1Lucas1apk in #145
New Contributors
- @notinsane-dev made their first contribution in #138
- @southctrl made their first contribution in #146
Full Changelog: v3.4.0...v3.5.0