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.0
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.0.tar.gz | 513.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| yank_tui-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 845.8 kB
Release files / yank_tui-0.2.0.tar.gz
| Download URL | yank_tui-0.2.0.tar.gz |
|---|---|
| Size | 513.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
46c086167da5be577acc1f17ca92b567c7c8d9d058231cf9e0a618a03aaaafb7
|
|
BLAKE2b-256 checksum How to use checksums |
257cdce09af149c789a7ca3eee03ed7b2d0d9eb24efd22f3d4bdbed463d4be33
|
| 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.0-py3-none-any.whl
| Download URL | yank_tui-0.2.0-py3-none-any.whl |
|---|---|
| Size | 332.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d68ae90fdcd8745411eccab98af7474b1c423c08d8865a888e1add817b63d1f7
|
|
BLAKE2b-256 checksum How to use checksums |
40b90eaa941cceb64cb3043f0955e9f6be0e5d2ec2d6ffbdf3351d2eab0a535c
|
| 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}
|