Yoinks Review: The Ultimate Terminal Video Downloader for 1800+ Sites

Yoinks Review: The Ultimate Terminal Video Downloader for 1800+ Sites

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:

DimensionBrowser Extension / Online ToolYoinks (Terminal Tool)
AdsAlmost all have them, some aggressiveZero ads
Batch downloadNot supported or paid featureNatively supported (scriptable)
Quality selectionUsually just 720p/1080pLists all formats + estimated sizes
Audio extractionNeeds extra toolsBuilt-in MP3 extraction
AutomationImpossibleWorks with cron/shell scripts
PrivacyURLs go through third-party serversAll local processing
SpeedLimited by server bandwidthDirect 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:

  1. Downloads the standalone yt-dlp binary to ~/.yoinks/bin (no Python required)
  2. Checks for ffmpeg on your system (falls back to bundled ffmpeg-static if 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:

  • ↑/↓ or j/k to switch options
  • Number keys jump directly to an option
  • Esc goes back
  • Ctrl+C quits
  • 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:

  1. 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.
  2. 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.
  3. 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 colors
  • light β€” force light theme
  • dark β€” force dark theme
yoinks --theme dark
yoinks --theme light

Press Ctrl+T during runtime to switch themes in real time.

Comparison: Yoinks vs Alternatives

FeatureYoinksyt-dlp4K Video DownloaderBrowser Extensions
PriceFree, open sourceFree, open sourceFree limited, Pro $15/yrMostly free (with ads)
Sites1800+1800+~100Varies by extension
InterfaceTerminal UICommand lineDesktop GUIBrowser button
Ease of useEasyMedium (memorize params)EasyEasiest
Batch downloadβœ… Scriptableβœ… Scriptableβœ…βŒ
Audio extractionβœ… Built-inβœ…βœ…Partial
AdsNoneNoneNoneUsually present
PrivacyLocal processingLocal processingLocal processingMay go through servers
Automationβœ… cron/shellβœ… cron/shell❌❌
RequirementsNode 18+Python 3.8+Win/Mac/LinuxBrowser

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

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 / --mp3 quick 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 (--best flag), 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.