VidPipe:我使用 GitHub Copilot CLI 构建了一个 Agentic 视频编辑器
Source: Dev.to
这是对 GitHub Copilot CLI Challenge 的提交
我构建的
VidPipe 是一个开源的代理式视频编辑器,自动化整个后期制作工作流。拖入视频文件,15 阶段 AI 流程将其转换为:
- 短片(15–60 秒),每个短片有 6 种变体(横向、竖向、方形、feed —— 全部内嵌字幕)
- 中等时长片段(1–3 分钟),带交叉淡入淡出转场
- 卡拉 OK 风格字幕(逐词高亮,内嵌在视频中)
- AI 静音去除(上下文感知,最多 20 %)
- 章节检测(JSON、Markdown、YouTube 时间戳、FFmpeg 元数据)
- 针对平台定制的社交媒体帖子,适用于 TikTok、YouTube、Instagram、LinkedIn 和 X
- 博客文章,附带网络来源链接
- 成本追踪,覆盖所有 LLM 提供商
该流水线由 8 个专用 AI 代理 编排,基于 @github/copilot-sdk:
ShortsAgent, SummaryAgent, ProducerAgent, ChapterAgent, SocialMediaAgent, BlogAgent, MediumVideoAgent, SilenceRemovalAgent。
每个代理使用结构化工具调用,对你的内容做出智能、上下文相关的决策。
为什么要构建它
我是一名全职员工,也是一个爸爸(双胞胎即将出生——很快会有三个孩子),还是一名有抱负的科技创作者。我喜欢谈论技术,但 讨厌 剪辑。录制是有趣的部分,之后的所有工作都是我没有的时间。VidPipe 让我只需录制一次,就能在各平台发布。
GitHub Repository | npm package | Documentation
Demo
视频演示了 VidPipe 从录制的摄取到生成短视频、字幕烧录以及类似 Tinder 的审阅界面,用于批准社交媒体帖子,完整的端到端处理流程。
流水线运行示例
Ingest → Transcribe → Silence Removal → Captions → Caption Burn
→ Shorts → Medium Clips → Chapters → Summary
→ Social Posts → Short Posts → Medium Posts
→ Blog → Queue Build → Git Push
输出结构
每个处理后的视频都会拥有自己的有序文件夹:
recordings/my-demo/
my-demo-captioned.mp4 # With burned‑in captions
transcript.json # Word‑level timestamps
README.md # AI‑generated summary
shorts/
catchy-title-portrait.mp4 # 9:16 for TikTok/Reels
catchy-title-square.mp4 # 1:1 for Instagram
catchy-title/posts/ # Per‑short social posts
chapters/
chapters-youtube.txt # Ready to paste into YouTube
social-posts/
tiktok.md, youtube.md, instagram.md, linkedin.md, x.md
devto.md # Full blog post
审核 UI
VidPipe 包含一个内置的网页应用,您可以在内容被安排之前进行审查和批准:
Source: …
我在 GitHub Copilot CLI 的使用体验
GitHub Copilot CLI 不仅是我用来编写此项目的工具——它已成为 开发工作流的核心组成部分。以下是具体做法:
1. 自定义 Copilot Hook —— 在每一步强制质量把关
我在 .github/hooks/ 中构建了 5 个自定义 Copilot Hook,开发时会自动运行:
| Hook | 目的 |
|---|---|
pre-push-block | 阻止直接 git push。强制使用 npm run push 工作流(类型检查 → 测试 → 覆盖率 → 构建 → 推送 → CodeQL + Copilot PR 审核)。 |
post-edit-invalidate | 每次使用 Copilot CLI 编辑后使代码审查失效,强制在推送前进行全新审查。 |
pre-amend-block | 防止对已推送的提交进行 amend(保护 git 历史)。 |
pre-force-push-block | 完全阻止 git push --force。 |
pre-import-ban | 在整个代码库中强制执行 ESM 导入约定。 |
这些 Hook 将 Copilot CLI 限制在严格的护栏内——不走捷径,不跳过测试,不绕过审查。
2. 自定义 Agents —— 专业的 AI 工作者
我在 .github/agents/ 中创建了 3 个自定义 Copilot Agent:
| Agent | 角色 |
|---|---|
code-reviewer | 为 VidPipe 的特定约定审查 PR:提供者抽象模式、FFmpeg 解析器使用、成本跟踪、ESM 导入、测试覆盖率阈值等。 |
security-fixer | 通过 GitHub API 获取 CodeQL 警报,读取修复指南,并应用最小化的修复以消除每个漏洞。 |
review-triage | 对 Copilot 自己的 PR 审核评论进行分流,将每条评论标记为 ACCEPT、REJECT 或 DEFER。实现所有 ACCEPT 修复,并通过 GraphQL 解决讨论串。 |
3. 自定义 Skills —— 可复用的工作流
3 个自定义 Skill 位于 .github/skills/:
| Skill | 功能 |
|---|---|
npm-publish | 使用 Playwright 自动化创建细粒度 npm‑access‑token,完成身份验证并发布。 |
release | 在一次命令中完成版本号提升、变更日志生成、GitHub Release 创建以及 npm 发布。 |
late-api | 管理 Late.co 社交媒体排程 API:列出、重新排程、批量删除以及同步帖子。 |
4. 37 KB 的 copilot-instructions.md
我的 .github/copilot-instructions.md 是一个 37 KB 的文件,包含完整的项目上下文——每个流水线阶段、每个 Agent 行为、每个 FFmpeg 模式、每条测试约定。这样 Copilot CLI 在处理代码库时就能深刻理解 VidPipe 的整体架构。
knows that the adjusted transcript goes to captions while the original transcript goes to shorts. It knows that `execFile` (not `exec`) is required for FFmpeg. It knows the provider abstraction layer and cost tracking patterns.
5. 推送工作流 —— 由 Copilot 驱动的 CI/CD
npm run push 命令(由 Copilot Hook 强制执行)会运行以下完整流水线:
typecheck → tests (51 test files) → coverage check → build → git push
→ poll CodeQL alerts → poll Copilot PR review
→ auto-dispatch security‑fixer agent for CodeQL alerts
→ auto-dispatch review‑triage agent for review comments
只要有任何环节失败,Copilot CLI 就会进行修复并重新运行。循环往复,直至所有关卡全部通过。
Copilot CLI 对我的开发产生的影响
数字说明了一切:
- 131 个 TypeScript 文件,约 12,000 行源代码
- 51 个测试文件,约 10,500 行测试代码
- 8 个 AI 代理,基于
@github/copilot-sdk构建 - 15 阶段流水线,端到端处理视频
- 已发布到 npm,作为全局 CLI 工具
我在 3 周内完成了整个项目——作为业余项目,下班后并兼顾育儿。如果没有 Copilot CLI,这几乎是不可能的。它编写测试、修复安全警报、自行分配代码审查任务,并通过自定义钩子和指令保持代码库的一致性。
最强大的方面是什么? Copilot CLI 不仅帮助你编写代码——它成为你工程体系的一部分。钩子强制执行标准,代理处理审查,技能自动化发布。它不是坐在你旁边的助理,而是嵌入工作流的团队成员。
由一位忙碌的爸爸倾情打造,他更喜欢录制而不是剪辑。如果你是一位在后期制作中苦苦挣扎的创作者,试试 VidPipe 吧。
