Ozor Documento-para-Vídeo
Pipeline completo de documento para vídeo no Ozor.ai. Recebe um arquivo real (PDF, PPTX, DOCX, etc.), analisa-o no lado da Ozor para produzir um plano estruturado, permite que o usuário aprove/edite o plano e, em seguida, gera e exporta um vídeo finalizado — preservando os visuais dos slides ao longo do processo.
Quando usar
Use esta skill quando a entrada for um documento/arquivo. Sinais:
- Usuário anexou ou referenciou um PDF, PPTX, DOCX, exportação do Keynote, apresentação de slides, proposta, whitepaper, relatório, one-pager
- "Transforme esta apresentação em um vídeo"
- "Faça um vídeo a partir deste PDF"
- "Vídeo a partir da minha proposta / relatório"
NÃO use esta skill quando:
- A entrada for um brief criativo curto →
ozor-generate - A entrada for uma URL ou página de destino →
ozor-url-to-video - O usuário quiser apenas um prompt escrito para a Ozor →
ozor-doc-to-video(skill apenas de prompt) - O usuário quiser gerenciar vídeos existentes →
ozor-video-library
Ferramentas MCP necessárias
mcp__ozor__analyze_document— analisa o documento, retorna umplanIdmais o plano estruturadomcp__ozor__prepare_document_upload— obtém uma URL para upload via curl para arquivos locais sem URL pública (o caminho comum)mcp__ozor__get_plan— busca o estado mais recente do planomcp__ozor__update_plan— aplica edições do usuário ao plano antes da geraçãomcp__ozor__generate_from_plan— inicia a construção do vídeo a partir do plano aprovado, retornaprojectIdmcp__ozor__export_video— inicia a renderização (use oprojectIdcomovideoId)mcp__ozor__wait_for_export— bloqueia até que a renderização esteja prontamcp__ozor__get_embed_code— retorna o HTML<iframe>
Se o MCP da Ozor não estiver conectado, informe o usuário e pare. Não extraia conteúdo por conta própria e recorra a generate_video com um script escrito manualmente — isso perde os visuais dos slides e ultrapassa o limite de 2000 caracteres do prompt. O fluxo baseado em plano é obrigatório para documentos.
Fluxo de trabalho
Etapa 1 — Enviar o documento para a Ozor
Escolha a melhor fonte, em ordem de prioridade:
- URL pública → passe
urldiretamente paraanalyze_document. Sem limite de tamanho, sem custo de tokens. Melhor quando disponível. - Arquivo local (o caso comum) → chame
mcp__ozor__prepare_document_upload, depois execute o comando curl retornado para enviar os bytes diretamente para o armazenamento da Ozor. Os bytes nunca passam por uma chamada de ferramenta, portanto, arquivos de até ~50 MB funcionam. Use isso para qualquer PDF/PPTX/DOCX com vários MB que o usuário tenha carregado na conversa. fileBase64+fileNamenoanalyze_document→ apenas para arquivos pequenos (≲ algumas centenas de KB). Evite para apresentações grandes — consome muitos tokens.
Se prepare_document_upload não estiver na lista de ferramentas, os uploads estão desabilitados neste servidor — recorra a uma URL ou base64 pequeno.
Etapa 2 — Analisar o documento
Assim que a Ozor tiver o arquivo, chame:
mcp__ozor__analyze_document({
url | uploadId | fileBase64+fileName,
...dicas opcionais: targetDuration, format (16:9 / 9:16), audience, tone
})
Isso retorna { planId, plan }. O plano contém as cenas propostas, narração, notas visuais e quais slides/páginas mapeiam para quais cenas.
Etapa 3 — Apresentar o plano ao usuário e PARAR
Esta é a etapa crítica. Não pule para a geração. Mostre ao usuário uma renderização concisa do plano:
📋 Plano da Ozor para "<nome do documento>"
**Formato:** 16:9 (ou 9:16)
**Duração estimada:** ~X segundos
**Cenas:** N
(1) <título da cena> — <narração/visual em uma linha>
(2) <título da cena> — <narração/visual em uma linha>
...
Quer que eu gere isso como está, ou mudar algo? Você pode:
- Editar uma cena ("mudar cena 2 para ...")
- Reordenar / remover / adicionar cenas
- Alterar tom, duração ou formato
- Aprovar e gerar
Em seguida, espere o usuário aprovar ou solicitar edições. Não chame generate_from_plan por iniciativa própria — o plano é o ponto de controle do usuário para custo e controle criativo.
Etapa 4 — Aplicar edições (se houver)
Se o usuário solicitar alterações, chame mcp__ozor__update_plan({ planId, ... }) com as edições. Re-busque com get_plan e reexiba o plano atualizado. Repita até o usuário aprovar.
Etapa 5 — Gerar a partir do plano
Quando o usuário aprovar:
mcp__ozor__generate_from_plan({ planId })
Isso retorna { projectId }. Use projectId como videoId em todas as chamadas subsequentes.
Se a resposta incluir um jobId, aguarde com wait_for_job({ videoId: projectId, jobId }). Caso contrário, prossiga para a exportação.
Etapa 6 — Exportar
mcp__ozor__export_video({ videoId: projectId })
mcp__ozor__wait_for_export({ videoId: projectId })
Retorna shareUrl, editorUrl, downloadUrl.
Etapa 7 — Incorporar
mcp__ozor__get_embed_code({ videoId: projectId })
Etapa 8 — Apresentar resultados
🎬 Vídeo pronto a partir de "<nome do documento>"
**Compartilhar:** <shareUrl>
**Editor:** <editorUrl>
**Download:** <downloadUrl>
**Incorporar:**
```html
<iframe ...></iframe>
Quer um corte 9:16 para redes sociais a partir do mesmo plano? Posso regenerar.
## Dicas para passar para `analyze_document`
Passe qualquer uma destas se o usuário as mencionou ou se forem óbvias a partir do documento:
- `targetDuration` — ex.: `"60s"`, `"90s"`. Padrão ~60s para propostas/apresentações, ~30s para one-pagers.
- `format` — `"16:9"` (padrão) ou `"9:16"` para redes sociais.
- `audience` — investidores, clientes, desenvolvedores, equipe interna, ...
- `tone` — confiante, caloroso, técnico, enérgico, ...
- `focus` — opcional, uma nota de uma linha como "foco nas métricas do slide 4" ou "pule o slide da equipe".
## Adaptação por tipo de documento
| Documento | Duração padrão | Formato | Tom | Foco |
|-----------|----------------|---------|-----|------|
| Pitch deck | 60–90s | 16:9 | Confiante | Problema → solução → tração → CTA |
| Proposta (DOCX) | 60s | 16:9 | Profissional | Resultados + preço + próximo passo |
| Whitepaper / relatório | 60–90s | 16:9 | Autoritário | 3 principais descobertas, link para o documento completo no CTA |
| One-pager de vendas | 30–45s | 16:9 | Impactante | Gancho → 3 benefícios → CTA |
| Notas de versão | 30–45s | 16:9 | Enérgico | Uma cena por recurso |
| Treinamento / POP | 90s+ | 16:9 | Calmo, claro | Etapas numeradas, dividir em uma série se > 7 cenas |
Em caso de dúvida, proponha um padrão em sua chamada inicial e deixe o usuário substituir após ver o plano.
## Iteração após a geração
Se o vídeo renderizado precisar de alterações:
- Pequenos ajustes na narração/texto → `update_plan` + regerar (isso reexecuta a partir do plano, sem necessidade de reanalisar o documento)
- Nova ordem de cenas ou tom → mesmo caminho
- Novo foco ou público → pode ser mais barato chamar `analyze_document` novamente com dicas mais fortes
## Erros e recuperação
- **`analyze_document` falha porque o arquivo é muito grande** → use `prepare_document_upload` em vez de base64.
- **O plano tem conteúdo ausente ou errado** → chame `update_plan` com correções em vez de reiniciar.
- **`generate_from_plan` falha** → o erro geralmente aponta para uma cena específica. Corrija via `update_plan`, tente novamente.
- **Exportação trava** → é seguro chamar `wait_for_export` novamente; ela retoma.
## Regras
1. **Sempre vá primeiro pelo plano.** Nunca chame `generate_video` com texto escrito manualmente extraído do documento. O objetivo desta skill é que a Ozor veja os slides diretamente.
2. **Sempre mostre o plano ao usuário e aguarde aprovação** antes de `generate_from_plan`. A geração é a etapa cara; o plano é o ponto de controle.
3. **Para arquivos locais, use `prepare_document_upload` + curl.** Base64 é apenas para arquivos muito pequenos.
4. **Use `projectId` como `videoId` em todos os lugares após `generate_from_plan`.** É o mesmo identificador.
5. **Exiba cada URL** — compartilhar, editor, download, incorporar.
6. **Não resuma o documento você mesmo** — o `analyze_document` da Ozor faz isso e preserva os visuais. Seu trabalho é orquestrar o MCP e organizar o plano, não reescrever o conteúdo.