FireFetch is a desktop downloader built with Electron + Express, powered by yt-dlp, aria2c, and ffmpeg.
- Open source / free code: the source in this repository is free to use and modify.
- Binary distribution: prebuilt releases are available on Itch.io as donationware (free download, optional donation).
- Sponsor: Sponsored by Playcast.io.
- Video downloads via
yt-dlp(format selection, metadata, many supported sites depending on your bundledyt-dlpversion) - Music mode with favorite-band discovery, playlist import review, MP3 extraction, music-video downloads, and a local-first player
- Direct file downloads via
aria2c - Torrent / magnet support
- Queue UI with pause/resume, retries, reordering, and persistence
- Cookie upload (optional) for sites that require login (stored locally)
- Advanced yt-dlp options for playlist URLs, filename templates, subtitles, metadata, thumbnails, SponsorBlock, proxy, rate limiting, and fragment threading
- Dependency Manager to check/update bundled tools
- Node.js + npm
- Windows is the primary target in this repo (bundled tools are
.exe)
npm install
npm test
npm startFireFetch stores its data relative to the app’s base directory:
- Settings:
settings.json - Download queue state:
downloads-state.json - Download output:
downloads/(configurable in Settings) - Music library:
music-library.jsonplus music assets inmusic/(configurable in Settings) - Cookie storage:
cookies/(only used if you upload cookies) - Bundled tools:
dep/
- DRM: FireFetch does not bypass DRM-protected content.
- App authentication: FireFetch does not require an app login. Cookies are only for site authentication when needed.
- Local API: The embedded API binds to
127.0.0.1; Chrome extension API access requiresFIREFETCH_COMPANION_EXTENSION_IDS.
Developer-facing docs are in docs/:
docs/api-reference.mddocs/frontend-architecture.mddocs/build-deployment.mddocs/external-dependencies.mddocs/troubleshooting.md
See LICENSE for the current licensing terms.