📄 Documento de Execução — Card 14c: [M1.5] Vídeo-Correção
🎯 1. O que foi implementado
Botão "Gravar Vídeo-Correção" no editor do professor (Card 14b)
- Botão vermelho ao lado do canvas de correção visual
- Abre modal com instruções: "Grave vídeo de 2min → suba no YouTube unlisted → cole o link"
- Validação de URL YouTube: aceita
youtube.com/watch?v=, youtu.be/, youtube.com/embed/
- Rejeita URLs não-YouTube com mensagem clara
- Preview do iframe antes de salvar (extrai video ID da URL)
Player na visão do aluno
- Aparece na página
/aluno/galeria/correcao/[postId] abaixo da imagem corrigida
<iframe> incorporado do YouTube (mesmo padrão das aulas do Card 5)
- Só aparece quando
correctionVideoUrl está preenchido (vídeo é opcional)
Procedure professor.challenges.addVideoCorrection
- Valida que a URL é do YouTube (regex)
- Salva
correctionVideoUrl no GalleryPost
- YouTube unlisted exclusivo (decisão #8 — custo zero, não usa S3)
✅ Critérios de aceite
| # |
Critério |
Status |
| 1 |
Botão 'Gravar Vídeo-Correção' no editor |
✅ |
| 2 |
Modal com instruções + campo URL YouTube |
✅ |
| 3 |
Preview do iframe antes de salvar |
✅ |
| 4 |
Player incorporado na área do aluno |
✅ |
| 5 |
Validação YouTube (rejeita outros) |
✅ |
| 6 |
Build + deploy DEV |
✅ |
📁 2. Arquivos modificados
| Arquivo |
Mudança |
src/server/trpc/routers/professor.ts |
+addVideoCorrection procedure |
src/server/trpc/routers/student.ts |
getCorrection retorna correctionVideoUrl |
src/app/(dashboard)/professor/galeria/[postId]/corrigir/page.tsx |
+botão +modal vídeo-correção |
src/app/(dashboard)/aluno/galeria/correcao/[postId]/page.tsx |
+player iframe YouTube |
🎯 3. Próximo card
Card 17 — Dashboard da Unidade (M4) — volta ao cronograma original. M1.5 COMPLETO! 🎉