yank
A terminal UI for downloading video with yt-dlp.
Paste a URL, pick a format from a short list, watch a progress bar, get the path of the file that landed on disk.
go install github.com/amornnan19/yank/cmd/yank@latest
yank in motion
What it does
-
Seven rows, not a hundred
A full yt-dlp extraction can list a hundred-odd formats. yank reduces them to at most seven: up to six video heights plus one mp3 audio row.
-
Sensible codec choice
Within a height it prefers avc1/h264, which plays everywhere, unless the vp9/av01 stream is at least 25% smaller.
-
yt-dlp fetched for you
Uses yt-dlp from your
PATHif present. Otherwise it downloads the release asset and verifies it against the SHA-256 in the release'sSHA2-256SUMS. -
ffmpeg is optional
Without ffmpeg you get fewer rows, only formats that already carry video and audio, and the picker says why. A smaller menu, not a failure.
-
Progress, then a path
Watch a progress bar while it downloads. The done screen tells you where the file landed:
~/Downloads.
Pick a format
Install & use
Requires Go 1.27.1 or newer. The binary lands in go env GOBIN or $(go env GOPATH)/bin, which must be on your PATH.
$ go install github.com/amornnan19/yank/cmd/yank@latest$ yank # start on the input screen, ready for a pasted URL $ yank <url> # start with that URL
- enter
- fetch the URL; in the picker, download the selected row
- ↑ ↓ / j k
- move the cursor in the picker
- 1–9
- jump to a row without starting it
- esc
- cancel a fetch or download and go back
- q
- quit from the done screen
- ctrl+c
- quit from anywhere