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 | ... | exported | 16:9 | 2 小時前 | abc... |
提供 2–3 個明顯的下一步動作:「想要其中任何一個的分享連結嗎?嵌入程式碼?將其中一個重新匯出為 9:16 格式?」
B. 取得特定影片的詳細資訊
如果使用者提到了影片名稱或提供了 ID:
mcp__ozor__get_video({ videoId })
顯示:標題、當前狀態(draft / building / exported / failed)、格式、時長、最後更新時間,以及任何存在的 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 可能已失效。