Skip to main content

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

  1. Paste a URL — the app opens to a clean input screen. Paste a video URL (YouTube, TikTok, etc.)
  2. Choose format — browse available formats in a sortable table. Best quality is pre-selected
  3. Configure options — set output directory, filename template, subtitles, thumbnail
  4. Download — watch real-time progress with speed and ETA
  5. 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.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for yank-tui 0.2.2
File Size Uploaded
yank_tui-0.2.2.tar.gz 69.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for yank-tui 0.2.2
File Interpreter ABI Platform
yank_tui-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 128.8 kB

Release files / yank_tui-0.2.2.tar.gz

Download URL yank_tui-0.2.2.tar.gz
Size 69.8 kB
Tags Source
SHA-256 checksum
How to use checksums
ebc847149fd4fe58b0e576eebd4219d81f9378da5b4298906c25f8e14f511a1f
BLAKE2b-256 checksum
How to use checksums
ab109344514b9681604c888410b268e0fb5edacc3a5969f2594af9d0125c2dc6
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.2-py3-none-any.whl

Download URL yank_tui-0.2.2-py3-none-any.whl
Size 58.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dbad8eaed3e5e7bfb2fb2bfe00342ab3c2905b733f428b454ceee27d90c8b0e8
BLAKE2b-256 checksum
How to use checksums
063100714d778d2a956d4290cf30fea1fb47a0b38dfe6af1dbada9dd24f63f05
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 history Release notifications | RSS feed

This release

0.2.2 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page