They're >100MB each, redundant with the app's existing first-run download (ffmpegSetup.ts), and blocked publishing the repo to GitHub (100MB file limit). Gitignore them instead; npm run dev falls back to that download when the seed is absent. Working-tree copies are kept locally for dev.
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). Dropping copies here is an
optional dev seed — ensureManagedFfmpeg copies them into userData/bin so
npm run dev needs no download — but at ~107MB each (over GitHub's 100MB file limit)
they're gitignored, not committed. Without the seed, npm run dev just triggers the
same first-run download the shipped app uses.
resources/bin/
├── yt-dlp.exe (bundled + committed)
├── ffmpeg.exe (optional dev seed — gitignored, excluded from the installer)
├── ffprobe.exe (optional dev seed — gitignored, 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.exeandffprobe.exehere — they come together in the same archive'sbin/folder and their versions must match. yt-dlp needsffprobe.exeto read media durations; without it, duration-dependent post-processing fails with "ffprobe not found" (--sponsorblock-remove,--force-keyframes-at-cuts, and--split-chaptersall 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, copyaria2c.exefrom 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.