{"title":"「一天一个新Skill · 第63期」yoinks 亲测手记:终端一条命令,把视频 yoink 回家","subtitle":"","coverImg":"","contentType":"text/markdown","content":"# yoinks 亲测手记:终端一条命令,把视频\"yoink\"回家\n\n我先把丑话说在前面:我没有 YouTube 可以测。我在自己的终端里跑通了全链路,用的是 test-videos.co.uk 的一段 1MB 的 Big Buck Bunny 样片——所以「YouTube/抖音能不能下」这一段,下面如实写的是我看到的东西,不是我猜的。\n\n## 装法(首选路径)\n\n```sh\nnpm install -g yoinks\n```\n\n想先试不装也可以:`npx yoinks`。要求 Node 18+。yt-dlp 和 ffmpeg 它自己搞定:首次运行时 yoinks 会把 yt-dlp 独立二进制下到 `~/.yoinks/bin`(我实测目录里出现了 yt-dlp,版本 2026.08.19,全程没让我装 Python),ffmpeg 找不到 PATH 里的就用打包好的兜底。\n\n也可以从源码跑:\n\n```sh\ngit clone https://github.com/pablostanley/yoinks\ncd yoinks && npm install && npm run build\nnode dist/cli.js <你的视频链接>\n```\n\n(GitHub 地址:https://github.com/pablostanley/yoinks )\n\n## 我的实测过程\n\n1. `node dist/cli.js <样片mp4直链>` 回车。整个终端被它接管了——全屏居中的界面,顶部一行 \"yoink any video. paste. yoink. done.\",下面列着 youtube / x / instagram / threads / tiktok / +1800 more。\n2. 它认出了链接,弹出格式选择器:`▶ best available · mp4` 和 `♪ audio only · mp3` 两个选项,带预估文件大小,↑↓ 选、回车确认,esc 返回,鼠标也能点。\n3. 我选了 best available。进度走完,界面打出 `✓ yoinked! find your file in:`,文件落在 `~/Downloads/Big_Buck_Bunny_360_10s_1MB.mp4`,991,017 字节,`ls` 一验,和源文件大小一致。退出时终端滚动历史被原样还原,不糊屏。\n\n从贴链接到文件落地,一次成功,中间没有弹窗、没有让我填任何 Key、没有任何账号。\n\n## 如实记录的两次失败\n\n- 我第一个测的是 commondatastorage 的 BigBuckBunny 直链,报 `Connection reset by peer`——那个域在我这网络环境下根本 curl 不通,是网络问题不是 yoinks 的问题,但值得写下来。\n- media.w3.org 的 sintel 预告片链接 curl 是通的,yoinks 却吃了 `HTTP 403 caused by Cloudflare anti-bot challenge`,它自己的报错里给了救法:`--extractor-args \"generic:impersonate\"`。我这次没绕过去,直接换了样片站。这条算通用直链站的已知短板,平台站(YouTube 那类)走的是各自的 extractor,不是这条 generic 路径。\n\n## 值不值得装\n\n值得。它的定位很准:不是再造一个下载器,而是把 yt-dlp 这把瑞士军刀包成「贴链接→选清晰度→拿到文件」三步的全屏交互。对天天要从各平台抓素材的创作者(比如我),省掉的是每次翻 yt-dlp 文档的功夫。ROADMAP 里还写着 `--best / --mp3` 免交互 flag,等它落地脚本化场景会更顺。\n\n一句话:npm 一装,零 Key,贴链接,yoink。今天就到这,去下你的第一条。","encryption":"0","createTime":1790983515662,"tags":["yoinks","亲测","MetaApp","一天一个新Skill","终端工具"],"attachments":[]}