• v0.1.0 192ee16bba

    v0.1.0
    All checks were successful
    Build, Deploy & Release / build-deploy (push) Successful in 1m43s
    Stable

    FiLL released this 2026-05-16 02:44:29 +00:00 | 1 commits to main since this release

    yt-dlp.wasm v0.1.0 — initial release

    Pure-Rust WebAssembly YouTube extractor. Compiled with wasm-pack
    --target web; runs entirely client-side in a modern browser.

    Highlights

    • YouTube extractor calls InnerTube directly with the ANDROID client
      context (no HTML scraping, no SABR). Returns plain per-format URLs
      all the way up to 4K (2160p) with full videoDetails, captions, and
      thumbnails — no signature cipher and no n-param transform needed.
    • Unified Format / Subtitle / VideoInfo schema matching yt-dlp's
      info_dict subset.
    • CORS proxy plumbing via window.fetch_with_proxy (GET) and
      window.fetch_post_with_proxy (POST). Proxy URL is runtime-
      configurable from the host page.
    • Stub extractors in place for X/Twitter, TikTok, and Instagram.

    Bundle (yt_dlp_wasm-v0.1.0.zip)

    • yt_dlp_wasm.js — wasm-bindgen JS glue (ES module)
    • yt_dlp_wasm_bg.wasm — the compiled module
    • yt_dlp_wasm.d.ts — TypeScript definitions
    • yt_dlp_wasm_bg.wasm.d.ts — wasm-bindgen type stubs
    • package.json — npm-style metadata

    Usage
    import init, { extract, supported_sites } from './yt_dlp_wasm.js';
    await init();
    const info = await extract('https://www.youtube.com/watch?v=...', /* useProxy */ true);

    Host page must define window.fetch_with_proxy and
    window.fetch_post_with_proxy — see index.html in the source tree for
    a reference implementation.

    Note on YouTube version drift
    YouTube enforces a minimum ANDROID clientVersion. v0.1.0 ships with
    20.10.38. When YouTube tightens this again, bump
    ANDROID_CLIENT_VERSION in src/extractor/youtube.rs to whatever
    yt-dlp's _DEFAULT_CLIENTS currently uses.

    Downloads