yay (Yet Another YouTube Downloader) is an Electron-based GUI wrapper for yt-dlp on Windows, running in the system tray. Despite the name, yay can download from any site supported by yt-dlp.
yay can be installed by downloading and running the latest setup from the releases page.
On first run, yay will automatically download the latest version of yt-dlp if it isn't found in your system's PATH. It will also download and use yt-dlp's builds of FFmpeg and FFprobe.
Use Bun 1.4.1 for dependency management and scripts, with Node.js 24 and the Rust MSVC toolchain installed. Node.js and Electron remain the JavaScript runtimes for the existing tools and application.
Run bun install --frozen-lockfile to install the locked dependencies. After changing dependencies with Bun, include the updated bun.lock with your changes.
Use bun run test, bun run typecheck, and bun run lint for validation. Use bun run audit for production vulnerabilities at any severity and high/critical vulnerabilities across all dependencies. Always use bun run test to invoke the existing Node.js tests.
The Vite configs for the app and renderer both require the shared package to be built. Run bun run build at least once before running any other development commands.
Run the renderer in watch mode with bun run watch and the application in development mode with bun run dev.
The following must be installed on your system and added to the PATH:
Run bun run package to build the application, and bun run create-installer to create both the online files archive and the setup binary.
This application uses feature flags to enable or disable certain functionality at runtime. Feature flags are defined in a features.toml file in the app's data folder, accessible by clicking the Open data folder button in application settings. The application must be restarted after modifying feature flags for changes to take effect.



