yank ⬇️
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]
Features
- 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
Installation
Quick install (recommended)
pipx install yank-tui
Or from source:
git clone https://github.com/wanazhar/yank.git
cd yank
uv venv
uv sync
Usage
yank
Or from source:
cd yank && .venv/bin/python -m yank
Workflow
- 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
Keyboard shortcuts
| Key | Action |
|---|---|
Esc |
Back / Quit |
F2 |
Queue view |
F3 |
History |
F4 |
Settings |
Ctrl+Q |
Quit |
Ctrl+P |
Palette |
↑↓ |
Navigate |
Space |
Select |
Enter |
Confirm |
Configuration
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"
How it works
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.
Requirements
- Python 3.11+
- A terminal that supports 24-bit color (most modern terminals do)
ffmpeg(optional — needed for some format merges and audio extraction)
License
MIT
Release files for yank-tui 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| yank_tui-0.2.1.tar.gz | 69.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| yank_tui-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 128.9 kB
Release files / yank_tui-0.2.1.tar.gz
| Download URL | yank_tui-0.2.1.tar.gz |
|---|---|
| Size | 69.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7d2054b8d6e8a3282aa8ffdcfe9468989d582a54b4dc61b58b032337dfdba08a
|
|
BLAKE2b-256 checksum How to use checksums |
71357a2e580a5be2296fcedbbbb2aaf3fd295a237aee69bfa59b1ac0fb594fba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / yank_tui-0.2.1-py3-none-any.whl
| Download URL | yank_tui-0.2.1-py3-none-any.whl |
|---|---|
| Size | 59.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
08bdb56e6e25201c44cf6b3c94677b4befbba8b4f76fd8e8ad18e5367881aadd
|
|
BLAKE2b-256 checksum How to use checksums |
a5e46c7e4c726229b6683db7634fe331ee99edc621781951fc34a93e72c9c632
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|