Yoinks Review: The Ultimate Terminal Video Downloader for 1800+ Sites
Ever had this experience: you see a useful video tutorial and want to save it for offline viewing, so you open some βonline video downloaderβ β only to be greeted by popup ads, fake download buttons, and after three redirect hops, you get a watermarked 360p file.
Or the more common scenario: you need to bulk-save all content from a creator. Browser extensions can only handle one at a time, and your finger gets tired from clicking.
Yoinks is here to solve this problem. Itβs a terminal-based video downloader β paste a URL, pick a quality, hit enter, done. No popups, no ads, no fake buttons. It supports YouTube, X/Twitter, Instagram, TikTok, Threads, and 1,800+ other sites.
What Is Yoinks: Why Download Videos in the Terminal
Yoinks is an open-source project by developer Pablo Stanley, written in TypeScript and built on the mature yt-dlp ecosystem. But it wraps all those complex command-line parameters into an ultra-minimal interactive interface.
The core pitch is simple:
- Paste URL, pick quality, download β three steps, no parameters to memorize
- 1800+ sites β YouTube, X/Twitter, Instagram, TikTok, Bilibili, Reddit, Vimeoβ¦ all major platforms covered
- Zero ads, zero popups β unlike those βonline downloaderβ websites that profit from ads and redirects
- Automatic dependency handling β yt-dlp and ffmpeg are downloaded on first run, no Python environment needed
- Open source and free β MIT license, fully transparent code
As of now, Yoinks has earned 1,300+ Stars on GitHub β impressive growth for a project launched in July 2026.
Why Terminal Instead of a Browser Extension?
This is a design choice worth discussing. Browser extensions and online downloaders have the advantage of βno learning curve,β but their downsides are equally clear:
| Dimension | Browser Extension / Online Tool | Yoinks (Terminal Tool) |
|---|---|---|
| Ads | Almost all have them, some aggressive | Zero ads |
| Batch download | Not supported or paid feature | Natively supported (scriptable) |
| Quality selection | Usually just 720p/1080p | Lists all formats + estimated sizes |
| Audio extraction | Needs extra tools | Built-in MP3 extraction |
| Automation | Impossible | Works with cron/shell scripts |
| Privacy | URLs go through third-party servers | All local processing |
| Speed | Limited by server bandwidth | Direct download, full bandwidth |
Simply put: if you occasionally download one video, a browser extension works fine; if you regularly save materials, organize content, or bulk-archive, a terminal tool is a different league.
Installation: Ready in 3 Minutes
Prerequisites
- Node.js 18+ (check version:
node -v) - OS: macOS / Linux / Windows all work
Installation Methods
Method 1: Global install (recommended)
npm install -g yoinks
After installation, just type yoinks in your terminal.
Method 2: Run without installing
npx yoinks
No global install needed β it auto-downloads the latest version each time. Good for occasional use.
What Happens on First Run?
When you launch Yoinks for the first time, it automatically:
- Downloads the standalone yt-dlp binary to
~/.yoinks/bin(no Python required) - Checks for ffmpeg on your system (falls back to bundled
ffmpeg-staticif not found)
You donβt need to manually install yt-dlp or ffmpeg β Yoinks handles everything.
Hands-On Tutorial: From Beginner to Pro
Scenario 1: Download a Single Video
yoinks https://youtu.be/dQw4w9WgXcQ
Yoinks takes over your terminal window (fullscreen, centered) and displays all available format options:
β/β to select format, Enter to confirm, Esc to go back
βββββββββββββββββββββββββββββββββββββββββββ
β 1. mp4 1080p ( AVC + M4A ) ~45 MB β
β 2. mp4 720p ( AVC + M4A ) ~28 MB β
β 3. mp4 480p ( AVC + M4A ) ~15 MB β
β 4. webm 1080p ( VP9 + OPUS ) ~52 MB β
β 5. mp3 audio only ~3.5 MB β
βββββββββββββββββββββββββββββββββββββββββββ
Use arrow keys (or j/k, or number keys) to select, then press Enter. Files save to ~/Downloads automatically, and the terminal prints the file path.
Interaction details:
β/βorj/kto switch options- Number keys jump directly to an option
Escgoes backCtrl+Cquits- Mouse clicks supported (format list and footer hints are clickable)
Scenario 2: Paste URL Manually
yoinks
Running yoinks without arguments prompts you to input a URL. Perfect for when you just copied a link from your browser.
Scenario 3: Extract Audio as MP3
Select the mp3 audio only option in the format picker. Yoinks automatically calls ffmpeg to extract audio as MP3.
Very practical for users who only want to save podcasts, music, or audiobook audio β no need to download the full video file and convert manually.
Scenario 4: Choose Specific Quality
Yoinksβ format picker lists all available formats with estimated file sizes for each. This is far more user-friendly than raw yt-dlp β you donβt need to calculate bitrate-to-filesize ratios yourself.
Technical Architecture: How Yoinks Works
Yoinksβ tech stack is worth understanding because it explains why this tool is both lightweight and powerful:
βββββββββββββββββββββββββββββββββββββββββββ
β Yoinks (TypeScript) β
β β
β ββββββββββββ ββββββββββββ ββββββββββ β
β β Ink UI ββ β URL Parseββ β yt-dlp β β
β β (React) β β (Formats) β β(Dload) β β
β ββββββββββββ ββββββββββββ ββββββββββ β
β β β β
β Terminal I/O ffmpeg β
β (KB/Mouse) (Merge/Transcode)β
βββββββββββββββββββββββββββββββββββββββββββ
Core components:
- Ink (React for Terminal) β Yoinksβ UI layer. Ink lets developers build terminal interfaces using React components, which is why Yoinksβ interaction quality far exceeds traditional CLI tools.
- yt-dlp β The download engine. Yoinks doesnβt reimplement video parsing and downloading β it calls yt-dlp, a battle-tested open-source project. yt-dlp supports 1800+ sites, and Yoinks inherits all of that capability.
- ffmpeg β Audio/video processing. Used for merging high-resolution audio/video streams (many sites transmit them separately) and MP3 extraction.
Why this architecture is good:
- Yoinks doesnβt need to maintain a massive site-adapter codebase β the yt-dlp community handles that
- Updating yt-dlp automatically adds new site support
- Small codebase, low maintenance cost, MIT open source
Advanced Usage: Double Your Efficiency
Batch Download with Shell Scripts
If you have a URL list file urls.txt:
while IFS= read -r url; do
yoinks "$url"
done < urls.txt
Or a more concise one-liner:
cat urls.txt | xargs -I {} yoinks {}
This is extremely useful for bulk-archiving all content from a creator.
Scheduled Downloads with cron
If you need to regularly grab new videos from a channel (e.g., every day at 3 AM):
crontab -e
# Add: run every day at 3 AM
0 3 * * * /usr/local/bin/yoinks https://www.youtube.com/@SomeCreator/videos
Note: Yoinksβ roadmap hasnβt yet implemented --best / --mp3 flags to skip the format picker, so cron scenarios may require interactive selection. This feature is planned β future versions will support fully scriptable non-interactive mode.
Theme Switching
Yoinks supports three themes:
auto(default) β follows your terminalβs foreground and background colorslightβ force light themedarkβ force dark theme
yoinks --theme dark
yoinks --theme light
Press Ctrl+T during runtime to switch themes in real time.
Comparison: Yoinks vs Alternatives
| Feature | Yoinks | yt-dlp | 4K Video Downloader | Browser Extensions |
|---|---|---|---|---|
| Price | Free, open source | Free, open source | Free limited, Pro $15/yr | Mostly free (with ads) |
| Sites | 1800+ | 1800+ | ~100 | Varies by extension |
| Interface | Terminal UI | Command line | Desktop GUI | Browser button |
| Ease of use | Easy | Medium (memorize params) | Easy | Easiest |
| Batch download | β Scriptable | β Scriptable | β | β |
| Audio extraction | β Built-in | β | β | Partial |
| Ads | None | None | None | Usually present |
| Privacy | Local processing | Local processing | Local processing | May go through servers |
| Automation | β cron/shell | β cron/shell | β | β |
| Requirements | Node 18+ | Python 3.8+ | Win/Mac/Linux | Browser |
Recommendations:
- Occasional single video download β Browser extension is enough
- Frequent downloads, need batch processing β Yoinks or yt-dlp
- Donβt want terminal but need batch β 4K Video Downloader
- Maximum flexibility and script integration β yt-dlp (Yoinksβ underlying engine)
- Want terminal experience without memorizing params β Yoinks (best choice)
Limitations and Caveats
Copyright and Legal Risks
Yoinksβ README clearly states:
yoinks is a personal-archiving tool. Downloading content may violate a platformβs terms of service β only download what you have the right to keep.
Specifically:
- YouTubeβs ToS prohibits downloading (unless thereβs a download button)
- Downloading copyrighted content and distributing it is illegal
- Personal learning/archiving use is typically in a gray area
Recommendation: Only download content you published, Creative Commons-licensed content, or content explicitly allowed for downloading.
Platform Limitations
- Some platforms may throttle downloads or block IPs
- Content requiring login (e.g., YouTube Premium videos) needs extra cookie configuration
- Live stream downloading is not in current scope
Current Version Shortcomings
Per Yoinksβ roadmap, these features are not yet implemented:
--best/--mp3quick flags (skip format picker)-o <dir>custom output directory- Playlist / multi-video post support
- Clipboard auto-detection
- yt-dlp auto-update
These are reasonable feature plans expected in future releases.
Final Verdict
Yoinks solves a real pain point: efficiently and cleanly downloading videos in the terminal. It didnβt reinvent the wheel β it stands on yt-dlpβs shoulders and brings the command-line experience to its peak.
Pros:
- Minimal interaction β paste URL and go
- Zero ads, zero popups, zero privacy concerns
- 1800+ site support (inherited from yt-dlp)
- Automatic dependency handling, no Python needed
- Open source, MIT license
Cons:
- Requires Node.js 18+ (may be a barrier for non-developers)
- No playlist batch download yet
- Lacks non-interactive mode (
--bestflag), limiting automation - Relatively new project (launched July 2026), community still growing
Who is it for:
- Content creators who regularly save reference materials
- Developers comfortable with terminal workflows
- Users needing batch downloads and automation
- Anyone fed up with online downloader ads
If you fit any of these categories, npm install -g yoinks is worth trying.
FAQ
Q1: Is Yoinks safe? Will it leak my download history?
Yoinks runs entirely locally β all download requests go directly from your computer to the video source server. URLs never pass through any third-party server. The code is open source on GitHub and auditable by anyone.
Q2: Do I need to install Python or ffmpeg?
No. Yoinks automatically downloads a standalone yt-dlp binary on first run (no Python needed) and uses a bundled ffmpeg-static as fallback. If your system already has ffmpeg, Yoinks uses it preferentially.
Q3: Which operating systems are supported?
macOS, Linux, and Windows all work, as long as you have Node.js 18+.
Q4: Whatβs the difference from using yt-dlp directly?
yt-dlp is a powerful CLI tool, but requires memorizing parameters (like -f bestvideo+bestaudio, --extract-audio, etc.). Yoinks provides an interactive UI on top of yt-dlp β select formats with arrow keys, no parameters to remember. The underlying download capability is identical.
Q5: Can I download content that requires login?
Theoretically yes, but youβll need to manually configure yt-dlpβs cookies. This goes beyond Yoinksβ current simplified scope and is an advanced use case. For most public content, just paste the URL and download.