yank the web. Paste a URL, pick a format, download. No flags to remember.
__
__ ______ _____ / /__
/ / / / __ `/ __ \/ //_/
/ /_/ / /_/ / / / / ,<
\__, /\__,_/_/ /_/_/|_|
/____/
yank the web
Paste a video URL · or multiple URLs (one per line) for batch
┌────────────────────────────────────────────────────────────────┐
│ https://… │
└────────────────────────────────────────────────────────────────┘
┌──────────────┐ ┌────────────────┐ ┌──────────────┐
│ Continue │ │ Batch mode │ │ Clear │
└──────────────┘ └────────────────┘ └──────────────┘
Queue [F2] History [F3] Settings [F4]
- URL input — paste one or multiple URLs, auto-detects platform (YouTube, TikTok, Twitter/X, Instagram, Vimeo, etc.)
- Format browser — interactive table of available formats with resolution, codec, filesize
- Download manager — real-time progress bars with speed, ETA, per-download controls
- Queue system — batch multiple downloads, reorder, pause, cancel
- History — every download logged with title, URL, format, and status
- Settings — default download directory, format preferences, concurrent downloads, audio extraction
- yt-dlp management — auto-installs and updates yt-dlp, no manual setup
- Beautiful dark theme — purple/cyan accent palette with tasteful terminal styling
- Keyboard + mouse — navigate with arrow keys or click
pipx install yank-tuiOr from source:
git clone https://github.com/wanazhar/yank.git
cd yank
uv venv
uv syncyankOr from source:
cd yank && .venv/bin/python -m yank- Paste a URL — the app opens to a clean input screen. Paste a video URL (YouTube, TikTok, etc.)
- Choose format — browse available formats in a sortable table. Best quality is pre-selected
- Configure options — set output directory, filename template, subtitles, thumbnail
- Download — watch real-time progress with speed and ETA
- Done — file saved, logged to history
| Key | Action |
|---|---|
Esc |
Back / Quit |
F2 |
Queue view |
F3 |
History |
F4 |
Settings |
Ctrl+Q |
Quit |
Ctrl+P |
Palette |
↑↓ |
Navigate |
Space |
Select |
Enter |
Confirm |
Config stored at ~/.config/yank/config.toml:
download_dir = "/home/user/Downloads"
format_preference = "best"
max_concurrent = 2
filename_template = "%(title)s.%(ext)s"
subtitle_lang = "en"yank wraps yt-dlp as a Python library (not subprocess). All format extraction, downloading, and metadata handling goes through yt_dlp.YoutubeDL with progress hooks. The TUI is built with Textual — a modern Python terminal UI framework.
The app is fully local. No cloud, no accounts, no telemetry. Your downloads and history never leave your machine.
- Python 3.11+
- A terminal that supports 24-bit color (most modern terminals do)
-
ffmpeg(optional — needed for some format merges and audio extraction)
MIT