A beautiful command-line tool to download videos from YouTube, YouTube Shorts, X/Twitter, Reddit, Pinterest, Instagram, TikTok, and 1000+ other sites.
╭──────────────────────────────────────────────╮
│ vidgrab download videos from anywhere │
╰──────────────────────────────────────────────╯
? Paste the video URL
? Save to folder
? Download mode Video / Audio only (MP3)
? Quality Best / 1080p / 720p / 480p / 360p
⬇ Downloading [████████████░░░░░░░░] 61.3%
⬇ Merging video + audio…
✓ Download complete!
Before installing vidgrab, make sure you have these on your system:
| Requirement | Version | Purpose |
|---|---|---|
| Python | 3.10+ | Runtime |
| pipx | any | Clean global install |
| ffmpeg | any | Merge video + audio |
python3 --version
pipx --version
ffmpeg -versionPython — download from python.org or use your package manager.
pipx:
pip install pipx
pipx ensurepathThen open a new terminal tab for the PATH change to take effect.
ffmpeg:
# macOS
brew install ffmpeg
# Ubuntu / Debian
sudo apt install ffmpeg
# Arch Linux
sudo pacman -S ffmpeg
# Windows (via Chocolatey)
choco install ffmpeggit clone https://github.com/yourusername/vidgrab.git
cd vidgrabpipx install .That's it. vidgrab is now available system-wide.
Just run vidgrab with no arguments and follow the prompts:
vidgrabYou'll be guided through:
- Pasting the video URL
- Choosing an output folder
- Selecting Video or Audio-only mode
- Picking quality (Best / 1080p / 720p / 480p / 360p)
- Optionally setting a custom filename
Pass the URL directly to skip the prompts:
vidgrab https://youtu.be/abc123# Choose quality
vidgrab https://youtu.be/abc123 -q 720p
# Save to a specific folder
vidgrab https://youtu.be/abc123 -o ~/Videos
# Download audio only as MP3
vidgrab https://youtu.be/abc123 --audio
# Custom output filename
vidgrab https://youtu.be/abc123 -n my_video
# Combine options
vidgrab https://youtu.be/abc123 -q 1080p -o ~/Videos -n lecturevidgrab [URL] [OPTIONS]
Arguments:
URL Video URL to download (optional — omit for interactive mode)
Options:
-o, --output PATH Output folder (default: ./downloads)
-q, --quality CHOICE best, 1080p, 720p, 480p, 360p (default: best)
--audio Download as MP3 audio only
-n, --name TEXT Custom filename without extension
--help Show this message and exit
| Platform | Example URL |
|---|---|
| YouTube | https://youtube.com/watch?v=... |
| YouTube Shorts | https://youtube.com/shorts/... |
| X / Twitter | https://x.com/user/status/... |
https://reddit.com/r/sub/comments/... |
|
https://pin.it/... |
|
https://instagram.com/reel/... |
|
| TikTok | https://tiktok.com/@user/video/... |
| + 1000 more | Powered by yt-dlp |
When a new version is released:
# Pull latest changes
cd vidgrab
git pull
# Reinstall
pipx reinstall vidgrab
# Or force reinstall
pipx install . --forceTo update yt-dlp (fixes broken downloads when sites change):
pipx runpip vidgrab install -U yt-dlppipx uninstall vidgrabpipx's bin directory isn't in your PATH yet. Run:
pipx ensurepathThen open a new terminal tab and try again.
Reinstall with the force flag:
cd vidgrab
pipx install . --forceMake sure ffmpeg is installed:
ffmpeg -versionIf not found, install it (see Requirements above). Then re-download — vidgrab uses ffmpeg to merge the video and audio streams.
These platforms change their APIs frequently. Update yt-dlp to the latest version:
pipx runpip vidgrab install -U yt-dlpvidgrab is a thin, pretty wrapper around yt-dlp — the gold standard open-source video downloader. It adds:
- A guided interactive CLI built with Click + Rich
- Live download progress with a visual progress bar
- Smart format selection with HLS stream support (fixes missing audio on X/Twitter)
- Automatic video + audio merging via ffmpeg
PRs and issues are welcome. To run locally without installing:
git clone https://github.com/anirudhprmar/vidgrab.git
cd vidgrab
pip install click rich yt-dlp
python vidgrab.py