四个真实案例。每一行左边的输入,是你给 ClipForge 的话;右边,是它返回给你的成片。
你说的: 「今天 GitHub 上涨星最快的项目」
它做的: 自动抓取趋势数据 → 筛选涨星最快的项目 → 编写文案 → 配音配乐 → 渲染竖屏视频 → 生成封面和抖音文案
结果: 一条 45 秒视频,直接能发。每天 7 点自动执行,全程无需人工介入。
你说的: 上传一份 30 页的行业报告 PDF
它做的: 提炼核心数据点(4175 亿市场规模、75% 无效培训、AI 增速 4 倍)→ 编写旁白 → 配音 → 配乐 → 渲染成片
结果: 55 秒深度分析视频,5 个数据点讲清行业变革。
你说的: 「帮我做一个『服务即软件』趋势的深度解读长视频」
它做的: 提炼核心论点 → 拆解成 18 个场景 → 编写长文案 → 分段配音配乐 → 单次渲染合成 10 分钟成片
结果: 一条 10 分钟长视频,从概念定义到落地案例层层递进 — ClipForge 不只能做 1 分钟短视频。
你说的: 「从创业失败残骸里淘教训 + 可复用点子」
它做的: 从 loot-drop.io 抓真实失败案例(如微贷网 P2P 烧光 $110M)→ 剖析死因(监管清退 + 期限错配庞氏死亡螺旋)→ 淘可复用点子(CreditOS:不做放贷,给银行卖 AI 风控铲子)→ 渲染暖金风复盘视频
结果: 一条第一人称「淘金者」复盘视频 — 从「这家怎么死的」到「能偷什么点子」。每周二/四/六自动执行,从中国公司起步逐步覆盖全球。
看完这四个例子,你是不是在想:如果我把我的专业领域喂给它,是不是也能做出这样的视频?
答案是:能。
ClipForge 不限于技术视频。它的核心能力是把信息变成视频 — 你熟悉什么领域,就做什么领域的视频。
| 如果你研究... | 你可以这样做视频... |
|---|---|
| 医学 / 健康科普 | 每周一条医学新知,用数据讲清每个结论 |
| 财经 / 投资 | 每日市场异动速报,用数字说话 |
| 读书 / 知识 | 把一本书的核心观点变成 1 分钟视频 |
| AI / 科技前沿 | 论文速读、产品测评、趋势预测 |
| 教育 / 考研考证 | 知识点拆解,把难懂的概念讲明白 |
| 管理 / 职场 | 方法论拆解、案例复盘、行业分析 |
| 设计 / 审美 | 设计趋势、灵感集、案例分析 |
| 法律 / 政策 | 新法规解读、案例分析 |
你不需要会剪辑、不需要出镜、不需要配音。你只需要懂一个领域,并且愿意讲出来。
给 ClipForge 一个想法、一段文字、一份报告、一个 URL — 它都能变成视频。
Linus 写了 Linux,没有收费,世界因此多了无数可能。无数开发者提交 PR,不求回报,只因为"这个问题我解决了,别人就不用再踩一遍坑"。
这就是开源精神——本质上是一种信仰:我贡献,不是因为能得到什么,而是因为世界会因此好一点点。
那些真正改变效率的开源项目,每天在 GitHub Trending 上冲榜、拿星,但大多数人根本不知道它们的存在。我一直觉得,好的代码不该只待在 GitHub 的角落里无人知晓。于是我想做一件事:每天把最火的开源项目,用最短的时间告诉所有人。
一个人分享,帮助十个人;十个人分享,帮助一百个人。当分享成为潮流,进步的速度就不是加法,而是乘法。
想法很纯粹,执行却走了很多弯路。我尝试了各种视频制作工具,自己上手剪了半个多月,才发现视频创作、脚本设计、分镜节奏这些专业知识远没有想象中简单。
转折出现在几个月后。我发现了开源项目 HyperFrames——通过写 HTML 代码就能生成视频。代码我懂,但实际用下来,它的排版布局不完全符合竖屏短视频的需求,每个视频都要反复调整,根本不可能做到每天一期。
所以——ClipForge 诞生了。
它把"写 HTML 生成视频"这个能力,包装成了一套完整的自动化管线:内容采集 → 场景设计 → 旁白配音 → BGM 配乐 → 视频渲染 → 封面生成 → 机器评分。指定一个分类,剩下的全自动完成。
每一行开源代码是一颗星火,每一次无私分享是一颗星火,每一个愿意贡献的人也是一颗星火。星火不灭,燎原不止。
整个过程可以理解成三步:
你说话 → 它创作 → 出成片
第一步:你说话 — 告诉 ClipForge 你想讲什么。一句话、一段文字、一个 URL、一份 PDF 都行。
第二步:它创作 — 自动写旁白文案 → 选配音 → 配音乐 → 设计画面 → 编排动画。每个环节都有质量门禁,不达标自动重来。
第三步:出成片 — 生成竖屏视频 + 封面 + 抖音文案,直接能发。
就是这么简单。你负责想,它负责做。
以下为技术细节,面向开发者和贡献者。 如果你是内容创作者,看到这里就够了 — 找一个懂技术的朋友帮你装好环境,然后你只需要和 ClipForge 对话。
git clone https://github.com/Johnson-Jia/video-clipforge.git
cd video-clipforge
bash install.sh # 项目级安装(默认,装到 .claude/commands/)
# bash install.sh --global # 或用户级(跨项目共享,装到 ~/.claude/commands/)
claude # 启动 Claude Code,技能自动加载
/clipforge 制作一个关于 XXX 的视频前置依赖: Node.js >= 22、FFmpeg、edge-tts、yt-dlp。详见 安装指南。
技能可装到项目级或用户级,两种方式功能等价。工作目录(视频输出)落当前 git 项目根,cd 到不同项目即切换。
| 命令 | 用途 |
|---|---|
/clipforge |
交互式视频制作 — 告诉它你想做什么 |
/clipforge-category-setup |
引导创建新分类配置 + 可选定时任务 — 只需回答几个问题 |
/clipforge-feedback |
分析播放数据,校准机器评分 — 进入自进化 |
定时任务(如每日/每周自动执行)由
/clipforge-category-setup引导生成,属于个人配置,不入 git。
ClipForge 不是一个固定输出的工具 — 它会从播放数据中学习,持续进化。
工作原理:
制作视频 → 机器评分 → 发布 → 你导入播放数据 → 机器对比预测 vs 实际 → 自动调整规则
- 每条视频制作完成后,ClipForge 自动生成机器预测评分(
score_report.json) - 视频发布 1-2 天后,你从各平台导出播放数据
- ClipForge 对比「机器预测」vs「实际播放表现」,发现偏差并产出校准信号
- 校准信号经人工确认后写入规则库,让下一次预测更准确
如何导入数据:
将平台导出文件放到 workspace/sources/视频数据/YYYY-MM-DD/ 目录:
| 平台 | 导出路径 |
|---|---|
| 抖音 | 创作者中心 → 数据中心 → 作品分析 → 投稿作品 → 投稿列表 → 选择全部 → 导出 |
| B站 | 创作中心 → 数据概览 → 近期稿件对比 → 导出(每次10条,多次导出) |
| 视频号 | 视频号助手 → 数据中心 → 视频数据 → 单篇视频 → 下载表格 |
| 小红书 | 创作服务平台 → 数据看板 → 内容分析 → 笔记数据 → 全部 → 导出 |
三种触发方式:
- 自动:每次制作完视频,ClipForge 自动检测是否有新数据,提示你分析
- 手动:运行
/clipforge-feedback,选择项目进行评分校准 - 引导:直接告诉 ClipForge「分析一下最近的播放数据」,它会自动走完流程
自进化已升级为完整动态闭环——相对大盘衰减(过时模式按"跑赢大盘的程度"自动降权/淘汰,不被大盘涨跌误导)、回归归因(控制其他变量后的边际净效应,分离题材×话术的真实贡献)、探索-利用(85% 用最强经验 / 15% 主动采集冷门维度数据,打破"只追不探"的死锁)。机制细节见架构文档。
最新一次进化:从"合规"到"爆款预测"。 一个反直觉的发现驱动了这次重构——机器评分和真实播放量曾出现负相关:6 月一批评分逼近满分的视频,播放量反而崩了 99.7%。根因是评分只衡量"符合既有规则的程度",越合规越像过去的自己,越同质越疲劳。于是评分被重构成多维——不再只看合规,还量化"这条和近期内容有多像"(新鲜度)和"播放潜力有多大"(预测)。满分不再是目标:与近期高度相似的视频会被新鲜度主动拉低。配合选题阶段的题材轮换与新鲜度约束,以及每日回流的真实播放数据训练预测模型(启发式→回归,样本够了自动升级),系统从"自我参照的合规优化"转向"对齐真实爆款的进化"。每日 /evolve-daily 自动跑完整个闭环,无需人工介入。
可视化仪表盘: 自进化数据可视化 + 手动调权重干预:
cd evolution-dashboard && python server.py # 浏览器打开 http://127.0.0.1:8765查看每个维度的受众广度 / 留存质量 / 回归净效应 + 历史视频表现,拖动维度权重滑块(题材/话术/封面/旁白)或调整单个经验模式权重,下次制作视频立即按"维度权重 × 模式权重"排序注入。
内容获取 → 导演设计 → 旁白文案 → 音频制备 → 素材制备 → 视频渲染 → 交付输出 → 机器评分 → 自动清理
└→ 反馈校准(可选)
| 阶段 | 产出 | 说明 |
|---|---|---|
| Stage 0 | env-check | 依赖检测与自动安装 |
| Stage 1 | content | 文字 / URL / PDF / GitHub 数据 / 任何你能提供的素材 |
| Stage 2 | design | 情感内核 → 配色 → 沉浸模式 → 故事板 |
| Stage 3 | narration | 场景拆解 + 分段旁白文案 |
| Stage 4 | audio | 分段 TTS + BGM 选取 + 音量校准 |
| Stage 5 | assets | 视觉素材制备(可选) |
| Stage 6 | video | HTML + 三层组件(bg / fx / content)+ 动画 → HyperFrames 渲染 |
| Stage 7 | delivery | 封面 + 文案 + 双版本输出(含 BGM / 纯旁白) |
| — | machine-scoring | 交付后自动运行 gate 全量校验,记录机器预测评分 |
| Stage 8 | feedback | 播放数据 + 人类评分 → 机器评分校准(发布后手动触发,可选) |
| — | cleanup | 按保留策略删除中间产物 |
DAG 定义在 schema.yaml。中断后重新运行自动跳过已完成阶段。
- 不教怎么做,只定边界 — 把创造空间留给 Agent,从 58 条真实播放数据中持续进化
- Schema 即真相 —
schema.yaml定义所有 artifact 依赖和状态,状态即文件存在 - 委托不重写 — HTML 渲染和混音委托 HyperFrames
- 双域分离 — 流程层零自由度(LETTER),内容层最大自由度(SPIRIT)
- 双闭环反馈 — 失败归因收紧规则 + 成功分析沉淀模式
引擎层完整设计参见 自进化架构设计。
ClipForge 内置了分类配置(GitHub 趋势、频道置顶等)。覆盖新领域只需一个命令:
/clipforge-category-setup
它会引导你回答几个问题(领域名称、数据来源、风格偏好、标签),然后自动生成完整的分类配置文件。大部分字段有合理默认值,你只需要提供你熟悉的那部分。
如果后续需要全自动化,/clipforge-category-setup 可以同时生成定时任务编排文件。
详见 CONTRIBUTING.md 和 架构文档。
.claude/commands/
├── clipforge.md # 主控制器(DAG、模式选择、错误恢复)
├── github-*.md # 定时任务编排(个人配置,不入 git)
└── clipforge/ # 技能包(静态定义,入库复用)
├── schema.yaml # Artifact DAG(唯一真相源)
├── stages/ # 阶段执行指南(stage0 ~ stage8)
├── shared/ # 共享技能(渲染安全、清理规则等)
├── categories/ # 分类配置(GitHub、漫画等)
├── components/ # 视觉组件库(65 个三层组件)
│ ├── bg/ # 背景层(27 个:极光、星云、光束…)
│ ├── fx/ # 特效层(14 个:粒子、光带、代码雨、星座…)
│ └── content/ # 内容层(24 个:数据卡、时间线、电影特效…)
├── scripts/ # 工具脚本(自进化/迁移/回填)
├── engine/ # 自进化引擎(门禁/归因/Trace/治理/可观测性)
│ └── lib/data_paths.py # 数据路径统一收口
├── rules/ # 约束规则库(静态)
├── skills/ # 技能声明(四原子模型)
└── patterns/seed/ # 人工经验模式(静态,入库)
evolution-dashboard/ # 可视化仪表盘(独立服务)
workspace/evolution/ # 自进化运行数据(gitignore:经验模式/轨迹/规则演化/阈值)
- 新内容源: 运行
/clipforge-category-setup,引导生成分类配置 + 定时任务 - 新分类: 运行
/clipforge-category-setup引导生成,或手动在categories/下创建配置文件 - 新规则: 在
rules/下添加 YAML,引擎自动加载 - 新阶段: 更新
schema.yaml+ 创建 stage 文件
ClipForge 的视觉画面由三层组件构成,每层都可以自由添加新组件:
| 层级 | 目录 | 现有 | 作用 | 示例 |
|---|---|---|---|---|
| 背景层 (bg) | components/bg/ |
27 | 奠定画面氛围底色 — 渐变、光晕、粒子、网格 | 极光流动、星云漂移、能量脉冲、钻石网格 |
| 特效层 (fx) | components/fx/ |
14 | 叠加动态视觉反馈 — 扫描线、光带、粒子爆发 | 代码雨、脉冲光球、对角光带、星座网络、分形闪电 |
| 内容层 (content) | components/content/ |
24 | 承载信息呈现 — 数据卡、时间线、对比面板 | 英雄卡片、星级计数、数据可视化、结论框 |
三层组合方式: 每个场景 = 1 个背景 + 0~2 个特效 + 1 个内容组件。AI 根据场景情感(兴奋、沉稳、悬念…)自动选配组合。
添加新组件只需三步:
- 在对应层级目录下创建 HTML 文件(含
@ComponentMeta元数据头) - 在
registry.yaml中追加一条索引 - 完成 — AI 下次创作视频时自动发现并引用
组件格式要求:纯 CSS 动画(bg 层)或 CSS + GSAP/Canvas(fx/content 层),深色底色,所有元素默认可见(opacity ≥ 0.15)。详见 components/ 目录下任意现有组件作为参考模板。
| 依赖 | 用途 | 安装 |
|---|---|---|
| HyperFrames | HTML 转视频渲染 | 首次运行自动安装 |
| Node.js >= 22 | HyperFrames CLI | winget install OpenJS.NodeJS.LTS |
| FFmpeg | 音视频处理 | winget install Gyan.FFmpeg |
| edge-tts | 中文 TTS 旁白 | pip install edge-tts |
| yt-dlp | YouTube 免版税音乐 | pip install yt-dlp |
视频标题字体(如 Ma Shan Zheng 毛笔体)由 build_font_faces 三级回退获取,字体文件不入 git(仓库不膨胀):
assets/fonts/(项目内置,默认空)- 字体目录(env
CLIPFORGE_FONTS_DIR>~/.claude/clipforge-config.json的fonts_dir,参照工作目录回退)——设了直接用本地、不下载:# 持久(写 config.json,推荐):编辑 ~/.claude/clipforge-config.json 加 "fonts_dir": "E:\\字体" # 临时:export CLIPFORGE_FONTS_DIR="/path/to/your/fonts"
- 自动下载到
~/.cache/hyperframes/fonts/(克隆者首次渲染从 Google Fonts 自动下载,无需配置)
克隆者无需配置,首次渲染自动下载。本地有字体库配 CLIPFORGE_FONTS_DIR 复用,不重复下载。
ClipForge 是我个人利用业余时间开发的免费开源项目。如果你觉得它有用,可以请我喝杯咖啡 — 这完全是自愿的。
你的支持能帮我:
- 🤖 抵消大模型 API 调用成本,让我能更自由地迭代和测试
- ✨ 开发更多视觉特效组件和内容分类模板
- ☕ 腾出更多业余时间完善功能和修复 bug
感谢每一位支持者 ❤️






