Yoinks Skill:把 1800+ 站点视频下载装进终端的零广告神器
今天 GitHub Trending 在榜的工具类项目里,yoinks 显得格外醒目——它把”粘贴视频链接→选分辨率→下载”这一套原本被广告和弹窗统治的体验,整套塞进了终端,并用 React/Ink 写了个全屏交互 UI。仅靠这一个差异化打法,它在过去一个月里从 0 冲到 3,000+ stars(截至 2026-10-02,约 3,193 stars,今日新增约 361),并被多个中文 Telegram 频道、字节系内容站、英文测评站反复点名。对一个解决”老问题”的 CLI 来说,这个爬坡速度极不正常,也是它值得被推荐给 Skill/Agent 圈的根本原因。
功能与原则
yoinks 的核心能力可以一句话概括:在终端里直接下载 YouTube / X / Instagram / Threads / TikTok 等 1,800+ 站点的视频与音频,支持可视化选分辨率与主题适配。它的设计原则有三条:
- 零广告、零弹窗、零假按钮:不做 SaaS、不做变现,纯工具体验,跟同类”在线视频下载站”拉开身位。
- 依赖全自动:底层用 yt-dlp + ffmpeg,但作者把 yt-dlp 二进制抽离到
~/.yoinks/bin,首次运行自动下载,不要求用户安装 Python 环境;ffmpeg 优先用 PATH 里的,没有就用ffmpeg-static兜底。 - 交互照搬 GUI 体验:用 React 写终端 UI(Ink),全屏居中、↑↓/j/k 选格式、Esc 返回、^C 退出,鼠标也能点——这是它最大的差异化。
认可度
- GitHub stars:截至 2026-10-02,约 3,193 stars,今日新增 361 stars,目前高居 GitHub Trending daily 榜。
- 历史曲线:2026 年 7 月正式发布,8 月底被多个中文媒体(Telegram”折腾啥”频道 3.59K 浏览、字节跳动头条 freeaitool 等)测评引用,9 月进入快速爬坡期。
- 协议与门槛:MIT 协议,Node 18+ 是唯一外部依赖。
- 社媒讨论量:Telegram “折腾啥”频道单独推过两次;freeaitool 给出中英文详细测评;m.toutiao.com / xn--r1a.website 等渠道均有二次传播。
链接
GitHub 仓库:https://github.com/pablostanley/yoinks
原作者
- 姓名 / GitHub:Pablo Stanley(@pablostanley)
- 一句话简介:Blush 插画库的创始人,墨西哥知名设计师/插画师,转型做开发者工具的代表项目之一。官方说法是 “Pablo Stanley + Claude 联合开发”,所以定位是”知名设计师跨界 + AI 协作”的典型样本。
介绍
yoinks 是一个纯 TypeScript 写的终端视频下载器,目标是把”在线视频下载”这件事的全部体验压缩到命令行里。它没有自己的解析引擎,而是寄生在 yt-dlp 这套成熟方案之上——yt-dlp 负责抓 1,800+ 站点的媒体源,yoinks 负责把它们以”格式选择器”的形态呈现给用户。
下载流程只有三步:粘贴 URL → 用方向键选分辨率(或直接选 mp3 音频)→ 回车,文件默认落到 ~/Downloads,终端打印完整路径。中间不弹任何网页、不引导关注公众号、不要求登录注册。
它支持的功能点包括:单链接下载、播放列表/多视频线程批量、自动读取剪贴板、--best / --mp3 跳过选择器直接出文件、-o <dir> 指定输出目录、--theme auto|light|dark 适配终端主题(auto 模式读终端本身的 FG/BG),以及一键自更新 yoinks self-update。对于”经常在服务器、NAS、远程容器里下载素材”的人来说,这是一个近乎理想的工作流。
特点
- 1,800+ 站点覆盖:借力 yt-dlp,YouTube、X、Instagram、Threads、TikTok、Bilibili、Reddit、Vimeo 等全部支持
- 零环境依赖:Node 18+ 之外,yt-dlp + ffmpeg 都自动管理,不要求 Python
- 终端原生 UI:React/Ink 全屏、键盘 + 鼠标双输入、Esc/^C 行为符合 GUI 习惯
- 主题自适应:
auto读取终端前景/背景色,深浅色终端都能跟;^t可热切换 - 可脚本化:
--best/--mp3跳过交互,配合-o直接批处理,适合 CI / Agent 集成
使用方法
安装(两种姿势二选一):
# 1. 全局安装
npm install -g yoinks
# 2. 不装也能跑(临时试用)
npx yoinks
最常用的三种调用:
# 交互模式:粘贴 URL → 选分辨率
yoinks https://youtu.be/dQw4w9WgXcQ
# 脚本模式:跳过选择器,直接拿最好的 mp4
yoinks --best https://youtu.be/dQw4w9WgXcQ
# 只要音频:直接出 mp3
yoinks --mp3 https://youtu.be/dQw4w9WgXcQ
# 不传 URL 时自动读取剪贴板
yoinks
# 切换主题
yoinks --theme light
升级与卸载:
yoinks self-update # 升级(同时拉新 yt-dlp)
npm uninstall -g yoinks
使用场景与人群
- 服务器 / NAS / 远程容器:没有图形界面,又需要批量下载素材的运维、DevOps、内容编辑。
- 内容创作者 / 播客剪辑:要把片段下回来二次创作,又不想被水印、弹窗、平台限制恶心到。
- AI Agent / 自动化流水线:配合
--best或--mp3跳过交互,可以接进 CI 或 Agent 的”下载→转码→入素材库”工作流。 - 讨厌广告的极简主义者:只想”粘贴链接→拿到文件”,不愿意点三步跳转、看三个广告、最后拿到带水印的 360p 文件的人。
输入与输出案例
案例 1:交互下载 YouTube 视频
$ yoinks https://youtu.be/dQw4w9WgXcQ
# 终端弹出全屏选择器(auto 主题,跟随系统):
# ▶ 1080p (mp4) ~ 56 MB
# 720p (mp4) ~ 32 MB
# audio (mp3) ~ 4 MB
#
# 用户按 ↓ 选 720p,回车
# ✓ Downloading…
# ✓ Saved to: /Users/you/Downloads/Rick Astley - Never Gonna Give You Up.mp4
案例 2:脚本化下载 X/Twitter 视频为 mp3
$ yoinks --mp3 https://x.com/someone/status/1234567890
# ✓ Saved to: /Users/you/Downloads/tweet_voice.mp3
案例 3:批量拉整个播放列表
$ yoinks "https://www.youtube.com/playlist?list=PLxxxxxx"
# 终端列出所有条目,逐条选格式后批量下载到 ~/Downloads
如果你正在找”能装进 Docker、能接进 Agent、永远不要让我再点一次’跳过广告'”的视频下载工具,yoinks 是目前体验最干净的一档。它本身不算 Agent Skill,但作为可被 Skill 调用的本地 CLI,已经具备进入工作流的全部条件。
评论区
登录后可评论。