关于 Crabcut
Crabcut 是一款 MCP 服务,可将 YouTube 视频转为带字幕的竖屏短片,并按评分排序。适用于需要生成短片和跟踪处理进度的 AI 助手及工作流。
主要功能
- 01从 YouTube 链接生成短片
- 02将画面调整为 9:16 竖屏
- 03为短片添加字幕
- 04跟踪项目与短片状态
- 05查看用量和剩余额度
适用场景
- 01从 YouTube 视频制作适合社交平台的短片
- 02仅处理视频中指定的片段
- 03通过 Webhook 接收已完成的短片
MCP 相关
向 MCP 客户端提供生成短片、查询项目状态、列出项目、获取短片详情和查看账户用量的工具。支持 stdio 配置和远程 Streamable HTTP 端点。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
5收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | string | 是 | 完整的 YouTube 视频 URL(例如 https://www.youtube.com/watch?v=...) |
| end_time | number | 否 | 剪辑视频片段的结束时间(秒)。省略此参数可处理完整视频。 |
| start_time | number | 否 | 剪辑视频片段的开始时间(秒)。省略此参数可处理完整视频。 |
| callback_url | string | 否 | 处理完成时接收 POST 请求的 Webhook URL。负载包含按评分排序的片段数组,每个片段都包含 download_url。 |
详细介绍
@crabcut/mcp-server
将 YouTube 视频制作成短片——可通过 Claude、Cursor 或任何支持 MCP 的 AI 助手使用。
提供 YouTube 链接。它会找出最佳片段,调整画面以适配竖屏视频(9:16),添加字幕,并返回可供下载的短片。
快速开始
- 在 app.crabcut.ai/developers 获取 API 密钥
- 运行:
CRABCUT_API_KEY=sk_live_... npx @crabcut/mcp-server
设置
Claude Desktop / Cursor
将以下内容添加到配置文件中——Claude 使用 claude_desktop_config.json,Cursor 使用 .cursor/mcp.json:
{
"mcpServers": {
"crabcut": {
"command": "npx",
"args": ["@crabcut/mcp-server"],
"env": {
"CRABCUT_API_KEY": "sk_live_..."
}
}
}
}
Cursor Directory
Smithery
npx @smithery/cli mcp add crabcut/crabcut-mcp-server
远程(Streamable HTTP)
适用于 n8n、自定义集成,或任何支持远程 MCP 的客户端:
- 端点:
https://mcp.crabcut.ai/mcp - 身份验证:
Authorization: Bearer sk_live_... - 传输方式: Streamable HTTP(POST)
工具
| 工具 | 功能 |
|---|---|
generate_clips | 根据 YouTube URL 开始生成短片。立即返回 project_id。 |
get_project_status | 查看进度,并在短片准备就绪后获取短片。短片按评分排序(最佳在前)。 |
list_projects | 列出你的项目及其状态和短片数量。 |
get_clip | 获取单个短片的完整详情。 |
check_usage | 查看你的套餐、剩余点数和使用情况。 |
工作原理
- 使用 YouTube URL 调用
generate_clips - 立即获取
project_id - 每隔 10–15 秒轮询一次
get_project_status(或传入callback_url以使用 webhook) - 完成后,短片将按评分排序(最佳在前),每个短片都带有一个
download_url
状态
项目: pending → processing → completed(或 completed_no_clips / failed)
处理步骤: queued → DOWNLOADING_VIDEO → EXTRACTING_AUDIO → TRANSCRIBING → DETECTING_HIGHLIGHTS → CUTTING_CLIPS → EXPORTING_CLIPS → done
短片: pending → exporting → completed(或 failed)。当 clip_status 为 completed 时,download_url 即可用。
API 参考
generate_clips
开始从 YouTube 视频生成短片。
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
url | string | 是 | 完整的 YouTube 视频 URL |
start_time | number | 否 | 开始时间,单位为秒(仅处理一段视频时使用) |
end_time | number | 否 | 结束时间,单位为秒(仅处理一段视频时使用) |
callback_url | string | 否 | 完成后接收结果的 Webhook URL |
{
"project_id": "43dbe622-8ac6-4579-9625-0ad7f0f9db0b",
"status": "processing",
"poll_url": "/api/v1/projects/43dbe622-8ac6-4579-9625-0ad7f0f9db0b",
"estimated_minutes": 5,
"message": "Processing started. Poll with get_project_status every 10-15 seconds until status is 'completed'."
}
get_project_status
查看进度并获取短片。
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
project_id | string | 是 | 来自 generate_clips 的项目 ID |
{
"id": "43dbe622-...",
"name": "Video Title",
"status": "completed",
"step": "done",
"error": null,
"expected_clips": 9,
"duration": 639,
"created_at": "2026-03-15T02:21:46.226Z",
"clips": [
{
"id": "32538b9c-...",
"title": "One Dating Theory Leads to Chaos",
"duration": 41.83,
"score": 90,
"reason": "Sharp universal joke that hooks instantly with strong reactions.",
"clip_status": "completed",
"download_url": "https://cdn.crabcut.ai/exports/premium/.../clip-32538b9c-....mp4",
"quality": "1080p",
"thumbnail_url": "https://cdn.crabcut.ai/exports/premium/.../clip-32538b9c-...-thumb.jpg",
"created_at": "2026-03-15T02:29:10.954Z",
"updated_at": "2026-03-15T02:30:43.907Z"
}
]
}
短片按 score 排序(从高到低)。
list_projects
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
limit | number | 否 | 返回的最大项目数。默认值为 20,最大值为 100。 |
status | string | 否 | 筛选条件:pending、processing、completed、completed_no_clips、failed |
{
"projects": [
{
"id": "43dbe622-...",
"name": "Video Title",
"status": "completed",
"step": "done",
"expected_clips": 9,
"clips_count": 8,
"duration": 639,
"created_at": "2026-03-15T02:21:46.226Z"
}
],
"total": 1,
"limit": 20,
"offset": 0
}
get_clip
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
clip_id | string | 是 | 来自项目短片数组的短片 ID |
{
"id": "32538b9c-...",
"project_id": "43dbe622-...",
"title": "One Dating Theory Leads to Chaos",
"duration": 41.83,
"score": 90,
"reason": "Sharp universal joke that hooks instantly.",
"export_status": "completed",
"export_quality": "1080p",
"is_exported": true,
"video_url": "https://cdn.crabcut.ai/...",
"video_url_720p": "https://cdn.crabcut.ai/...",
"video_url_1080p": "https://cdn.crabcut.ai/...",
"thumbnail_url": "https://cdn.crabcut.ai/...",
"created_at": "2026-03-15T02:29:10.954Z",
"updated_at": "2026-03-15T02:30:43.907Z"
}
check_usage
无需输入。
{
"plan": "pro",
"credits_remaining": 450,
"credits_total": 500,
"period_start": "2026-03-01T00:00:00.000Z",
"period_end": "2026-04-01T00:00:00.000Z"
}
错误
| HTTP 状态 | 错误 | 处理方法 |
|---|---|---|
| 400 | YouTube URL 无效 | 检查 URL 格式 |
| 401 | 未经授权 | 检查 API 密钥 |
| 402 | 点数不足 | 购买更多点数或使用较短的视频 |
| 429 | 超出速率限制 | 等待后重试 |
| 500 | 服务器内部错误 | 稍后重试 |
Webhooks
调用 generate_clips 时传入 callback_url,即可在所有片段准备就绪后收到 POST 请求。
已完成:
{
"event": "project.completed",
"project_id": "43dbe622-...",
"status": "completed",
"source_url": "https://www.youtube.com/watch?v=H51iLa1leOU",
"clips": [
{
"id": "32538b9c-...",
"title": "One Dating Theory Leads to Chaos",
"duration": 41.83,
"score": 90,
"download_url": "https://cdn.crabcut.ai/exports/premium/.../clip-32538b9c-....mp4",
"thumbnail_url": "https://cdn.crabcut.ai/exports/premium/.../clip-32538b9c-...-thumb.jpg",
"quality": "1080p"
}
]
}
失败:
{
"event": "project.failed",
"project_id": "43dbe622-...",
"status": "failed",
"error": "YouTube video is unavailable",
"clips": []
}
片段按评分排序(从高到低)。如果你的服务未响应,我们最多重试 3 次。
签名验证(可选): 每个回调都包含一个 X-Crabcut-Signature 标头。使用 SHA-256(your_api_key) 作为签名密钥,计算请求正文的 HMAC-SHA256。将结果与标头值(sha256=<hex>)进行比较。
与 n8n 搭配使用
选项 A — Webhook(推荐):
- 创建一个包含 Webhook 触发器节点的工作流。复制其 URL。
- 添加一个 HTTP Request 节点:
POST https://api.crabcut.ai/api/v1/clips/generate,使用 Header Auth(Authorization: Bearer sk_live_...),并添加以下正文:{ "url": "https://www.youtube.com/watch?v=...", "callback_url": "https://your-n8n.com/webhook/abc123" } - 片段准备就绪后,Webhook 节点会收到负载。
- 最佳片段:
{{ $json.clips[0].download_url }}
选项 B — 轮询循环:
- 发送
POST请求以生成片段(与上述相同,但不包含callback_url)。 - Wait 15 秒 → GET
https://api.crabcut.ai/api/v1/projects/{{ $json.project_id }}→ 如果状态不是completed,则循环返回 Wait。
REST API
如需不通过 MCP 直接发送 HTTP 请求:
| 方法 | 端点 | 说明 |
|---|---|---|
POST | /api/v1/clips/generate | 开始生成片段 |
GET | /api/v1/projects/:id | 获取项目状态和片段 |
GET | /api/v1/projects | 列出项目 |
GET | /api/v1/clips/:id | 获取单个片段的详情 |
GET | /api/v1/account/usage | 查看积分和套餐 |
基础 URL:https://api.crabcut.ai — 所有端点都需要 Authorization: Bearer sk_live_...
环境变量
| 变量 | 必填 | 默认值 |
|---|---|---|
CRABCUT_API_KEY | 是 | — |
CRABCUT_API_URL | 否 | https://api.crabcut.ai |
链接
- 网站:crabcut.ai
- API 密钥:app.crabcut.ai/developers
- 定价:crabcut.ai/pricing
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。