tydle / mp3 deck
A hosted web app: paste a YouTube video or playlist link, get the highest-quality mp3 of every track — powered by a Rust YouTube extractor compiled to WebAssembly.
What it is
tydle is a YouTube video
extractor written in Rust — a small subset of yt-dlp that runs natively or in
any JavaScript runtime via wasm. The deck is a zero-dependency Node server on
top of it: tydle (as a wasm module) extracts the streams, the server picks the
best audio-only stream, and ffmpeg transcodes it to mp3 at LAME's
highest VBR quality, streamed straight to the browser.
Details it gets right
YouTube paces plain downloads to roughly twice the media bitrate — a
53-minute mix would take 25 minutes. The deck fetches sources in 10 MiB
Range chunks instead, which YouTube serves at full speed: same
file, 38 seconds.
Playlists (including auto-generated radio mixes) are enumerated from the
page data and downloaded sequentially with per-track progress and a live
ETA. Piped mp3 can't carry a Xing VBR header, so each file gets an exact
ID3 TLEN tag instead — players still show the right duration.
Title and artist tags come along for free.
How it's hosted
YouTube bot-checks requests from datacenter IPs — every innertube client returns “Sign in to confirm you're not a bot”, so extraction fails outright from a VPS. A Proof-of-Origin token (BotGuard attestation) isn't enough to lift an IP-level block.
So the deck doesn't extract on the server. chilos.dev/tydle/
is an nginx reverse proxy on the VPS that forwards over a
persistent reverse SSH tunnel to the deck running on a machine at home — so
the YouTube requests originate from a residential IP that isn't flagged. The
VPS only ever sees the finished mp3 stream on its way to your browser.
Run it
The live deck runs at chilos.dev/tydle/. To run it
locally, build the wasm package with wasm-pack, run
node server.js, then paste a link.