# Bundled binaries AeroFetch spawns these from the **main process**. `yt-dlp.exe` (and optional `aria2c.exe`) ship in the installer via electron-builder `extraResources` (outside the asar archive) and are committed here so a fresh clone builds and runs. `ffmpeg.exe` + `ffprobe.exe` are **NOT shipped in the installer** — they're the bulk of its size, so they're downloaded on first run into `userData/bin` (see `src/main/ffmpegSetup.ts`, pinned in `src/main/config.ts`). The copies here are used only as a **dev seed** — `ensureManagedFfmpeg` copies them into `userData/bin` so `npm run dev` needs no download — and are excluded from the shipped build. ``` resources/bin/ ├── yt-dlp.exe (bundled + committed) ├── ffmpeg.exe (dev seed only — excluded from the installer) ├── ffprobe.exe (dev seed only — excluded from the installer) └── aria2c.exe (optional, bundled) ``` ## yt-dlp.exe - Download: https://github.com/yt-dlp/yt-dlp/releases/latest - Grab `yt-dlp.exe`. - Unlicense / public domain. ## ffmpeg.exe + ffprobe.exe (dev seed only) - The app downloads these on first run from the pinned upstream archive in `src/main/config.ts` (`FFMPEG_ARCHIVE_URL` + `FFMPEG_ARCHIVE_SHA256`). To bump the version, edit those constants — recompute the SHA-256 from the new zip — in their own commit (the "pinned decisions" discipline). - For local dev, drop **both** `ffmpeg.exe` and `ffprobe.exe` here — they come together in the same archive's `bin/` folder and their versions must match. yt-dlp needs `ffprobe.exe` to read media durations; without it, duration-dependent post-processing fails with "ffprobe not found" (`--sponsorblock-remove`, `--force-keyframes-at-cuts`, and `--split-chapters` all error out). Any recent win64 build works, e.g. https://www.gyan.dev/ffmpeg/builds/ or https://github.com/BtbN/FFmpeg-Builds/releases. - The installer no longer redistributes ffmpeg, so there's no ffmpeg license text to ship with the build — users fetch the binary from upstream themselves. ## aria2c.exe (optional) - Powers the "Use aria2c downloader" toggle in Settings → Network for faster multi-connection downloads. If it's missing, that toggle silently falls back to yt-dlp's built-in downloader — nothing breaks. - Download: https://github.com/aria2/aria2/releases (grab the `aria2-*-win-64bit-build1.zip`, copy `aria2c.exe` from it here). - GPL-2.0 — ship its license text alongside the installer before release if bundled. > Branding stays generic: AeroFetch is a "yt-dlp frontend." Keep upstream > license texts with any distributed build.