v0.2.8
This release improves private-room correctness and significantly reduces playback startup latency, especially in CLI and Render-hosted scenarios.
Highlights
- Private rooms now reliably close when the host leaves/disconnects without transfer.
- Stream resolution is faster and more resilient with cache, preload, and parallel fallback logic.
- Better diagnostics for stream source/failure paths.
What changed
Private room lifecycle hardening
- Fixed private-room host exit behavior on disconnect path:
- If host leaves without transfer, room is ended immediately.
- Server emits
room:ended(host_left_without_transfer), disconnects members, and deletes room state.
- Prevents unintended host auto-transfer in private rooms on host disconnect.
Server stream extraction and latency improvements
- Added yt-dlp player-client fallback chains for datacenter environments.
- Added structured extraction failure classification:
bot_challengeunavailableunknown
- Added fast-fail behavior (
stopOnBotChallenge) to reduce wasted retries. - Improved
/youtube/searchand/youtube/streamresponses with structuredcodevalues and clearer status mapping. - Added stream URL server cache:
- TTL-based (short-lived, safe for expiring YouTube URLs)
- bounded size with eviction
- Added in-flight dedupe for stream resolution by
videoId(prevents duplicate concurrent resolution work). - Added background stream pre-resolution on
queue:add. /youtube/streamnow can return cache-hit metadata (cached).
CLI stream startup improvements
-
get_stream_urlnow races server and local yt-dlp in parallel (first success wins). -
Added safer cancellation cleanup for local yt-dlp subprocesses.
-
Added stream preloading in room flow (including next-track preload path).
-
Kept/expanded stream cache usage in CLI runtime.
-
Added playback debug visibility in system log:
⚡ stream source: cache (local)⚡ stream source: cache (server)⚡ stream source: server live⚡ stream source: local yt-dlp
Documentation updates
- Updated
cli/README.mdstreaming notes to reflect:- server cache + pre-resolution
- CLI parallel resolver race
- stream source diagnostics
- Updated root
README.mdto reflect:- private host disconnect room-destroy behavior
- latest extraction/cache/preload architecture
Notes
- Datacenter-hosted yt-dlp extraction can still be challenged by YouTube policies.
- This release focuses on minimizing user-visible delay and improving fallback reliability rather than relying on a single extraction path.
Upgrade
pip install --upgrade vaux-cli==0.2.8Verify:
vaux --version
