Ozor 视频库
通过 MCP 管理现有的 Ozor.ai 视频:列出、检查、重新导出、嵌入或向视频代理发送后续编辑。此技能是 mcp__ozor__* 中“除从头创建之外”的所有操作入口。
何时使用
当用户希望对 Ozor 账户中已有的视频 进行操作时使用此技能。典型场景:
- “列出/显示我的视频”
- “...的状态是什么”
- “获取分享链接/下载/嵌入...”
- “以 9:16 重新导出那个视频”
- “发送后续编辑:将场景 2 改为...”
- “显示那个视频的计划”
- “作业完成了吗”/“检查导出状态”
请勿在以下情况下使用此技能:
- 从文本创建新视频 →
ozor-generate - 从文档/文件创建 →
ozor-document-video - 从 URL 创建 →
ozor-url-to-video
必需的 MCP 工具
| 任务 | 工具 |
|---|---|
| 列出最近视频 | mcp__ozor__list_videos |
| 获取单个视频详情 | mcp__ozor__get_video |
| 检查构建作业状态 | mcp__ozor__get_job |
| 阻塞直至作业完成 | mcp__ozor__wait_for_job |
| 获取构建视频所用的计划 | mcp__ozor__get_plan |
| 编辑计划 | mcp__ozor__update_plan |
| 触发(新)导出 | mcp__ozor__export_video |
| 阻塞直至导出就绪 | mcp__ozor__wait_for_export |
获取用于嵌入的 <iframe> | mcp__ozor__get_embed_code |
| 向代理发送后续编辑消息 | mcp__ozor__send_message |
| 列出可用语音 | mcp__ozor__list_voices |
如果 MCP 未连接,请告知用户并停止。
常见工作流
A. 列出最近视频
mcp__ozor__list_videos({ limit?: 10 })
以表格形式呈现:
| # | 标题 | 状态 | 格式 | 更新于 | videoId |
|---|------|------|------|--------|---------|
| 1 | ... | 已导出 | 16:9 | 2小时前 | abc... |
提供 2-3 个明显的后续操作:“需要这些视频的分享链接吗?嵌入代码?将其中一个重新导出为 9:16?”
B. 获取特定视频的详情
如果用户提及视频名称或提供 ID:
mcp__ozor__get_video({ videoId })
显示:标题、当前状态(草稿/构建中/已导出/失败)、格式、时长、最后更新以及任何存在的 URL(分享、编辑器、下载)。
C. “我最近一个视频的状态是什么?”
list_videos({ limit: 1 })找到最近的一个。- 如果
status为building,同时调用get_job(如果用户希望阻塞等待则调用wait_for_job)以获取进度。 - 如果
status为exported,显示 URL。
D. 获取嵌入代码
mcp__ozor__get_embed_code({ videoId })
如果视频尚未导出,先运行导出(下面的工作流 F)。
E. 获取分享/下载 URL
如果视频已导出,get_video 会返回 URL。如果没有:
mcp__ozor__export_video({ videoId })
mcp__ozor__wait_for_export({ videoId })
F. 重新导出(例如用户希望在编辑后获得新渲染,或 URL 已过期)
mcp__ozor__export_video({ videoId })
mcp__ozor__wait_for_export({ videoId }) // -> 新的 shareUrl, editorUrl, downloadUrl
mcp__ozor__get_embed_code({ videoId }) // -> 新的 iframe
G. 以不同格式重新渲染(例如横屏 → 竖屏)
格式更改通过计划实现:
mcp__ozor__get_plan({ videoId })— 获取当前计划mcp__ozor__update_plan({ planId, format: "9:16" })— 应用更改mcp__ozor__generate_from_plan({ planId })属于从计划创建新项目的路径 — 如果用户希望 更新同一项目,优先使用send_message(工作流 H)。如果他们希望以新格式创建 新项目,则回退到generate_from_plan,然后导出。
注意:generate_from_plan 位于 ozor-document-video / ozor-url-to-video 中,因为它会创建全新的项目。在启动新项目而非修改现有项目时,请告知用户。
H. 向代理发送后续编辑
对现有视频进行文案/视觉/场景调整,无需从头开始:
mcp__ozor__send_message({
videoId,
message: "<用户的编辑,例如 '在场景2中,将标题改为X,并让背景更亮'>"
})
这通常会返回一个新的 jobId。然后:
mcp__ozor__wait_for_job({ videoId, jobId })
mcp__ozor__export_video({ videoId })
mcp__ozor__wait_for_export({ videoId })
之后展示新的 URL。
I. 检查/编辑计划
mcp__ozor__get_plan({ videoId | planId })
以编号列表的形式向用户展示场景。如果他们想要更改:
mcp__ozor__update_plan({ planId, ... })
然后重新获取以确认。仅编辑计划不会更改渲染出的视频 — 之后必须进行重新生成(原地编辑用 send_message,新项目用 generate_from_plan)和导出。
J. 列出语音
当用户正在选择或更换语音时:
mcp__ozor__list_voices()
展示紧凑列表(名称、语言、风格)。如果更换语音,update_plan({ planId, voice: "<语音 id>" }) 然后重新生成。
消除“那个视频”/“我最近一个视频”的歧义
如果用户说“那个视频”或“我最近一个”而没有提供 ID:
list_videos({ limit: 5 })。- 如果恰好有一个与描述匹配,使用它。
- 如果有多个可能匹配,展示简短列表并询问。
不要默默随机选择一个视频。
展示 URL
始终带有标签展示可用的 URL:
**分享:** <shareUrl>
**编辑器:** <editorUrl>
**下载:** <downloadUrl>
**嵌入:** (在代码块中)
如果某个 URL 尚不存在(例如视频从未导出),不要编造 — 告知用户缺少什么并提供运行导出的选项。
错误与恢复
- 未找到
videoId→ 列出最近视频并询问他们指的是哪一个。 - 作业失败 → 逐字传达失败消息;提供通过
send_message修复或重新导出的选项。 - 导出失败 → 重试一次;如果再次失败,显示错误并建议打开编辑器 URL 检查。
- 计划/视频不同步(计划已编辑但未重新生成) → 告知用户更改已暂存但未渲染,并提供重新生成的选项。
规则
- 切勿编造视频 ID、分享 URL 或状态。 一切来自 MCP。
- 对于原地编辑,优先使用
send_message而不是通过generate_from_plan创建新项目。用户几乎总是希望更新现有视频,而不是创建一个副本。 - 重新导出廉价且安全 — 如果用户想要新的 URL,只需重新运行导出。
- 当用户含糊地提及某个视频时,询问 — 展示简短列表,不要猜测。
- 每次重新生成或重新导出后展示所有 URL。 对话早期给出的旧 URL 可能已过期。