Yt-dlp: External JavaScript runtime now required for full YouTube support

You’ll need a JavaScript helper to save YouTube vids — and the comments are on fire

TLDR: yt-dlp now needs an external JavaScript tool (like Deno) to reliably download YouTube. The crowd is split between practical “just install it” vibes and doom-filled predictions of app-only lock-in and stronger DRM, accusing YouTube of tightening control over users and creators.

yt-dlp, the cult-favorite video downloader, just dropped a spicy update: to fully grab YouTube, you now need an external JavaScript engine like Deno. Without it, YouTube support is “deprecated” and will keep degrading—eventually breaking entirely. That’s the news; the drama is in the comments. Apocalypse camp warns the web is dying: one user forecasts YouTube going app-only, leaving browser folks behind. DRM camp asks why Google hasn’t slapped full Widevine (a streaming lock) yet, while archivists clutch their hard drives. Security camp counters with receipts from the EJS wiki: Deno runs with tight permissions, and it’s the recommended choice. Meanwhile, rage camp vents that YouTube’s adblock wars, AI training, and API crackdowns show a monopoly flex with no real competition.

There’s humor too: “Install Deno to install videos,” “Widevine is coming, hide your downloads,” and callbacks to the previous thread. Pragmatists shrug: the official yt‑dlp builds already include the EJS component, and Deno is enabled by default—Node, Bun, and QuickJS work if you really want. Package maintainers get a licensing footnote (MIT/ISC in the split-off module) and pinned versions drama. The mood: reluctant compliance, rebellious energy, and a dash of meme-fueled doom

Key Points

  • yt-dlp 2025.11.12 adds official support for external JavaScript runtimes to fully support YouTube.
  • Supported runtimes are Deno (min 2.0.0), Node.js (min 20.0.0), QuickJS (min 2023-12-9), QuickJS-ng (all versions), and Bun (min 1.0.31).
  • Only Deno is enabled by default; other runtimes are disabled by default for security reasons.
  • yt-dlp requires the yt-dlp-ejs component to use a JS runtime; it is bundled with official executables and the yt-dlp[default] Python package.
  • YouTube support without a JS runtime is deprecated, increasingly limited, and may eventually become impossible; version pinning and packaging guidance are provided for maintainers.

Hottest takes

"In ten years time YouTube will be entirely inaccessible from the browser" — xeonmc
"I wonder why YouTube doesn't implement full DRM, such as Widevine, at this point" — reddalo
"They're very much aware that there is no real competition and so they're taking full advantage of it" — bilekas
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.