Skip to content

release: merge v3 into dev for v3.10.0 - #260

Open
1Lucas1apk wants to merge 150 commits into
v3from
dev
Open

1Lucas1apk wants to merge 150 commits into
v3from
dev

Conversation

@1Lucas1apk

Copy link
Copy Markdown
Member

Summary

Consolidates the accumulated changes from v3 into dev as preparation for the v3.10.0 release.

This merge brings the existing development history together and establishes the next release baseline.

Release

Target version: 3.10.0

Notes

  • Preserve the existing changes from both branches.
  • Resolve conflicts without discarding unrelated work.
  • Verify the build and distribution workflows.
  • Prepare the release after successful integration.

snakkeeh and others added 30 commits September 15, 2026 08:03
fix: handle object-form ipBlocks in routeplanner status
improve: reuse route planner ip block entry type
setDucking was declared in the route interface and already implemented on
Player, but PlayerManager never got the bridging method, so toggling
ducking crashed with a 500
fix: wire setDucking into PlayerManager
Moved bootstrap and server logic into their own modules.
Cleaned up index.ts and simplified the startup and IPC flow.
Removed unnecessary code, types and comments.

🚧 Cleanup #1
(All thanks to JustEvil because i just replicated this and put on your
fixes lol)

Fixes this error: Cannot read properties of null (reading 'canStop')
Refactored server initialization with synchronous constructor and 3-phase startup.
Encapsulated monitor timers in WeakMap and delegated voice routing to VoiceRouter.
Removed internal defensive checks and ghost properties.
Delegated worker source caching and load updating to WorkerManager.

🚧 Cleanup #2
When useBunServer is enabled, createBunServer initializes Bun.serve(), which binds and starts listening immediately. Calling listenHttpServer afterwards caused a TypeError because Bun server instances do not have an .on() method.
fix: skip listenHttpServer when using native Bun server
If you want to select a specific lyrics source from the params you now
can.
this should fix urls with extra queries failing to resolve
This should fix insta audios again (direct playback).
Mint a fresh PO token inline when the server reports limited playback,
instead of tearing down the whole session. Full recovery now only runs
after sustained failures or media stalls.

Corrected the VideoPlaybackAbrRequest namings.

Start bandwidth timing at first byte, excluding handshake.

Merge contiguous buffer chunks sharing one backing store.

The base i used for this commit (namings, contiguous buffer etc is from
LuanRT/googlevideo#54, credits to him.)
YouTube audio now downloads in bigger pieces when the connection is
healthy. After 3 clean responses it allows chunks up to 4 MB instead of
stopping at 512 KB, and it drops back to 512 KB as soon as anything
fails.

It also checks how full the playback buffer is and asks for less when
the buffer is nearly full.

Fixed too: a 416 response in the middle of a track used to cut playback
short. Now the stream only ends when the download is actually finished,
otherwise it grabs a fresh link and keeps going.
1Lucas1apk and others added 30 commits November 7, 2026 20:30
Support multiple rotating proxies via lyrics.musixmatch.proxy array
with round-robin selection and automatic rotation on captcha or 403.
Also report health metrics to the global ProxyManager.
Add pattern matching and search query extraction for YouTube Music

(/search?q=...) and standard YouTube (/results?search_query=...)

browser search URLs directly in YouTubeSource.resolve.
Add pattern matching and browseId resolution for YouTube Music (/browse/...)

and YouTube browse URLs, resolving canonical album playlists directly.
Add full support for Naver Chzzk (치지직) live streams, VODs and clips.

Support HLS AAC audio-only playback, search queries (chsearch) and

fix live HLS discontinuity-sequence tag parsing in PlaylistParser.
Replace stream.pipe(passthrough) with explicit data and drain event

handlers to prevent playback deadlocks and mid-track freezing.
Support track, album, and playlist resolution, multi-search with zmsearch,

dynamic session HMAC-SHA512 signing, and audio streaming with geobypass.
Add opusComplexity (0–10) for playback and HLS encoding.
Default to 6 to reduce CPU usage, with a possible audio quality
tradeoff. Yet i din't notice any while testing.

If you want the quality that were before this commit, set the complexity
to 10.
Support track, album, playlist, toplist, and singer resolution,

declarative audio stream validation via executeVariant with backpressure,

and fallback searching for VIP-restricted tracks.
Run biome check with write and unsafe flags across all files in src

to enforce consistent formatting, import sorting, and linting rules.
Signed-off-by: Lucas Morais Rodrigues <76886832+1Lucas1apk@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants