Skip to content
← back to projects
2026·shipped·Creator & Maintainer

YTGrab: Local YouTube Downloader

A single Go binary with a clean browser UI. Paste a link, pick the exact quality, and watch it download, with everything running on your own machine.

GoSQLiteyt-dlpFFmpegGitHub Actions

Pipeline

1
Browser UI
Paste link, pick quality
↓
2
Local Go server
127.0.0.1 only
↓
3
yt-dlp + FFmpeg
Fixed argument list
↓
4
SQLite job store
Queue survives restarts

Highlights

  • ▸Choose from the video's real resolutions and audio streams with sizes, or a quick preset (best, 1080p, 720p, M4A, MP3).
  • ▸Resume instead of restart: cancel, retry, or close the app mid-download and a retry continues from the partial file.
  • ▸Private by design: the server binds only to 127.0.0.1, history lives in local SQLite, and there are no accounts and no telemetry.
  • ▸ytgrab setup installs dependencies (asking first), and ytgrab doctor explains what is missing.

What it is

A local YouTube downloader for people who want a nice interface without handing their history to a website. YTGrab is one Go program: the browser page talks to a small local server, which starts yt-dlp with a fixed argument list for each job, reads its progress, and streams it back to the page as speed, size, and time left.

Media goes straight from yt-dlp to the download folder. It never passes through the server or the browser.

Product details that took the most care

  • Playlists with a review step. Up to 50 videos are listed, you untick what you don’t want, and nothing is queued until you confirm.
  • Durable queue. Jobs and settings live in SQLite, so the queue and history survive restarts, and partial downloads resume.
  • Sensible files. Names include the quality (Title [id] 1080p.mp4), and H.264 picks are saved as MP4.

Shipping it

Most of the work after the core worked was distribution. Tagged releases build for macOS (Intel and Apple silicon), Linux (amd64 and arm64), and Windows. The shell installer picks the right build, verifies its checksum, and offers to run setup. On Windows, a double-click launcher checks for missing tools and offers to install FFmpeg and Deno through winget. CI runs the Go test suite on every push.

YTGrab does not bypass sign-in, DRM, or paywalls, and the README asks users to download only content they have the right to save.