mcpField
C
clipswarm

clipswarm

本地服务
github.com/Shoberman2媒体与设计03 周前更新

关于 clipswarm

clipswarm 是面向 Agent 的本地视频剪辑服务和命令行工具,可将 YouTube 视频与直播剪成带字幕的短片。它支持并行任务和定时搜索,并由 Agent 或配置的选取方式决定剪辑片段。

主要功能

  1. 01剪辑 YouTube 视频和直播
  2. 02制作带字幕的 9:16 短片
  3. 03并行处理剪辑任务
  4. 04定时搜索并剪辑视频
  5. 05提供字幕文本搜索工具

适用场景

  1. 01将播客精彩片段制作成短片
  2. 02剪辑直播最近的一段内容
  3. 03监测某主题的新视频
  4. 04批量处理多个视频片段

MCP 相关

向 MCP 客户端提供视频信息、字幕文本、剪辑和定时监测工具。可批量提交任务,并在渲染期间获取结果。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"shoberman2-clipswarm": {
"command": "npx",
"args": [
"-y",
"clipswarm"
]
}
}
}
启动命令npx -y clipswarm

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmclipswarm0.1.0

工具

12

收录的工具列表 · 更新于 2 周前

参数类型必填说明
urlstring是YouTube URL

详细介绍

clipswarm

CI npm License: MIT

开源、原生支持 Agent 的视频剪辑工具。 将任意数量的 AI Agent 指向 YouTube 视频 或直播流,即可获得随时可发布的爆款短视频:9:16 画幅、吸睛标题栏和逐词字幕。在你的机器上运行,无需 API 密钥或订阅。

一段 clipswarm 爆款短视频:白色标题卡写着“宇航员在 250 英里高空庆祝 7 月 4 日”,下方是国际空间站上三名宇航员的完整视频,底部带有逐词字幕

只需一条命令即可制作:clipswarm clip https://youtu.be/75-H-i9ctkE 6 14.4 --viral --title "Astronauts celebrate July 4th from 250 miles up"
视频素材:NASA(公共领域)。不代表 NASA 认可。

"Get me the 3 best moments from each of these 10 podcasts as shorts"
        │
        ├─ clipper agent 1 ─┐
        ├─ clipper agent 2 ─┼─► clipswarm MCP ─► yt-dlp ─► ffmpeg ─► clips/*_viral.mp4
        └─ clipper agent N ─┘     shared queue, cached transcripts, retries

为什么选择 clipswarm

OpusClip 风格的应用会替你决定什么内容算“爆款”。clipswarm 将工具交给你的 Agent来决定,再负责完成制作:

  • 内置爆款格式:1080×1920、吸睛标题卡、完整视频画面(绝不裁剪或放大),以及随说话逐词高亮的动态字幕。布局会适应源视频的画面比例。
  • 支持 YouTube 视频和直播流:剪辑直播流中刚刚发生的内容(start: -60, end: "now"),或晚上 8:41 播出的内容。
  • 字幕采用真实词语时间戳:普通视频使用 YouTube 自动字幕,直播流使用本地 whisper.cpp。免费且离线。
  • 自动运行:提供类别和计划(“netflix 股票,每 6 小时”),它就会查找新视频,让 AI 挑选片段并撰写吸睛标题,然后在后台渲染短视频。
  • 专为集群设计:通过一个共享队列,在多个视频上运行数十个并行任务,支持多个 Agent 同时工作。每个视频只获取一次转录文本,单个任务出错也不会拖垮整个批次。
  • 快速且省资源:只下载剪辑所需的片段(而非整个 3 小时直播),并在 macOS 上使用硬件编码。
  • 兼容任意 ffmpeg:文本由 clipswarm 自行渲染,因此不带 drawtext/libass 的常规构建版本(例如 Homebrew 版本)也能正常使用。

安装

1. 安装依赖(Node 20+):

brew install yt-dlp ffmpeg whisper-cpp     # macOS
# Linux: pip install -U yt-dlp && sudo apt install ffmpeg   (+ whisper.cpp for live captions)
npx -y clipswarm setup                     # checks everything; downloads the caption model (~140MB)

whisper-cpp 为可选组件。不安装也能正常使用所有功能,但直播流短视频渲染时不会带字幕。

请保持 yt-dlp 为最新版本(yt-dlp -U / brew upgrade yt-dlp)。YouTube 经常导致旧版本失效。这是导致故障的首要原因。

2. 将其添加到你的 AI 应用中:

应用方法
Claude Code(推荐,包含 clipper Agent)/plugin marketplace add Shoberman2/clipswarm 然后 /plugin install clipswarm@clipswarm
Claude Code(仅 MCP)claude mcp add clipswarm -- npx -y clipswarm mcp --out ./clips
Claude DesktopSettings → Developer → Edit Config,在其中添加下方 JSON
ChatGPT 桌面应用 / Codexcodex mcp add clipswarm -- npx -y clipswarm mcp(Codex CLI、IDE 扩展和 ChatGPT 桌面应用共用)
Cursor~/.cursor/mcp.json,使用下方 JSON
VS Codecode --add-mcp '{"name":"clipswarm","command":"npx","args":["-y","clipswarm","mcp"]}'
Gemini CLIgemini mcp add clipswarm npx -y clipswarm mcp
{ "mcpServers": { "clipswarm": { "command": "npx", "args": ["-y", "clipswarm", "mcp", "--out", "/Users/you/clips"] } } }

为什么不能使用 claude.ai 或网页版 ChatGPT? 它们只能连接托管服务。托管 YouTube 下载器会遇到数据中心 IP 封禁、服务条款风险,还要通过聊天窗口传输 50 MB 视频。clipswarm 在本地运行,这三个问题都不复存在。

使用方法

安装插件后,在 Claude Code 中:

为以下每个视频并行启动一个 clipper Agent,并从每个视频中为我找出最适合制作爆款短视频的 3 个片段:

将 https://www.youtube.com/@aljazeeraenglish/live 的最后 60 秒剪成一条爆款短视频。

每个 clipper Agent 都会读取对应视频的转录文本,挑选独立成段的片段,为每个片段撰写吸引人的开场,并调用 create_clips。它们会同时运行。

爆款视频格式

选项默认值
style"plain"设为 "viral" 可使用 9:16 格式
title视频标题标题钩子。Agent 应撰写简短有力的标题(≤10 个词);设为 "" 则不显示标题
background"#000000"视频背后的颜色(或设为 "blur")
captionstrue逐词字幕,每次显示 1–3 个词,并高亮当前词
accent"#FFE600"高亮颜色

始终显示完整画面。 clipswarm 绝不会裁切或缩放,因为视频中的重要内容(电子表格、图表、另一位说话者)可能出现在画面的任何位置。布局会根据源视频调整:

源视频布局
宽屏(16:9、屏幕录制、播客)视频占满宽度,标题置于上方,字幕置于下方,画面居中显示在黑色背景上
竖屏(9:16 短视频、手机视频)视频填满画面;标题和字幕叠加在视频上
正方形 / 4:3 / 其他比例尽可能放大显示,不裁切任何内容

普通视频的字幕来自 YouTube 自动字幕(精确到每个词的时间);直播流或没有字幕的视频则使用本地 whisper.cpp 生成。如果两者都不可用,仍会渲染片段,并在结果中添加一条 warnings 说明原因。

直播流

粘贴当前正在直播的链接(watch?v= 链接或频道的 /live 链接)。时间相对于直播边缘计算:

你想要的片段startend
最后 30 秒-30"now"
2 分钟前开始、时长 20 秒"-2:00""-1:40"
特定时刻播出的内容"2026-10-08T00:51:00Z""2026-10-08T00:51:30Z"
  • 可获取大约最近 1 小时的内容(YouTube 的 DVR 窗口)。
  • 普通直播片段会直接复制流以加快处理速度,并从前一个关键帧开始(最多提前 ≤5 秒)。结果中的 live.from / live.to 会提供精确的实际时间范围。若要按帧精确剪辑,请使用 precise: true。爆款短视频始终按帧精确剪辑。
  • end 不能设为未来时间。请在内容播出后重试。

监控:自动发现精彩片段

为 clipswarm 指定一个类别和计划。它会搜索 YouTube 上的新视频,挑选最精彩的时刻,并在你离开时将其剪辑成爆款短片。新片段生成后,Mac 会显示通知。

clipswarm watch add "netflix stock analysis" --every 6h          # what to look for, how often
clipswarm watch install                                          # background job (launchd on macOS)
clipswarm watch run --force                                      # or run it right now
clipswarm watch inbox                                            # what it found and clipped

或者直接向你的 Agent 提问:“每隔 12 小时监控新发布的 AI agent 新闻视频,并剪辑最精彩的片段。”(MCP 工具:create_watch、list_watches、run_watch、get_inbox、update_inbox_item、delete_watch、watch_scheduler。)

挑选时刻的方式,按优先顺序排列:

  1. AI。 如果已安装 Claude Code CLI,Claude 会读取转录文本,挑选完整独立的片段,并为每个标题撰写引子(例如 “Netflix 股价为 67 美元,但这个模型预测为 127 美元”)。此功能使用你自己的 Claude 账户运行。
  2. 重播次数最多的片段。 对于上传时间足够久的视频(通常是几天),使用 YouTube 的重播峰值。
  3. 转录文本启发式分析。 免费且离线:为包含提问、数字、强烈论断和富有感染力内容的片段打分。

如果 YouTube 字幕缺失或受到速率限制,监控器只会下载音频,并使用 whisper.cpp 进行转录。无法剪辑的内容会以 needs_agent 状态放入收件箱,由你的 Agent 处理。

选项默认值
--every6h30m、6h、1d……(最短 5m)
--max-age72h仅处理在此时间范围内上传的视频
--min-views无跳过播放量较低的视频
--videos3每次运行处理的新视频数
--clips / --seconds2 / 45每个视频的片段数、目标时长
--pickerauto可指定 ai、heatmap 或 transcript
--live关闭也将当前正在直播的内容列入收件箱
--no-auto关闭仅收集视频;不剪辑
--out~/clipswarm/<id>片段的保存位置

状态保存在 ~/.clipswarm/ 中(可通过 CLIPSWARM_HOME 更改位置)。每个视频只会处理一次。在 Linux 上,watch install 会打印一行 crontab 配置,clipswarm watch daemon 则可在任意位置运行前台循环。

工作原理

  1. 找到精彩时刻。 Agent 会调用 get_video_info、search_transcript 和 get_transcript。转录文本来自 YouTube 字幕,通过 yt-dlp 获取并缓存。
  2. 剪辑。
    • 常规视频: yt-dlp 仅下载指定片段。
    • 直播: clipswarm 会读取 YouTube 持续更新的 HLS 播放列表(包含带有实际时间戳的 5 秒分段),并仅获取覆盖指定时间范围的分段。
  3. 制作爆款短片。 clipswarm 获取每个词的时间信息,并绘制标题和字幕帧(字体 → 矢量路径 → PNG)。ffmpeg 会将它们与未经裁切的完整视频合成到 9:16 画布上。
  4. 共享机器资源。 所有 Agent 的每个任务都会经过同一个并发限制器;遇到 YouTube 间歇性返回 403 时会重试。

贡献者:请参阅 docs/ARCHITECTURE.md,了解完整的代码讲解。

MCP 工具

工具功能
get_video_info标题、频道、时长、章节、liveStatus
get_transcript带时间戳的转录文本,按紧凑的 [m:ss] 文本 行呈现;也可通过 from/to 指定时间范围
search_transcript查找某个短语出现的位置,并返回带前后时间的窗口,方便直接剪辑
create_clips在任意数量的视频中并行剪辑多个片段,无论是否为直播。选项:style、title、captions、accent、background、label、vertical、maxHeight、precise
get_clips获取仍在渲染的批次结果。create_clips 会在约 40 秒后返回 jobId,这样 MCP 客户端约 60 秒的超时限制就不会中断长批次任务
create_watch、list_watches、delete_watch、run_watch管理定时 YouTube 主题搜索和可选的自动剪辑
get_inbox、update_inbox_item、watch_scheduler查看需要 Agent 处理的视频,并管理可选的后台调度器

CLI

clipswarm clip <url> 13:53 14:28 --viral --title "His best advice in 30 seconds"
clipswarm clip <live-url> -60 now --viral --title "This just happened live"
clipswarm clip <url> 1:23 1:58 --label raw-cut                    # plain clip
clipswarm batch jobs.json --out clips                             # many jobs at once, writes clips/manifest.json
clipswarm search <url> stay hungry
clipswarm transcript <url>
clipswarm setup

定时监控

监控会在 YouTube 中搜索某个类别下近期上传的视频,并可剪辑其中最精彩的片段。只有在运行监控或安装后台调度器时,才会搜索视频并进行剪辑;添加监控仅会保存其设置。

clipswarm watch add "AI research" --every 6h
clipswarm watch list
clipswarm watch run ai-research
clipswarm watch inbox
clipswarm watch remove ai-research

默认开启自动剪辑。默认的 --picker auto 会在本地 Claude Code CLI 可用时使用它,否则会改用 YouTube 回放峰值或转录文本启发式方法。调用 Claude CLI 时会使用其配置的账户,并可能消耗该账户的使用额度;使用 --picker heatmap 或 --picker transcript 可避免调用它。使用 --no-auto 可将发现的视频放入收件箱,供 AI Agent 审核。无法自动挑选的视频,以及启用 --live 时的直播,都会放入收件箱。clipswarm watch install 会选择加入 macOS launchd 任务,每五分钟检查一次到期监控;clipswarm watch uninstall 会移除该任务。监控状态存储在 ~/.clipswarm/state.json 中(设置 CLIPSWARM_HOME 可使用其他位置)。

配置

环境变量默认值
CLIPSWARM_CONCURRENCYmin(6, cpus)同时进行的下载/编码任务数上限,所有调用方共享;必须为正整数
CLIPSWARM_MAX_CLIP_SEC600防止意外下载完整视频;必须大于 0
CLIPSWARM_RETRIES3针对 YouTube 临时错误的重试次数;必须为非负整数
CLIPSWARM_WHISPER_MODEL~/.cache/clipswarm/ggml-base.en.bin任意 whisper.cpp 模型,例如多语言模型
CLIPSWARM_FONT内置 Montserrat Black用于标题和字幕的任意 TTF/OTF 字体

平台支持

macOSLinuxWindows
剪辑、病毒式传播格式、直播✓(硬件编码)✓✓
监控✓ launchd✓ watch install 打印的 cron 行✓ 任务计划程序
通知✓––

CI 会在所有三个平台上运行测试套件(包括实际的 ffmpeg 渲染)。

已知限制

  • YouTube 的变更会导致下载器失效。 如果剪辑开始失败,请先更新 yt-dlp(yt-dlp -U)。clipswarm 的错误消息会提示这一点。
  • 频繁使用可能触发限流。 请求多次后,YouTube 有时会对字幕请求返回 HTTP 429。clipswarm 会重试,并改用 whisper.cpp 在本地转录音频。
  • 直播: 只能获取最近约一小时的内容,直播期间也没有转录文本。
  • “Most replayed”数据 只会出现在上传数天的视频中,因此监控会优先使用 AI 挑选。
  • 宽屏视频在手机上显示较小,因为 clipswarm 从不裁剪画面。这是有意为之:不会裁掉任何相关内容。

负责任地使用

仅剪辑你有权使用的内容:自己的视频、已获授权的内容,或在你所在司法辖区受合理使用原则保护的内容。YouTube 服务条款可能限制下载行为。你需对如何使用此工具负责。

路线图(欢迎协助)

根据用户的需求推进。请提交 issue。

  • 更多字幕样式(卡拉 OK 方框、表情符号、逐词弹出)
  • 本地文件和其他平台(大多数 yt-dlp 支持的网站都已可用)
  • 可选的托管模式/用于远程 Agent 的 HTTP 传输

许可证

MIT。内置的 Montserrat 字体遵循 SIL Open Font License。如需协助,请参阅 CONTRIBUTING.md。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。