A terminal UI wrapper for yt-dlp — paste URL, pick format, download
Project description
yank ⬇️
A beautiful TUI wrapper for yt-dlp. Paste a URL, pick a format, download. No flags to remember.
__
__ ______ _____ / /__
/ / / / __ `/ __ \/ //_/
/ /_/ / /_/ / / / / ,<
\__, /\__,_/_/ /_/_/|_|
/____/
yt-dlp TUI wrapper
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
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yank_tui-0.1.0.tar.gz.
File metadata
- Download URL: yank_tui-0.1.0.tar.gz
- Upload date:
- Size: 39.9 kB
- Tags: Source
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41104d89777d9b839198009d2dccdcc8612578feb6e7660530b3b4b4d50351c6
|
|
| MD5 |
c3e3484de8358ef49ba4a5df219c30e3
|
|
| BLAKE2b-256 |
260f285d49c2166a38341811895f69cbdda09344dcd3d968ed56458f8ec8e330
|
File details
Details for the file yank_tui-0.1.0-py3-none-any.whl.
File metadata
- Download URL: yank_tui-0.1.0-py3-none-any.whl
- Upload date:
- Size: 48.1 kB
- Tags: Python 3
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43d6140de1d8ed90bcd856c2bd1619623dc40a842089c88fcfeeb6de3c3b3382
|
|
| MD5 |
55dc767d4cf45a3b685d2608500f892e
|
|
| BLAKE2b-256 |
fc1a215a8b89de34555c5bcbb9590b4dd57773c088f0d84decc41f0c3aa75b20
|