我让一个一键出片工具做《猫为什么总爱钻纸箱》。它给我配了一口铜钟,还有一段黄蜂吃猫粮。
不是它坏了,是它就这么工作的:拿检索词去素材库字面匹配,搜到什么用什么,没有人看过那些画面就直接上片了。我用了它两个月,攒下三条抱怨:素材库没命中就完蛋;要装 Python 环境,给做内容的朋友装一次要一个晚上;想用 AI 出片就要花钱,花之前还不知道要花多少。
于是我自己写了一个,MIT 开源,叫 OpenShorts,中文名「开片」。一句话:文案进,成片出。 给它一个话题、一段文案或一个文章链接,它写脚本、找画面、配音、把字幕烧进画面、出 1080×1920 的成片,外加封面、SRT 和发布文案。
默认路径 0 元 0 key。 配音用免费的 Edge TTS,画面用 Wikimedia Commons 的 CC 素材,合成用你本机的 ffmpeg。别人给你一个出片按钮,我想给的是一条能看见成本、能被审、能改单镜的生产线。

它最适合三种人:做科普和知识口播的号,素材库里常常没有你要的画面;一个人运营好几个号、每天要出片的;想顺手出英文片的跨境号。要是你做的是真人出镜或者剪辑感很强的内容,它帮不上忙。
一、先看它出的片
下面四条都是它真出的,案例页里连"哪一镜不够好、为什么"都写着:
- 《为什么切洋葱会流眼泪》,60 秒,0 元,6 镜里 2 镜是本机现画的

- 《指南针指的真不是正北》,43 秒,7 镜里 5 镜的素材被退回、改本机现画

- Why cats squeeze into boxes,56 秒,脚本、音色、字幕全英文

- 《深夜便利店》,AI 短剧,本机草稿档,0 元

二、你需要准备什么
- Node.js 20 以上和 FFmpeg。 不用 Python。不想装 Node 的,Releases 里有 mac、Windows、Linux 安装包,自带运行时。
- 一把文本模型的 key,用来写脚本。 DeepSeek、Kimi、GLM 哪家都行,配一次就好。这是唯一要你自己出的东西,一条 60 秒的脚本几分钱。
- 可选:一个能看图的模型。 用来给素材把关,下面会讲它拦下了什么。
- 可选:本机出图模型。 FLUX.1-schnell,6.4 GB 或 10 GB,素材库没货时本机画一张。
- 可选:AI 短剧本地档。 24 GB 内存起。
产物落在 ~/OpenShorts/<项目名>/,key 只存本机,不内置任何共享 key,不上传你的素材。
三、装好之后,出一条 60 秒的片约 6 分钟
三行命令:
bash
git clone https://github.com/jnMetaCode/openshorts.git
cd openshorts && npm install
npm run openshorts # 起本地服务并打开浏览器 http://127.0.0.1:4174
装完先跑一次 openshorts doctor。它会告诉你这台机器现在能不能出片,缺什么。

Mac 用户注意: Homebrew 现在装的 ffmpeg 不带 libass,字幕烧不进画面,而抖音、视频号一律不认软字幕轨。doctor 查到会指路,照它说的跑一次
openshorts install-ffmpeg,装一份带 libass 的到开片自己的目录,不动你系统的 ffmpeg。
然后是四步界面:
① 输入。 给个话题,或者直接粘一整段文案,也可以贴一个文章链接让它抓正文。目标时长和语气可选。

② 来源与花费。 顶部一行状态告诉你 ffmpeg、文本模型、看图把关、本机出图、素材源五样各是什么状态。要花钱的路线在这一步就报数量级;口播线恒为 0 元,它报的是要等多久。

③ 预览与调整。 每一镜左边就是它实际用的那张画面,口播文案、画面意图、英文检索词都能直接改。改完只重出那一镜。

④ 出片与发布。 成片、SRT、封面一次给全,标题点一下就复制,每一条素材的作者和许可证都列出来。最后按平台规格打发布包。它不自动发布,包是草稿,发不发由你决定。

洋葱那条 60 秒的片,从点出片到拿到成片是 347 秒,其中两镜本机出图各用了约 56 秒。
懒人法:把这段话发给你的 AI
不想自己装的话,把下面两行发给 Claude Code、Codex 或 Cursor,它会自己装好、体检、写脚本、出片,最后把文件路径给你:
text
使用这个 Skill:https://raw.githubusercontent.com/jnMetaCode/openshorts/main/docs/skill/SKILL.md
帮我做一条关于"为什么天空是蓝色的"的科普短视频。
四、命令行是同一套能力
界面上能做的,命令行一条一条对应:
bash
openshorts new koubo-kepu --topic "猫为什么总爱钻纸箱" --voice zh-CN-YunxiNeural
openshorts run ~/OpenShorts/猫为什么总爱钻纸箱/project.json
openshorts run ~/OpenShorts/猫为什么总爱钻纸箱/project.json --only s2 # 只重出第 2 镜
openshorts estimate ~/OpenShorts/<项目>/project.json # 花多少钱、等多久
openshorts export ~/OpenShorts/<项目>/project.json --platform douyin # 发布包
openshorts batch ~/OpenShorts/<项目>/project.json --captions douyin,clean # 同脚本出多版
openshorts new --lang en --topic "why cats squeeze into boxes" # 英文片
--lang en 那条值得单说:不只是界面翻译,脚本、音色、字幕断行、发布包整条链路按英文来。上面那条猫钻纸箱的英文片就是这么出的。
五、它出的片为什么能看
同类工具的问题不在"能不能出",在"出来的能不能用"。开片在六个地方下了功夫,每一处都有真片子撑着。
1. 画面是被模型看过才用的
配一个能看图的模型,每条候选素材抽一帧,按这一镜的"画面意图"打 0 到 10 分。6 分以上才能当主画面,4 到 5 分只能补切段,4 分以下判退。 没配看图模型的时候,质检会明说"这些画面没人看过",不会悄悄放行。开头那口铜钟,就是这一关拦下来的。
《指南针指的真不是正北》把这一关演到了极端。引擎原话:

这条片讲地磁场、外核液态铁、磁北极漂移,素材库里根本没有这些东西的实拍。搜 compass 只会给你一堆罗盘特写。宁可现画也不放错图。 7 镜里 5 镜全退了,全部改本机现画,成片没有一镜是"凑合用了个不相干的画面"。
2. 素材库没货,本机现画一张
这是检索类工具做不到的。跑一次 openshorts install-image,装 FLUX.1-schnell,Apache-2.0 可商用。装了之后,素材库没命中的镜头会本机现画一张,M2 Max 实测约 57 秒,不花钱不联网。
《为什么切洋葱会流眼泪》里,"冰箱冷藏十分钟,低温让酶活性降低"这一镜的候选全没过看图把关,就是本机画的。洋葱这种题材,素材库里本来就没有对应画面。以前的做法是退一张纯色底,现在是照着口播画一张。

3. 画面 4 到 6 秒换一次
一镜切多段。长镜头按时长多取候选,视频素材还能用同一条的不同时间点补段。洋葱那条 60 秒的片,6 镜切成 11 段,平均 5.5 秒换一次画面,不切的时候是 10 秒。切到的每一段都过了相关性门槛,不是随机拼接。

4. 改一句话不重做整条
配音按"文案 + 音色 + 语速"复用,画面按"配音 + 素材 + 画幅"复用。改一句口播,只重出那一镜。换语速,全部重配音,但画面沿用。点"只重出这一镜",是丢掉已选素材重新找,文案没动就不重配音。配音是全流程最慢的一步,这里省下的是真时间。
5. 不给你一条"看起来成功了"的片
ffmpeg 6.x 有个坑:会静默丢音轨,退出码还是 0。所以出片后有质检,逐项报事实:分辨率、时长偏差、响度、字幕有没有烧进画面、AI 标识、有几镜是本机生成的、有几镜经过看图把关。不过就退出码 1,不放行。
它只报事实,不替你下结论。洋葱那条的质检输出是 8 项全过、0 条提醒,目标 60 秒实际 60.3 秒,差 0.5%。
6. 脚本不是一个通用 prompt
编排复用姊妹项目 agency-orchestrator,写脚本这一步是几个角色分工:科普作者写稿,抖音策略师起标题,编剧拆三镜。标题会给三个候选,你在第四步点一下就复制。
六、往深了走:短剧线和桌面版
AI 短剧线。 给一段故事,编剧拆三镜,镜头提示词按五段式写,氛围锁定块三镜逐字共用,人和猫三镜一致。三档:本机草稿档跑 stable-diffusion.cpp 加 MiniMax-H3 的 GGUF 模型,0 元;云端成片档接秘塔、火山 Seedance、Agnes 这些;同一条片可以混用。openshorts drama --plan 按供应商、档位、秒数逐镜列出花费,界面上要点"确认花费"才真跑。《深夜便利店》有同一故事的草稿档和成片档对照,能看出本机草稿到底够不够用。
桌面版。 mac(arm64 / x64)、Windows、Linux 四个安装包,双击即用。
合规。 成片默认带 AI 生成标识,素材署名逐条写进发布文案,CC BY-SA 要求的署名一条不少。
七、老实说几句
它现在是 alpha,三平台 CI,269 条测试,但有几件事我不想等你撞上才知道:
- 脚本长度靠提示词约束不完全可靠。 同一话题两次生成,一次 278 字,一次 183 字,短了三成。现在偏离超过 12% 会在 CLI 和质检里报出来,重新生成一次通常就对了。
- Edge TTS 是免费路径唯一的配音来源,微软说改就改。 同类项目 2024 到 2025 年都栽过。doctor 现在会真合成一句"你好"来验它活着没有,也支持配一个回落的语音供应商,Edge 挂了自动改走。
- 桌面版的 mac arm64 包我真下下来装过并跑通,Windows 和 Linux 包只经过 CI 构建,没有人工实测过。 安装包未签名,首次打开要在系统设置里放行。
- 早期版本出的片不如现在。 仓库里留了一条早期的《猫为什么总爱钻纸箱》做对照,字幕和画面都不如后来那条,我没删。
- npm 包还没首发,现在请用源码或 Release 包。
八、拿去用
四条成片、每一镜的来源、模型的原话、质检输出,全在仓库的 docs/cases/ 里,不用信我,点进去看。
如果你也在用一键出片工具,欢迎来 Discussions 晒片、提模板。素材没命中时它给你配了什么,我很想知道。
GitHub 搜 openshorts,或者点「阅读原文」。官网 os.aiolaola.com 能直接看成片。