¿Qué hace Ozor Video Library?
Gestiona videos existentes de Ozor.ai a través del MCP: lista, inspecciona, reexporta, incrusta o envía ediciones de seguimiento al agente de video. Este skill es la superficie de "todo excepto crear desde cero" para mcp__ozor__*.
Cuándo usarlo
Usa este skill cuando el usuario quiera operar sobre videos que ya existen en su cuenta de Ozor. Señales:
- "Listar / mostrar mis videos"
- "¿Cuál es el estado de ...?"
- "Obtén el enlace para compartir / descargar / incrustar de ..."
- "Reexporta ese video a 9:16"
- "Envía una edición de seguimiento: cambia la escena 2 a ..."
- "Muéstrame el plan de ese video"
- "¿Ya terminó el trabajo?" / "revisa la exportación"
NO uses este skill cuando:
- Crear un nuevo video desde texto →
ozor-generate - Crear desde un documento/archivo →
ozor-document-video - Crear desde una URL →
ozor-url-to-video
Herramientas MCP requeridas
| Tarea | Herramienta |
|---|---|
| Listar videos recientes | mcp__ozor__list_videos |
| Obtener detalles de un video | mcp__ozor__get_video |
| Consultar estado de un trabajo de compilación | mcp__ozor__get_job |
| Bloquear hasta que finalice un trabajo | mcp__ozor__wait_for_job |
| Obtener el plan con el que se construyó un video | mcp__ozor__get_plan |
| Editar un plan | mcp__ozor__update_plan |
| Activar una (nueva) exportación | mcp__ozor__export_video |
| Bloquear hasta que la exportación esté lista | mcp__ozor__wait_for_export |
Obtener <iframe> para incrustar | mcp__ozor__get_embed_code |
| Enviar un mensaje de edición de seguimiento al agente | mcp__ozor__send_message |
| Listar voces disponibles | mcp__ozor__list_voices |
Si el MCP no está conectado, informa al usuario y detente.
Flujos de trabajo comunes
A. Listar videos recientes
mcp__ozor__list_videos({ limit?: 10 })
Preséntalo como una tabla:
| # | Título | Estado | Formato | Actualizado | videoId |
|---|--------|--------|---------|-------------|---------|
| 1 | ... | exportado | 16:9 | hace 2h | abc... |
Ofrece 2–3 acciones obvias siguientes: "¿Quieres enlaces para compartir de alguno? ¿Un código de incrustación? ¿Reexportar uno como 9:16?"
B. Obtener detalles de un video específico
Si el usuario menciona un video o da un ID:
mcp__ozor__get_video({ videoId })
Muestra: título, estado actual (borrador / compilando / exportado / fallido), formato, duración, última actualización y cualquier URL que exista (compartir, editor, descarga).
C. "¿Cuál es el estado de mi último video?"
list_videos({ limit: 1 })para encontrar el más reciente.- Si el
statusesbuilding, también llama aget_job(owait_for_jobsi el usuario quiere bloquear hasta que termine) para obtener el progreso. - Si el
statusesexportado, muestra las URLs.
D. Obtener el código de incrustación
mcp__ozor__get_embed_code({ videoId })
Si el video aún no se ha exportado, ejecuta la exportación primero (flujo de trabajo F a continuación).
E. Obtener la URL para compartir / descargar
Si el video ya está exportado, get_video devuelve las URLs. Si no:
mcp__ozor__export_video({ videoId })
mcp__ozor__wait_for_export({ videoId })
F. Reexportar (p. ej., el usuario quiere una nueva renderización después de ediciones, o la URL expiró)
mcp__ozor__export_video({ videoId })
mcp__ozor__wait_for_export({ videoId }) // -> nueva shareUrl, editorUrl, downloadUrl
mcp__ozor__get_embed_code({ videoId }) // -> nuevo iframe
G. Re-renderizar en un formato diferente (p. ej., horizontal → vertical)
Los cambios de formato pasan por el plan:
mcp__ozor__get_plan({ videoId })— obtener el plan actualmcp__ozor__update_plan({ planId, format: "9:16" })— aplicar el cambiomcp__ozor__generate_from_plan({ planId })está en la ruta de crear desde plan—si el usuario quiere el mismo proyecto actualizado, prefieresend_messageen su lugar (flujo H). Si quiere un nuevo proyecto en el nuevo formato, recurre agenerate_from_plan, luego exporta.
Nota: generate_from_plan reside en ozor-document-video / ozor-url-to-video porque crea un proyecto nuevo. Informa al usuario cuando estés a punto de iniciar un nuevo proyecto en lugar de mutar el existente.
H. Enviar una edición de seguimiento al agente
Para ajustes de texto/visuales/escena en un video existente sin empezar de nuevo:
mcp__ozor__send_message({
videoId,
message: "<la edición del usuario, p. ej., 'En la escena 2, cambia el titular a X y haz el fondo más claro'>"
})
Esto normalmente devuelve un nuevo jobId. Luego:
mcp__ozor__wait_for_job({ videoId, jobId })
mcp__ozor__export_video({ videoId })
mcp__ozor__wait_for_export({ videoId })
Muestra las nuevas URLs después.
I. Inspeccionar / editar un plan
mcp__ozor__get_plan({ videoId | planId })
Muestra las escenas como una lista numerada al usuario. Si quieren cambios:
mcp__ozor__update_plan({ planId, ... })
Luego vuelve a obtener para confirmar. Las ediciones del plan por sí solas no cambian el video renderizado—deben ir seguidas de una regeneración (send_message para cambios en el mismo proyecto, generate_from_plan para un proyecto nuevo) y una exportación.
J. Listar voces
Cuando el usuario está eligiendo o cambiando una voz:
mcp__ozor__list_voices()
Presenta una lista compacta (nombre, idioma, estilo). Si se cambia, update_plan({ planId, voice: "<id de voz>" }) y luego regenera.
Desambiguar "ese video" / "mi último video"
Si el usuario dice "ese video" o "el último" sin un ID:
list_videos({ limit: 5 }).- Si exactamente uno coincide con la descripción, úsalo.
- Si hay múltiples coincidencias plausibles, muestra la lista corta y pregunta cuál.
No elijas un video al azar en silencio.
Presentar URLs
Siempre presenta las URLs disponibles etiquetadas:
**Compartir:** <shareUrl>
**Editor:** <editorUrl>
**Descargar:** <downloadUrl>
**Incrustar:** (en un bloque de código)
Si una URL no existe todavía (p. ej., el video nunca se exportó), no inventes una—informa al usuario qué falta y ofrécete a ejecutar la exportación.
Errores y recuperación
videoIdno encontrado → lista los videos recientes y pregunta cuál quería decir.- Trabajo fallido → transmite el mensaje de fallo textualmente; ofrece
send_messagecon una corrección o una reexportación. - Exportación fallida → reintenta una vez; si falla de nuevo, muestra el error y recomienda abrir la URL del editor para inspeccionar.
- Plan / video desincronizado (plan editado pero no regenerado) → informa al usuario que los cambios están preparados pero no renderizados, y ofrece regenerar.
Reglas
- Nunca inventes IDs de video, URLs para compartir o estados. Todo proviene del MCP.
- Para ediciones en el mismo proyecto, prefiere
send_messageantes que crear un nuevo proyecto mediantegenerate_from_plan. El usuario casi siempre quiere que se actualice el video existente, no un duplicado. - Las reexportaciones son baratas y seguras — si el usuario quiere URLs nuevas, simplemente vuelve a ejecutar la exportación.
- Cuando el usuario sea vago sobre qué video, pregunta — muestra una lista corta, no adivines.
- Muestra todas las URLs después de cada regeneración o reexportación. Las URLs obsoletas de antes en la conversación pueden haber expirado.