Skip to content

Latest commit

 

History

History
79 lines (60 loc) · 2.3 KB

File metadata and controls

79 lines (60 loc) · 2.3 KB

yoinks

             _       _
 _   _  ___ (_)_ __ | | _____
| | | |/ _ \| | '_ \| |/ / __|
| |_| | (_) | | | | |   <\__ \
 \__, |\___/|_|_| |_|_|\_\___/
 |___/
     yoink any video. paste. yoink. done.

Download videos from YouTube, X/Twitter, Instagram, Threads, TikTok and 1,800+ other sites — right from your terminal. Paste a url, pick a resolution (or audio-only mp3), done. No popups, no fake download buttons, no sketchy redirects.

Install

npm install -g yoinks

Requires Node 18+. Everything else (yt-dlp, ffmpeg) is fetched or bundled automatically.

Usage

$ yoinks https://youtu.be/dQw4w9WgXcQ    # straight to the format picker
$ yoinks                                 # prompts for a url

yoinks takes over the terminal (full-screen, centered — and restores your scrollback on exit). Pick a format with ↑/↓ (or j/k, or number keys) and hit enter. esc goes back, ^c quits. Files are saved to ~/Downloads, and the file path is printed to your terminal when you're done.

How it works

  • Powered by yt-dlp. On first run, yoinks downloads the standalone yt-dlp binary to ~/.yoinks/bin — no Python required. If you already have yt-dlp installed, it uses yours.
  • ffmpeg (needed for merging high-res streams and mp3 extraction) is found on your PATH, with ffmpeg-static as a bundled fallback.
  • The UI is Ink — React for the terminal.

Development

npm install
npm run build        # bundle to dist/ with tsup
npm run dev          # rebuild on change
node dist/cli.js <url>
npm run typecheck

To try it as a global command without publishing: npm link, then run yoinks anywhere.

Roadmap

  • --best / --mp3 flags to skip the picker (scriptable mode)
  • -o <dir> to choose the output folder
  • Playlist / thread-with-multiple-videos support
  • Clipboard detection: launch bare and auto-suggest the url you copied
  • Self-update for the bundled yt-dlp binary (yt-dlp -U)
  • Publish to npm + curl yoinks.sh | sh installer

A note on fair use

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, and be excellent to creators.

License

MIT