Repository navigation
v3.7.0
NodeLink v3.7.0
v3.7.0 is essentially us gutting the project and rebuilding it from the floor up. We spent 320 commits ripping out the legacy JS logic and hot-swapping the entire spine for a strict TypeScript architecture. This wasn't about "polishing"—it was about nuking the deep-seated memory leaks and audio stutters that were baked into the old core.
On the audio side, we threw out basic linear resampling for Cubic Hermite Spline (Catmull-Rom) interpolation. This means the new Tape\Scratch effects actually maintain spectral integrity instead of sounding like digital garbage when they ramp down. We also implemented EBU R128 normalization with proper K-weighting so tracks don't blow out your ears anymore.
Under the hood, we slashed IPC overhead by moving from JSON strings to V8 binary serialization, making the communication between the master and workers way more responsive. The proxy layer isn't just a static list anymore; it's a feedback-based triage pool that monitors 403/429 error codes and latency in real-time to rotate URL fetching before YouTube cuts you off. We also added a proper hibernation mode where idle workers drop to PRIORITY_LOW and trigger V8 size optimizations to save host resources.
This release is the end of the "patching things as they break" era. We finally started engineering this thing.
Commit count in v3.6.0..3.7.0: 320. Full changelog:
Added
- 0362c05 ToddyTheNoobDud: add: mpd/dash_mpeg support for monochrome
- 2ffe80c 1lucas1apk: add: monochrome lyrics and source integration
- 80e18cf ToddyTheNoobDud: add: support local files for spotify
- 24b5974 Bernard: Create netease.js
- 627b521 1lucas1apk: add: scratch effect
- 60d72b4 Bernard: Create iheartradio.js
- b63272f ToddyTheNoobDud: add: ipc traffic logger & internal conversations
- 2f05e9b 1lucas1apk: add: runtime config options for worker exec argv
- be7a71c 1lucas1apk: add: support worker old-space limits via env
- 8dd85e3 ToddyTheNoobDud: add: thumbnail & title extraction for discord attachments
- 37bb379 1lucas1apk: add: build artifacts and complete feature integration
- 4c4754d 1lucas1apk: add: apple music editorial videos and tape effect improvements
- 991ba1d 1lucas1apk: add: implement high-quality tape start/stop effects
- 64b7c7e ToddyTheNoobDud: add: ts-node support
- a47c1a1 ParrotXray: feat: add short URL and multi-page video support
- 9e3aa6e 1lucas1apk: add: realistic phonograph filter with advanced DSP simulation
- a6c7594 1lucas1apk: add: crossfade concepter
- 33a56d0 ToddyTheNoobDud: add: deezer lyrics support
- 0d25dc8 1lucas1apk: add: implement LazyPy TTS
- 517979d 1Lucas1.apk: add: nodelink API version headers to responses
- b874558 Lucas Morais Rodrigues: add: Hoshimi client
- d1f4355 1lucas1apk: add: loudness normalization features and AGC support
- f311649 a.....: add: add proxy support for all HTTP requests and HLS fetching
Fixed
- 19be26b ToddyTheNoobDud: fix: prevent YouTube stream recovery loop when paused
- 46848b3 ToddyTheNoobDud: fix: bound AACDecoderStream pendingChunks, optimize _tightBuffer, and fix DASH stuck loops
- 063560f ToddyTheNoobDud: fix: resolve event listener accumulation on stream events
- a12e389 1Lucas1apk: fix: improve monochrome instance selection and latency
- b003855 1Lucas1apk: fix: stuck tracks and endings with tape/scratch effects
- 50a8284 ToddyTheNoobDud: fix: ringbuffer memory leaks & slow pool draining on reads
- e15ea1e ToddyTheNoobDud: fix: argument cannot be greater than 1000 for spotify
- 4591fbf ToddyTheNoobDud: fix: oembed beign skipped for tv clients
- 5f22104 ToddyTheNoobDud: fix: playerplugininfo not imported
- cd53ada ToddyTheNoobDud: fix: reportproxystaus undefined in playlists resolving
- 1b6167a 1lucas1apk: fix: resolve 40 TypeScript build errors
- d7fbc41 ToddyTheNoobDud: fix: http being stuck on recovery when left alone in channel
- abbd0d8 ToddyTheNoobDud: fix: mp4 streams instantly emitting finishbuffering
- c1cd0a6 ToddyTheNoobDud: fix: androidvr playback not working (?)
- c86ca23 Kiyomi F. (aka. iaMJ): fix simple typos
- cd618d9 ToddyTheNoobDud: fix: seek only using native seek for every source
- 8ca597f 1lucas1apk: fix: optimize crossfade buffering and fix resource destruction
- 6d826ed 1lucas1apk: fix: prevent crossfade completion reentry and repeated stream starts
- fda0497 1lucas1apk: fix: stabilize crossfade seek transition timing and stream swaps
- 6962db2 1lucas1apk: fix: preserve crossfade state after seek and duplicate preload
- 629da0e 1lucas1apk: fix: handle zero-duration scratch reset correctly
- 4dc82be ToddyTheNoobDud: fix: player beign stuck on a recovery state forever
- 3ba1cfe ToddyTheNoobDud: fix: loadstream erroing when making a request
- aa4ebb1 1lucas1apk: fix: enhance crossfade state management and buffer handling
- c62f5ec 1lucas1apk: fix: improve crossfade controller stability and completion timing
- 8855fbb 1lucas1apk: fix: add full crossfade debug logs with direct logger calls
- 2e0c9e2 1lucas1apk: fix: resolve seek scratch races and stabilize crossfade timing
- 81a3cc3 ToddyTheNoobDud: fix: correctly load the lyrics in subscribe lyrics events
- e3be2b8 1lucas1apk: fix: harden stream cleanup during track replacement
- 5b09876 1lucas1apk: fix: prevent extra worker spawns and dedupe player creation
- d7cf9f7 1lucas1apk: fix: expose host memory and render machine free on unified bar
- b0aeb98 1lucas1apk: fix: recover broken ipc sockets and cleanup unix socket files
- 8cfa64a 1lucas1apk: fix: lazy-init mixer without breaking active mix pipeline
- 489c4a8 1lucas1apk: fix: prevent EPIPE crash when profiler socket client disconnects
- 60aa2c5 1lucas1apk: fix: crossfade fallback timer and energy trigger window timing
- bc2a06d ToddyTheNoobDud: fix: netease import error
- 4893300 ToddyTheNoobDud: fix: spotify erroing after a nodelink restart
- 1c6debf ToddyTheNoobDud: fix: streamdatatime not beign cleared on new tracks
- 40e41d1 ToddyTheNoobDud: fix: clear disabled filters and import makeRequest in tidal
Updated & Improved
- 3e7fec9 1Lucas1apk: improve: build
- 2098c89 ToddyTheNoobDud: improve: spotify auth flow
- c4c43a6 1lucas1apk: improve: refactor HLSHandler and StreamAudioResource
- 6611c97 1lucas1apk: improve: update token request logic for web player
- a0335c0 1lucas1apk: improve: reduce default highWaterMark
- d6707b4 1lucas1apk: improve: enhance Spotify API requests
- e74c353 1lucas1apk: improve: change fmp4 stream type from fmp4-buffered to fmp4
- c7a9853 1lucas1apk: improve: change fmp4 stream type to fmp4-buffered
- bc00edc 1lucas1apk: improve: bump version
- dd35845 1lucas1apk: improve: enhance Monochrome source with HLS support
- fbb9699 1lucas1apk: improve: update monochrome source configuration and validation logic
- 05531b1 1lucas1apk: improve: standardize ts imports and cleanup legacy code
- 61300fb ToddyTheNoobDud: improve: migrate sabr to typescript
- b98db01 1lucas1apk: improve: migrate protor and potoken to ts
- 65874b5 1lucas1apk: improve: migrate eternalbox, bilibili, vkmusic, twitch to ts
- 4b5ef3a 1lucas1apk: improve: migrate spotify to typescript
- c0e94a9 ToddyTheNoobDud: improve: migrate instagram source to typescript
- d32e104 ToddyTheNoobDud: improve: migrate vimeo to typescript & fix playback
- 1477c7d ToddyTheNoobDud: improve: convert soundcloud source to typescript
- 4f9b51d 1lucas1apk: improve: enhance seek functionality
- df7a02b 1lucas1apk: improve: strict typing cleanup and youtube source error normalization
- 08e4cf1 1lucas1apk: improve: migrate Anghami source to TypeScript
- 8df14df ToddyTheNoobDud: improve: shazam resolving speed & bug fixes
- 984678f 1lucas1apk: improve: migrate Pandora source to TypeScript
- 7e25f79 1lucas1apk: fix: resolve biome warnings and improve amazonmusic performance
- 3e0bedb ToddyTheNoobDud: update: give preference for extracttitle instead of oembed
- 305f638 ToddyTheNoobDud: improve: convert youtube to typescript & fix bugs
- 2e66f39 ToddyTheNoobDud: improve: amazonmusic performance & add isrc extraction support
- f040bb3 ToddyTheNoobDud: update: adapt to new voice changes
- 61bd50f 1lucas1apk: improve: add CLA Assistant workflow for contributor agreement management
- b489b50 1lucas1apk: improve: migrate gaana to typecript
- 57b33c5 1lucas1apk: improve: migrate tidal to typecript
- a0383f4 1lucas1apk: improve: migrate LazyPy TTS source from JavaScript to TypeScript
- a55bb04 1lucas1apk: improve: migrate Qobuz source from JavaScript to TypeScript
- 4593dda 1lucas1apk: improve: migrate SongLinkSource from JavaScript to TypeScript
- 57595f3 1lucas1apk: improve: migration for JioSaavn, Mixcloud, and Netease sources
- e52acde 1lucas1apk: improve: migrate Tumblr source to TypeScript
- dbe9209 1lucas1apk: improve: update typings and remove deprecated types
- c7c1b90 1lucas1apk: improve: migrate lyrics aligner and manager to TypeScript
- 53c8522 1lucas1apk: improve: migrate Bilibili lyrics provider to TypeScript
- 88a6cbf 1lucas1apk: improve: migrate LetrasMus lyrics provider to TypeScript
- 170f7d5 1lucas1apk: improve: migrate YouTube lyrics provider to TypeScript
- d528206 1lucas1apk: improve: migrate Yandex Music lyrics provider to TypeScript
- 2f1ff70 1lucas1apk: improve: migrate Deezer lyrics provider to TypeScript
- f6c28c3 1lucas1apk: improve: migrate spotifyCanvas module to TypeScript
- 73a9c20 1lucas1apk: improve: migrate spotifyAuth module to TypeScript
- 5572b5a 1lucas1apk: improve: migrate Google Translate module to TypeScript
- eeba960 1lucas1apk: improve: migrate letrasmus and wikipedia meaning providers to TypeScript
- 647dd67 1lucas1apk: improve: enhance proxy handling and reporting in CipherManager
- b22c983 1lucas1apk: improve: enhance proxy reporting and search
- 7b3dcf3 1lucas1apk: improve: add HTTP proxy support for range fetching in stream processing
- 74d6857 1lucas1apk: improve: remove crossfade functionality from audio processing
- fa0249f 1lucas1apk: improve: proxy health tracking and refactor hardcoded YouTube fallbacks
- b1e95d1 1lucas1apk: improve: streamline search handling
- d63686c 1lucas1apk: improve: validate cached proxy URL before using cached track URL
- e1032a3 1lucas1apk: improve: rotate proxy usage in YouTubeSource methods
- a77bd68 1lucas1apk: improve: update proxy handling in loadStream
- 0677dd0 1lucas1apk: improve: integrate proxy usage in YouTube track URL
- f25847c 1lucas1apk: improve: add proxy type option to HttpProxyConfig interface
- 33f021b 1lucas1apk: improve: enhance URL handling for reverse proxy s
- 52f564c 1lucas1apk: improve: add timeout to HTTP requests in YouTubeSource
- cf6447f 1lucas1apk: improve: add proxy support to YouTube client requests
- b75cb6e ToddyTheNoobDud: update: upload missing headqueue file
- 46a3bb1 ToddyTheNoobDud: improve: use head-index queues for workers
- f5b57ed 1lucas1apk: improve: update jukebox URL handling and base URL
- c6292cc Lucas Morais Rodrigues: Merge pull request #192 from southctrl/dev
- a499dbc Bernard: Update lastfm.ts
- 51a970a 1lucas1apk: remove: strip automix/BPM/key analysis from crossfade pipeline
- 0a4f760 1lucas1apk: improve: merge dual loops and cut allocations in energy analysis
- 5d104d0 1lucas1apk: improve: defer energy/BPM/key analysis until crossfade is scheduled
- a2de2b3 1lucas1apk: improve: cache expensive profiler introspection calls with 1.5s TTL
- 04033de 1lucas1apk: improve: reduce per-chunk CPU in CrossfadeController for many players
- d040df4 1lucas1apk: improve: reduce BPM log spam to debug level with 30s throttle
- 00632a4 1lucas1apk: improve: eliminate hot-path allocations in audio processing pipeline
- 86888f0 Lucas Morais Rodrigues: Merge pull request #191 from Tomato6966/pm2-ecosystem-sample
- 6b8620c Chrissy8283 (aka Tomato6966): Add ecosystem for quick pm2 launch
- 478560a Lucas Morais Rodrigues: Merge pull request #189 from aroradev1010/refactor/config-validation-architecture
- f192eec Dev Arora: improve: config validation rules and architecture
- 9fc7c06 ToddyTheNoobDud: update: convert deezer source to typescript
- f1c4a00 ToddyTheNoobDud: update: migrate audiomack source to typescript
- 5c493cc ToddyTheNoobDud: update: downgrade android_vr version & upload netease to dist
- 73ee9bc Lucas Morais Rodrigues: Merge pull request #188 from southctrl/dev
- 53e06aa Bernard: Update netease.js
- d3f9b04 Lucas Morais Rodrigues: Merge pull request #186 from southctrl/v3
- ed87ffd Lucas Morais Rodrigues: Merge branch 'dev' into v3
- 5b0c8ba Bernard: Update config.default.js
- 17fba49 Bernard: Update netease.js
- 43a591f 1lucas1apk: update: migrate the Genius lyrics provider to strict TypeScript
- 021234d 1lucas1apk: update: rebuild dist for the LRCLIB lyrics migration
- 25a03cd 1lucas1apk: update: migrate the LRCLIB lyrics provider to strict TypeScript
- b0317f0 1lucas1apk: update: migrate the Twitter source to strict TypeScript
- db0eb19 1lucas1apk: update: migrate the Last.fm source to strict TypeScript
- 7ecabbe 1lucas1apk: update: migrate the Shazam source to strict TypeScript
- 4befd6f 1lucas1apk: update: migrate the LetrasMus source to strict TypeScript
- 4efa215 1lucas1apk: update: migrate the Genius source to strict TypeScript
- 467bb5c 1lucas1apk: update: migrate the iHeartRadio source to strict TypeScript
- 47c5609 1lucas1apk: update: migrate the Bandcamp source to strict TypeScript
- 41fb453 1lucas1apk: update: migrate the Bluesky source to strict TypeScript
- 1acc827 1lucas1apk: update: migrate the local source to strict TypeScript
- 56350cb 1lucas1apk: update: migrate more social sources to strict TypeScript
- e2b7b87 1lucas1apk: update: migrate the RSS source to strict TypeScript
- 60767b0 1lucas1apk: update: migrate the Google TTS source to strict TypeScript
- 2b68752 1lucas1apk: update: migrate the Flowery source to strict TypeScript
- 83e62c8 1lucas1apk: update: migrate the Piper TTS source to strict TypeScript
- 5c2c194 1lucas1apk: update: migrate the NicoVideo source to strict TypeScript
- 8bcc298 1lucas1apk: update: rebuild dist for the TypeScript route migration
- dce71c0 1lucas1apk: update: move the last API routes to strict TypeScript
- b709b4a 1lucas1apk: improve: autoMixController to implement high-dimensiona
- 8d1bf2e 1lucas1apk: improve: configValidation
- 77ad6bc 1lucas1apk: improve: crossfade
- e7cf58a Lucas Morais Rodrigues: Merge pull request #183 from aroradev1010/refactor/config-validation-architecture
- 2a8f6ff Priyanshuuuu: improve: use hifi api for direct streaming in tidal, add artist link resolving
- 6cf9f3d ToddyTheNoobDud: update: webremix params to latest
- b444d49 Dev Arora: improve: overhaul config validation architecture
- 8d321f2 ToddyTheNoobDud: update: biome check write
- f671c98 ToddyTheNoobDud: improve: playermanager typings
- 093539b ToddyTheNoobDud: update: convert the rest of the managers to typescript
- f2c64be ToddyTheNoobDud: update: convert playermanager to typescript
- b48fff4 ToddyTheNoobDud: update: convert lyricsmanager to typescript
- 0191024 ToddyTheNoobDud: update: fix sourceworkermanager importing & add node ts support
- a180089 ToddyTheNoobDud: update: convert sourceworkermanager to typescript
- 1909e48 ToddyTheNoobDud: update: convert workermanager to typescript
- 2c307bd Lucas Morais Rodrigues: Merge pull request #182 from aroradev1010/config-validation-coverage
- 197387c Dev Arora: improve: expand validation coverage across all domains
- a613dbb Lucas Morais Rodrigues: Merge pull request #181 from idMJA/idMJA-patch-1
- 44923a2 UnschooledGamer: improve: apple music to utilise country retrieved from url
- 6e9748e ToddyTheNoobDud: update: remove libsamplerate usage from symphonia
- 9bdad35 1lucas1apk: improve: enhance crossfade funcionalit
- cb1c487 ToddyTheNoobDud: update: migrate musixmatch to typescript
- 9da5657 ToddyTheNoobDud: improve: optimize general Int16Buffer usage in playback
- c6de608 1lucas1apk: improve: enhance buffer management and streamline ring buffer operations
- b1bc8a5 Lucas Morais Rodrigues: Merge pull request #180 from southctrl/patch-4
- c977829 Lucas Morais Rodrigues: Merge pull request #179 from southctrl/patch-3
- 581e43b Bernard: Update config.default.js
- cf2de3d Bernard: Update config.default.js
- f078fa2 1lucas1apk: improve: enhance net pulse display with additional connection metrics
- 4872cd5 1lucas1apk: improve: enrich net pulse card with connection details
- 9c8feb3 1lucas1apk: improve: move net pulse below runtime, use connection metrics
- b7b369b ToddyTheNoobDud: improve: buffer pool reutilization & management
- 01c83bd 1lucas1apk: improve: profiler stream buffer and memory card clarity
- 822f4fb ToddyTheNoobDud: improve: lazyload lyrics/meanings & fix sockets memory leak
- 9f0b907 ToddyTheNoobDud: improve: use bufferpool in opus encoder
- b63c9c9 Lucas Morais Rodrigues: Merge pull request #178 from aroradev1010/config-validation-manager
- d150bab 1lucas1apk: improve: add error handling for HTTP socket and client errors
- 7e4367a 1lucas1apk: improve: reduce buffer copies in fade and fmp4 aac processing
- 850920a 1lucas1apk: improve: make stream buffers configurable and trim buffer pool retention
- c3ea722 1lucas1apk: improve: profiler ui details and reduce buffer retention copies
- af97d3c ToddyTheNoobDud: improve: use v8 serialization for worker communication
- 9efaf71 1lucas1apk: improve: profiler UI telemetry, track details and socket recovery
- d2842eb 1lucas1apk: improve: cleanup audio stream refs on finish and add GC probes
- dc5cf9c toddynnn: Merge pull request #177 from southctrl/patch-2
- 0510642 Dev Arora: improve: migrate config validation to rule-based manager (woc)
- b8762c7 Bernard: Update config.default.js
- f5d590b Lucas Morais Rodrigues: Merge pull request #176 from southctrl/patch-1
- 4fccb64 Bernard: Update config.default.js
- b85c306 1lucas1apk: improve: reduce copy churn and tighten stream cleanup
- 865e11e 1lucas1apk: improve: reduce buffer copy churn and add youtube cipher cleanup
- 285bf2d ToddyTheNoobDud: update: biome to 2.4 & correctly dynamic import mp4box
- b9972e7 ToddyTheNoobDud: improve: lazy load mp4box for seekable streams
- 701e161 1lucas1apk: improve: type safety and seek functionality
- 71583cc ToddyTheNoobDud: update: convert sourcemanager to typescript
- c67286b ToddyTheNoobDud: update: use a shared validator file for fastest-validator
- 520c335 1lucas1apk: improve: connection manager memory usage and reactive logic
- 015137a 1lucas1apk: improve: apple music amp-api and editorial video extraction
- 0136ad2 1lucas1apk: improve: youtube fallback source chain
- e50d989 1lucas1apk: update: transpile project to dist and add start:dist
- 7a30dfd Lucas Morais Rodrigues: Merge pull request #175 from ParrotXray/v3
- c1d68bb 1lucas1apk: improve: optimize memory boot paths and source worker scaling
- 12fd76b 1lucas1apk: improve: lazy load jsdom in potoken for memory efficiency
- 2718c00 ToddyTheNoobDud: update: support mp4/m4a seeking & enable deezer seeking
- 06b4639 1lucas1apk: update: enhance getRecommendations
- 14fcd21 ToddyTheNoobDud: Merge branch 'dev' of https://github.com/PerformanC/NodeLink into dev
- 91be137 ToddyTheNoobDud: update: disable sts requeriment for web remix client
- 89b3937 Lucas Morais Rodrigues: Merge pull request #173 from a...../filters
- 77984e5 a.....: update: reformat filter files for consistent indentation
- 818638d a.....: improve: migrate filters to TypeScript and enhance implementations
- 76c3106 1lucas1apk: update: improve loadTracks handler
- e8c3f5f 1lucas1apk: update: expand decrypter tsdoc
- 5ece744 Lucas Morais Rodrigues: Merge pull request #171 from a...../decrypter
- 1c3ffcf Lucas Morais Rodrigues: Merge pull request #172 from a...../feat/port-processing-to-ts
- 30209ee a.....: improve: port playback processing modules to TypeScript
- 4b3ab8e a.....: improve: port DES and Blowfish decrypters to TypeScript
- 2024426 Lucas Morais Rodrigues: Merge pull request #169 from a...../dev
- 6598a56 a.....: improve: refactor hls module and migrate to typescript
- ad24337 Lucas Morais Rodrigues: Merge pull request #168 from a...../dev
- b18c0ca a.....: update: revise voice relay, frame types, and upgrade handler
- 9f049f0 a.....: improve: convert voice module to typescript
- 15a913f 1lucas1apk: update: finish partial utils migration
- 9a3c3a7 ToddyTheNoobDud: update: migrate loadtracks to typescript
- 9d25113 ToddyTheNoobDud: update: migrate hlshandler to typescript
- 22825ee Lucas Morais Rodrigues: Merge pull request #167 from a...../dev
- 7d26574 Appu: Merge branch 'PerformanC:dev' into dev
- 867be53 Lucas Morais Rodrigues: update: Lavalink-Client entries
- 807a181 Appu: Merge branch 'PerformanC:dev' into dev
- 7167055 a.....: update: add TSDoc and fix linting for BufferPool and RingBuffer
- 4b0e789 a.....: improve: safer acquire() without non-null assertion
- 3b081db a.....: improve: migrate RingBuffer to TypeScript and add accessors
- 7c37698 ToddyTheNoobDud: update: persist existing cookies during redirects
- e67b83b 1lucas1apk: update: migrate dos/rate limit managers
- 410d4a2 1lucas1apk: update: migrate stats manager to ts
- ac6d287 1lucas1apk: update: migrate credential and track cache managers to TypeScript
- 7c9c44e 1lucas1apk: update: migrate FlvDemuxer to TypeScript and restructure code
- b038b31 1lucas1apk: update: migrate connection manager to TypeScript
- 4d18e72 ToddyTheNoobDud: update: migrate opus to typescript
- 9a893d9 ToddyTheNoobDud: update: soundcloud aborted stream handling
- dcbe95b 1lucas1apk: update: enforce ts extensions and add webm demuxer
- 68c5d09 1lucas1apk: update: migrate api handler to TS and remove SEA build
- 4dd9d73 1lucas1apk: improve: timescale processing
- b6b77b1 ToddyTheNoobDud: update: migrate streamprocessor to typescript
- 9534a77 TheFrogNinja: update: migrate worker main to ts
- 5d15fbe 1lucas1apk: update: migrate player to ts
- 830a664 1lucas1apk: update: migrate source worker to TypeScript with comprehensive types
- 054f3bd 1lucas1apk: update: migrate constants to TypeScript and update import paths
- 9e2ca22 1lucas1apk: update: remove old types and restructure typings for improved clarity
- b6c082a ToddyTheNoobDud: update: add new tvcast client & fix some yt patches
- 9d6b59f UnschooledGamer: update: migrate main entry to TypeScript, Bun types, added types.ts file
- ca6e3ab 1lucas1apk: improve: create tsconfig.json
- 7f73c62 Lucas Morais Rodrigues: Merge pull request #166 from bre4d777/dev
- 9322b0c Priyanshuuuu: Merge branch 'PerformanC:dev' into dev
- e674494 Priyanshuuuu: improve: Added searchType param in deezer, add some track metadata in pluginInfo object of result (album, artist , preview url)
- 521219a Priyanshuuuu: improve: Added searchtype param in deezer, add some track metadata in pluginInfo object of result (album, artist , preview url)
- 050a12d Lucas Morais Rodrigues: Merge pull request #165 from a...../feat/proxy
- b640b49 a.....: improve: use PlaylistParser and simplify stream logic
- 8b13daf Lucas Morais Rodrigues: Merge pull request #164 from bre4d777/dev
- 49ab0c9 Priyanshuuuu: improve: Soundcloud now rejects tracks that resolve to 30s preview
- f709f83 a.....: improve: rewrite gaana source using official API
What's Changed
- improve: Soundcloud now rejects tracks that resolve to 30s preview by @bre4d777 in #164
- Feat/proxy by @A..... in #165
- improve: rewrite gaana source using official API by @A..... in #163
- improve: add search by type in deezer, apple music by @bre4d777 in #166
- improve: migrate RingBuffer to TypeScript and add accessors by @A..... in #167
- convert voice module to typescript by @A..... in #168
- Refactor HLS Module: TypeScript Migration and Functional Playlist Parser by @A..... in #169
- improve: port playback processing modules to TypeScript by @A..... in #172
- improve: port DES and Blowfish decrypters to TypeScript by @A..... in #171
- improve: migrate filters to TypeScript and enhance implementations by @A..... in #173
- feat: add short URL and multi-page video support by @ParrotXray in #175
- update: Updated misspelling of required by @southctrl in #176
- Update: Add apikey option for last.fm by @southctrl in #177
- improve: migrate config validation to rule-based manager -WoC by @aroradev1010 in #178
- add: Support for iheartradio by @southctrl in #179
- add: iheartradio to config.js by @southctrl in #180
- fix simple typos by @idMJA in #181
- improve: expand validation coverage across all domains -WoC by @aroradev1010 in #182
- improve: use hifi api for direct streaming in tidal, add artist link … by @bre4d777 in #184
- improve: overhaul config validation architecture -WoC by @aroradev1010 in #183
- Add: Netease source to nodelink by @southctrl in #186
- Update: Fixed ArtworkUrl being null. by @southctrl in #188
- improve: config validation rules and architecture by @aroradev1010 in #189
- Add ecosystem for quick pm2 launch by @Tomato6966 in #191
- Fix: Resolves the 406 when playing a Last.fm track. by @southctrl in #192
- sync: v3 < dev by @1Lucas1apk in #198
New Contributors
- @A...... made their first contribution in #165
- @ParrotXray made their first contribution in #175
- @idMJA made their first contribution in #181
- @Tomato6966 made their first contribution in #191
Contributors
- @1Lucas1apk (Lucas Morais Rodrigues)
- @ToddyTheNoobDud (toddynnn)
- a..... (A..)
- @Priyanshuuuu (bre4d777)
- @aroradev1010 (Dev Arora)
- @southctrl (Bernard)
- @UnschooledGamer
- @ParrotXray
- @thefrogninja
- @Tomato6966 (Chrissy8283)
- @IAMJ (Kiyomi F.)
Full Changelog: v3.6.0...v3.7.0