Grabbit is a fast cross-platform desktop app for downloading and converting media locally. It uses Electron, React, yt-dlp, FFmpeg, and spotDL.
- YouTube videos, Shorts, and playlists
- Instagram posts and reels
- TikTok videos
- Spotify tracks, albums, playlists, and artists through spotDL
- Generic downloads from websites supported by yt-dlp
- Batch image, audio, and video conversion with FFmpeg
- Download and conversion cancellation
- In-app yt-dlp, FFmpeg, and spotDL updates
- Windows, macOS, and Linux packaging
Spotify supplies metadata only. spotDL locates matching audio through providers such as YouTube Music and embeds the Spotify metadata. It does not extract audio from Spotify.
- Node.js 22.13 or newer
- npm 10 or newer
The repository contains Windows and macOS media binaries. Linux users can install current binaries from Settings > Media Engine Updates.
git clone https://github.com/MrMuscleFreak/grabbit.git
cd grabbit
npm install
npm run dev
Useful commands:
npm run check
npm run build:app
npm run build:dir
npm run build:win
npm run build:mac
npm run build:linux
Packaged output is written to release/. Build installers on their target operating system so the correct platform binaries and native Electron runtime are included.
- src/ contains the sandboxed React renderer.
- electron/main.ts creates the desktop window and registers IPC services.
- electron/services/mediaEngine.ts owns yt-dlp jobs.
- electron/services/conversionService.ts owns FFmpeg conversion jobs.
- electron/services/spotifyService.ts owns spotDL jobs.
- electron/services/binaryUpdateService.ts installs media engines into the Electron user-data directory, leaving signed application resources unchanged.
The preload bridge allowlists every IPC channel. URLs and selected file paths are validated again in the main process before external tools run.
Only download or convert media you are authorized to use. Website terms, copyright rules, and local law still apply.