Channel Video
Este método não traz identidade de canal, credenciais, modelos ou pessoas predefinidas. Leia o AGENTS.md do projeto. No projeto instalado, os helpers estão em .agent/skills/channel-video/scripts/.
Onboarding obrigatório
Se contexto/perfil ainda não estiverem aprovados, leia references/onboarding.md e conduza a conversa antes de gerar mídia paga. Crie o contexto do canal a partir das respostas, proponha preferências configuráveis e peça aprovação. Não inferir aprovação a partir de campos preenchidos. O proprietário precisa de suas próprias contas HeyGen e ElevenLabs, sua voz ElevenLabs e seu avatar HeyGen, com acesso de API e créditos.
Nenhum ID ou segredo deve ser copiado de outro canal, ambiente global ou conversa. O .env deve ser o do workspace atual; não há busca automática de credenciais fora dele.
Fluxo
- Leia
channel_context.mdechannel_profile.json. Identifique pedido avulso, dossiê, texto publicado ou roteiro pronto. Reutilize tema existente ou crievideos/<tema>/. - Para roteiro novo, leia
references/editorial.md. Pesquisa aprofundada para pedido raso; pesquisa de lacunas para dossiê denso. O tema não precisa ser viagem, hotel, founder ou negócio. Ajuste a narrativa e a duração ao material, sem repetir fatos para bater um tempo fixo. - Salve roteiro, fontes, legenda do post e falas. Se já houver roteiro aprovado, preserve-o. Inicialize
job.jsoncomscripts/init_job.py; confira dependências/configuração comdoctor.py. - Confira o
model_idreal, idioma, limites e suporte a tags na documentação/conta do proprietário. Mantenha tags compatíveis se ele quiser; não pronunciar tags em um modelo incompatível. A API não deve receber um nome de modelo comercial inventado como ID. Faça dry-run e explique caracteres/configuração/custo estimado sem imprimir credenciais. - Peça autorização para o teste curto pago e gere com
elevenlabs_audio.py --smoke-test --allow-paid. Mostre o áudio real, sem alegar ter ouvido o que não ouviu. Aprovação do teste não aprova automaticamente a fala completa. - Após autorização, gere a fala inteira e peça aprovação explícita do arquivo. Registre SHA-256 com
approve_audio.py. Não usar gravação de celular como áudio de produção sem pedido do proprietário. - Após autorização do lip-sync, execute
heygen_video.py --allow-paidcom o mesmo MP3 aprovado. HeyGen recebeaudio_asset_id; não sintetiza o roteiro novamente. Valide transparência, identidade, gestos e recorte do busto. - Transcreva a fala aprovada com
transcribe.py --allow-paid. Os timestamps reais determinam B-roll, overlays e legendas. Verifique nomes, números e idioma; áudio novo exige novo lip-sync. - Leia
references/media.md. Pesquise mídia coerente por trecho, registre proveniência e intervalo exato emasset_manifest.json, e gere página de revisão comcontact_sheet.py. Não baixar arquivos finais antes das decisões. Importe o JSON exportado comimport_approvals.py, conferindo o hash do manifesto; decisão ausente continua pendente. - Baixe fontes diretas aprovadas com
download_media.pyou ferramentas autorizadas do ambiente. URLs de página não são URLs de vídeo. Não contornar DRM, acesso privado ou termos de uso. Registre créditos, alterações e permissões separadamente. - Leia
references/render-plan.mdeoperations.md. Monte um plano com mídia aprovada, intervalos medidos, avatar e legendas.render.pyusa FFmpeg e tipografia rasterizada, sem exigir outro editor. Overlays oficiais ou retratos recortados são opcionais e dependem do estilo do canal. Não redesenhar logos nem fabricar fotos documentais. - Leia
references/qa.md, executeqa.pye faça inspeção visual real. Checagem técnica não certifica estética, pronúncia, estabilidade ou direitos. Entregue preview para aprovação. Consolide o MP4 vigente emvideo final/comsave_final.py, sem reencodar e preservando histórico.
Retomada e segurança
- Leia estados/artefatos antes de executar. Não gerar de novo o que existe e tem hash válido.
- Segredos somente do
.envexplicitamente indicado. Nunca em payloads persistidos, logs, HTML, manifestos ou pacote compartilhável. - Nenhum retry pago automático. Resultado incerto exige inspeção e autorização nova; IDs externos registrados devem ser usados para retomar polling.
- Não transferir um avatar/voz para outro canal por conveniência. Criação/clonagem exige escopo e direitos próprios, não faz parte do onboarding automático.
- Não alterar o contexto aprovado, trocar o modelo ou cortar roteiro silenciosamente. Pedir decisão quando isso mudar materialmente a produção.
- Capa e legenda podem ser produzidas como artefatos separados quando pedidas; conectar redes sociais, publicar ou agendar exige integração/autorização própria.
Os scripts não substituem pesquisa, direção e validação humana. Os defaults de layout são ajustáveis; as invariantes de áudio aprovado, custeio, proveniência e proteção de segredos não são preferências estéticas.