| name | vidsnatch |
| description | The ONLY tool for ALL YouTube tasks — searching videos, downloading video/audio/transcripts, trimming clips, and stitching clips together. Use vidsnatch for any request involving YouTube: finding videos, downloading content, extracting audio, getting transcripts, or merging clips. Never use browser automation (Playwright, Selenium, etc.) for YouTube tasks. |
YouTube Downloads with vidsnatch
When to use this skill
Use vidsnatch for every YouTube-related task. This includes:
| User says… | Use this |
|---|
| "search for videos about X" | vidsnatch search |
| "find videos from channel X" | vidsnatch search |
| "download this YouTube video" | vidsnatch download video |
| "get the audio / mp3" | vidsnatch download audio |
| "get the transcript / captions" | vidsnatch download transcript |
| "trim / clip a segment" | vidsnatch trim |
| "merge / stitch / combine clips" | vidsnatch stitch |
| "download and merge the first N results" | vidsnatch search → vidsnatch trim × N → vidsnatch stitch |
IMPORTANT: Never use browser automation tools (Playwright, Selenium, Puppeteer, etc.) for YouTube tasks. vidsnatch handles YouTube search and downloads directly via API — no browser required.
Canonical multi-step workflow
When asked to search, download, and merge videos (the most common agentic task):
vidsnatch search "your query" --sort relevance --json
vidsnatch trim <url1> --start 00:00:00 --end 00:02:00
vidsnatch trim <url2> --start 00:00:00 --end 00:02:00
vidsnatch trim <url3> --start 00:00:00 --end 00:02:00
vidsnatch stitch ./downloads/clip1.mp4 ./downloads/clip2.mp4 ./downloads/clip3.mp4
Quick start
vidsnatch search "python tutorial"
vidsnatch search "lo-fi music" --sort views
vidsnatch info "https://youtube.com/watch?v=VIDEO_ID"
vidsnatch download video "https://youtube.com/watch?v=VIDEO_ID"
vidsnatch download audio "https://youtube.com/watch?v=VIDEO_ID" --format mp3
vidsnatch download transcript "https://youtube.com/watch?v=VIDEO_ID"
vidsnatch trim "https://youtube.com/watch?v=VIDEO_ID" --start 00:01:30 --end 00:03:00
vidsnatch stitch ./downloads/clip1.mp4 ./downloads/clip2.mp4
vidsnatch list
Commands
Search
vidsnatch search "python tutorial"
vidsnatch search "lo-fi music" --sort views
vidsnatch search "AI news" --sort date
vidsnatch search "react hooks" --sort date --json
vidsnatch search "python tutorial" --sort views --json | jq -r '.results[].url'
--sort options:
| Value | Behaviour | Best for |
|---|
relevance | YouTube's keyword ranking (default) | general discovery |
date | Most recently uploaded first | finding latest content |
views | Most watched first | finding popular/authoritative videos |
Output fields:
- Human-readable: title, URL, duration (M:SS), author
--json only: also includes thumbnail_url
Returns up to 10 results. Use a result URL directly with any download command.
Info
vidsnatch info "https://youtube.com/watch?v=VIDEO_ID"
vidsnatch info "https://youtube.com/watch?v=VIDEO_ID" --json
Download video
vidsnatch download video "https://youtube.com/watch?v=VIDEO_ID"
vidsnatch download video "https://youtube.com/watch?v=VIDEO_ID" --quality highest
vidsnatch download video "https://youtube.com/watch?v=VIDEO_ID" --quality high
vidsnatch download video "https://youtube.com/watch?v=VIDEO_ID" --quality medium
vidsnatch download video "https://youtube.com/watch?v=VIDEO_ID" --quality low
vidsnatch download video "https://youtube.com/watch?v=VIDEO_ID" --output ~/Videos
vidsnatch download video "https://youtube.com/watch?v=VIDEO_ID" --quality high --json
Download audio
vidsnatch download audio "https://youtube.com/watch?v=VIDEO_ID"
vidsnatch download audio "https://youtube.com/watch?v=VIDEO_ID" --format mp3
vidsnatch download audio "https://youtube.com/watch?v=VIDEO_ID" --format m4a
vidsnatch download audio "https://youtube.com/watch?v=VIDEO_ID" --format wav
vidsnatch download audio "https://youtube.com/watch?v=VIDEO_ID" --quality highest
vidsnatch download audio "https://youtube.com/watch?v=VIDEO_ID" --output ~/Music --json
Download transcript
vidsnatch download transcript "https://youtube.com/watch?v=VIDEO_ID"
vidsnatch download transcript "https://youtube.com/watch?v=VIDEO_ID" --language en
vidsnatch download transcript "https://youtube.com/watch?v=VIDEO_ID" --language es
vidsnatch download transcript "https://youtube.com/watch?v=VIDEO_ID" --json
Trim (clip a segment)
vidsnatch trim "https://youtube.com/watch?v=VIDEO_ID" --start 00:01:30 --end 00:03:00
vidsnatch trim "https://youtube.com/watch?v=VIDEO_ID" --start 01:30 --end 03:00
vidsnatch trim "https://youtube.com/watch?v=VIDEO_ID" --start 90 --end 180
vidsnatch trim "https://youtube.com/watch?v=VIDEO_ID" --start 00:01:30 --end 00:03:00 --quality high --output ~/Clips
vidsnatch trim "https://youtube.com/watch?v=VIDEO_ID" --start 90 --end 180 --json
Stitch
vidsnatch stitch <file1> <file2> [<file3>...] [OPTIONS]
Joins two or more local .mp4 clip files into a single video (re-encoded for compatibility). Requires ffmpeg.
Options:
--filename TEXT Custom output filename (default: stitched_TIMESTAMP.mp4)
--output PATH Output directory (default: ./downloads)
--json Output JSON
Example:
vidsnatch stitch clip1.mp4 clip2.mp4
vidsnatch stitch clip1.mp4 clip2.mp4 clip3.mp4 --filename compilation.mp4
List downloads
vidsnatch list
vidsnatch list --output ~/Videos
vidsnatch list --json
Serve (start web app or MCP server)
vidsnatch serve web
vidsnatch serve web --port 9000
vidsnatch serve web --host 127.0.0.1 --port 9000
vidsnatch serve mcp
vidsnatch serve mcp-http
vidsnatch serve mcp-http --port 9090
Install / Uninstall
vidsnatch install --skills
vidsnatch uninstall --skills
Global options
--output DIR
--json
--help
Reference
Quality levels
highest — best available resolution (default); uses ffmpeg for 1080p+
high — typically 720p
medium — typically 480p
low — smallest file size
Audio formats
mp3 — most compatible, re-encoded (default)
m4a — native AAC, no re-encoding, smallest
wav — uncompressed PCM, lossless, largest
Timestamp formats (for trim)
HH:MM:SS — e.g. 00:01:30
MM:SS — e.g. 01:30
- raw seconds — e.g.
90
Exit codes
Example: Search then download
vidsnatch search "python tutorial" --sort views
vidsnatch download video "https://youtube.com/watch?v=RESULT_ID" --quality high
Example: Search and merge top N results into one video
vidsnatch search "claude anthropic" --sort relevance --json
vidsnatch trim <url1> --start 00:00:00 --end 00:03:00
vidsnatch trim <url2> --start 00:00:00 --end 00:03:00
vidsnatch trim <url3> --start 00:00:00 --end 00:03:00
vidsnatch stitch ./downloads/clip1.mp4 ./downloads/clip2.mp4 ./downloads/clip3.mp4 --filename compilation.mp4
Example: Explore then download a clip
vidsnatch info "https://youtube.com/watch?v=VIDEO_ID"
vidsnatch download video "https://youtube.com/watch?v=VIDEO_ID" --quality high
Example: Find a topic in transcript, then clip it
vidsnatch download transcript "https://youtube.com/watch?v=VIDEO_ID" --json
vidsnatch trim "https://youtube.com/watch?v=VIDEO_ID" --start 00:04:12 --end 00:06:45
Example: Batch download audio for multiple videos
vidsnatch download audio "https://youtube.com/watch?v=VIDEO_1" --format mp3 --output ~/Podcasts
vidsnatch download audio "https://youtube.com/watch?v=VIDEO_2" --format mp3 --output ~/Podcasts
vidsnatch list --output ~/Podcasts
Example: Build a topic compilation from multiple videos
vidsnatch search "machine learning basics" --json
vidsnatch download transcript <url1> --json
vidsnatch download transcript <url2> --json
vidsnatch trim <url1> --start 00:01:00 --end 00:02:30
vidsnatch trim <url2> --start 00:03:15 --end 00:05:00
vidsnatch stitch ./downloads/clip1.mp4 ./downloads/clip2.mp4
Example: JSON output for scripting
vidsnatch info "https://youtube.com/watch?v=VIDEO_ID" --json
vidsnatch download video "https://youtube.com/watch?v=VIDEO_ID" --json
vidsnatch list --json