Skip to content

Releases

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 14 Sep 09:10
1704418

Changelog

Features

  • 982e7d5 feat(cmd): take the version from build info (#31)
  • 1704418 feat(release): publish prebuilt binaries and a Homebrew formula (#32)

v0.1.1-rc.1

v0.1.1-rc.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Sep 08:57
1704418

Changelog

Features

  • 982e7d5 feat(cmd): take the version from build info (#31)
  • 1704418 feat(release): publish prebuilt binaries and a Homebrew formula (#32)

yank v0.1.0

Choose a tag to compare

@amornnan19 amornnan19 released this 13 Sep 20:13

The first tagged release of 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.

Website: https://yank.ghostshift.tech/

Install

Requires Go 1.27.1 or newer.

go install github.com/amornnan19/yank/cmd/yank@v0.1.0

What's in it

  • A short picker. A full yt-dlp extraction can list a hundred-odd formats; yank shows at most seven rows — up to six video heights and one mp3 row — preferring avc1/h264 unless vp9/av01 is at least 25% smaller. Without ffmpeg you get fewer rows, and the picker says why.
  • yt-dlp fetched and kept current for you. A yt-dlp on your PATH is used as is and never touched. Otherwise yank downloads the release asset, verifies it against the release's SHA2-256SUMS, prefers the small zipapp when Python 3.10+ is available, and checks for a newer release once a day in the background. A new copy is verified and probed before it is used, and switched in only when no other yank is running the old one. yank --update updates immediately; YANK_NO_UPDATE=1 turns the background check off (#3, #16, #18, #19, #26, #27).
  • Progress, then a path. A smoothed progress bar with phase lines for merging and converting, cancellation with esc that cleans up partial files, and a done screen that says where the file landed — or that it was already there and nothing was downloaded (#6, #20).
  • Motion, within the terminal's own palette. A wordmark intro, site badge and yank-out on the input screen; bar shine, speed sparkline and title marquee while downloading; check pop, border trace and confetti when done. NO_COLOR, YANK_NO_MOTION or a small terminal give static screens (#17, #21, #22, #23).
  • Centred screens in any terminal size, with text measured per grapheme cluster so emoji, CJK and Indic titles never overflow (#24, #25).
  • Careful failure handling. A timeout, cancel or OS refusal is never treated as proof a cached file is bad, a download that times out says so instead of looking cancelled, and exit codes stay meaningful for scripts (#8, #18, #28).

Platforms

Built and tested on macOS and Linux (CI runs both). Windows builds, but is not tested.

Full plan and design decisions: #1.