[Announcement] Upcoming new requirements for YouTube downloads (#14404) Overview This GitHub issue from the yt-dlp repository announces important upcoming changes related to YouTube downloads. Key Points New Requirement: Deno JavaScript Runtime Due to recent significant changes on YouTube's side, the current built-in JavaScript interpreter in yt-dlp will no longer suffice for solving required JavaScript challenges. yt-dlp will now require the installation of the JavaScript runtime Deno to continue functioning properly with YouTube downloads. Reason for Change The previously used built-in JavaScript interpreter (ytdlp/jsinterp.py) is insufficient after drastic YouTube changes. yt-dlp must leverage a full JavaScript runtime environment (Deno) to solve the challenges for downloading from YouTube. What Users Need to Do Everyone must install Deno to keep YouTube downloads operational. Additional steps vary based on how you installed yt-dlp: PyInstaller-bundled executables (e.g., yt-dlp.exe, yt-dlpmacos, yt-dlplinux): No additional steps needed besides installing Deno. These executables bundle all necessary JavaScript components. PyPI package users (installed via pip, pipx, etc): Must install or upgrade yt-dlp with the optional default dependency group included: Official zipimport binary users (the yt-dlp Unix executable): Must either run yt-dlp with an extra flag enabling Deno to download required npm dependencies OR install yt-dlp's JavaScript solver package in the Python environment. The exact flag name and package name are TBD. Third-party package users (e.g., installed with pacman, brew, etc): Actions will depend on how those package repositories handle this change. Options available for official zipimport binary users should also apply. Additional Information The issue links to: The built-in JavaScript interpreter source: ytdlp/jsinterp.py A related issue on changes made by YouTube: #14400 The relevant pull request introducing the Deno runtime support: #14157 Labels discussion/announcement site:youtube --- This change is crucial for continued functionality of yt-dlp when downloading from YouTube, reflecting adaptations to significant upstream changes in YouTube's JavaScript challenges.