yoinks
随心下载任何视频。粘贴。下载。搞定。
直接在终端里从 YouTube、X/Twitter、Instagram、Threads、TikTok 以及 1800 多个其他网站下载视频。粘贴一个链接,选择分辨率(或仅音频的 mp3),大功告成。没有弹窗,没有虚假下载按钮,没有可疑的重定向。

安装
npm install -g yoinks
或者无需安装任何东西直接试用:
npx yoinks
需要 Node 18 及以上版本。其余依赖(yt-dlp、ffmpeg)会自动获取或打包。
使用方法
$ yoinks https://youtu.be/dQw4w9WgXcQ # 直接进入格式选择界面
$ yoinks # 提示输入链接
$ yoinks --theme light # 强制使用浅色配色
yoinks 会接管整个终端(全屏、居中显示——退出时会恢复你的滚动缓冲区)。用 ↑/↓(或 j/k,或数字键)选择格式,然后按回车。esc 返回上一步,^c 退出。也可以直接用鼠标——yoink 按钮、格式列表和底部的快捷键提示均可点击,点击 logo 则返回主页。文件默认保存到 ~/Downloads,完成后文件路径会打印到终端。
默认的 auto 主题使用终端自身的前景和背景色,因此能自动适配浅色和深色终端主题,无需猜测。按 ^t 或点击底部的主题控件,可在当前会话中循环切换 auto、light 和 dark。也可以使用 --theme auto、--theme light 或 --theme dark 为单次启动指定起始主题。

工作原理
- 基于 yt-dlp。首次运行时,yoinks 会将独立的 yt-dlp 二进制文件下载到
~/.yoinks/bin——无需 Python。如果你已经安装了 yt-dlp,它会直接使用你的版本。 - ffmpeg(合并高分辨率视频流和提取 mp3 时需要)会从你的 PATH 中查找,若未找到则使用内置的
ffmpeg-static作为后备。 - 界面基于 Ink——终端版 React。
开发
npm install
npm run build # 使用 tsup 打包到 dist/
npm run dev # 文件变动时自动重新构建
node dist/cli.js <url>
npm run typecheck
无需发布即可将其作为全局命令试用:运行 npm link,之后就可以在任意位置运行 yoinks。
路线图
-
--best/--mp3参数,跳过选择器(脚本化模式) -
-o <dir>指定输出文件夹 - 支持播放列表 / 包含多个视频的推文串
- 剪贴板检测:直接启动并自动推荐你复制的链接
- 内置 yt-dlp 二进制的自更新(
yt-dlp -U) - 发布到 npm(
npm i -g yoinks/npx yoinks) -
curl yoinks.sh | sh安装器
关于合理使用的说明
yoinks 是一款个人存档工具。下载内容可能违反平台的服务条款——请只下载你有权保留的内容,并对创作者保持尊重。