snipcat
A terminal YouTube downloader that removes sponsor segments.
Paste a link, see exactly which sponsor/intro/self-promo segments exist, toggle what you want gone, and download a clean cut, all from your terminal.
/\_/\
( o.o )
> ^ <
Requirements
Install
Go
go install github.com/Degen7/snipcat/cmd/snipcat@latest
From source
git clone https://github.com/Degen7/snipcat
cd snipcat
go build -o snipcat ./cmd/snipcat
Install dependencies
macOS
brew install yt-dlp ffmpeg
Ubuntu / Debian
sudo apt install yt-dlp ffmpeg
Arch
sudo pacman -S yt-dlp ffmpeg
Windows
winget install yt-dlp.yt-dlp Gyan.FFmpeg
Usage
snipcat
- Paste a YouTube URL or bare video ID and press
enter
- snipcat fetches video info and SponsorBlock segment data in parallel
- The preview screen shows every sponsor/intro/self-promo segment and how much total time they add up to. Toggle any segment on or off with
space
- Adjust mode, quality, and destination at the bottom of the preview screen
- Press
d to download.
- The file lands in your destination folder.
Options
Each video lets you set three options from the preview screen:
| Option |
Values |
Default |
| Mode |
video, audio |
video |
| Quality |
best, 1080p, 720p, 480p, smallest |
best |
| Destination |
any path |
~/Downloads |
Audio mode removes sponsors and extracts audio only. Useful for podcast-style rips.
snipcat shows segments from every SponsorBlock category. The defaults for which are toggled on per video:
| Category |
Default |
| Sponsor |
✓ on |
| Self-Promo |
✓ on |
| Interaction reminder |
✓ on |
| Intro |
off |
| Outro |
off |
| Preview |
off |
| Music (off-topic) |
off |
Toggle any category per video on the preview screen. Change the defaults permanently in the config file.
Configuration
snipcat writes a config file on first run:
- macOS:
~/Library/Application Support/snipcat/config.toml
- Linux:
~/.config/snipcat/config.toml
- Windows:
%AppData%\snipcat\config.toml
Press c from the main screen to edit it in-app, or open the file directly:
[defaults]
mode = "video" # "video" | "audio"
quality = "best" # best | 1080p | 720p | 480p | smallest
destination = "~/Downloads"
[sponsorblock]
# which categories are toggled ON by default for each new video
sponsor = true
selfpromo = true
interaction = true
intro = false
outro = false
preview = false
music_offtopic = false
[ui]
theme = "cozy"
mascot = true # set false to hide the cat
A note on cut accuracy
Sponsor removal delegates to yt-dlp + ffmpeg and cuts at keyframe boundaries, which is fast but can leave a small seam at cut points. This is normal and expected.
Privacy
SponsorBlock segments are fetched using the hash-prefix privacy endpoint only the first 4 hex characters of a SHA-256 hash of your video ID are sent to the server, so SponsorBlock never learns exactly which video you queried.