Communitygithub.com

uday629/talking-head-short

Editor mestre para vídeos verticais de cabeça falante (Reels, TikTok, Shorts). A partir de um único clipe bruto, transcreve, remove takes ruins e silêncios, detecta o nicho (matriz de 24 gêneros), pergunta ao usuário as opções de estilo e renderiza uma edição profissional e suave com legendas cinéticas em proporção áurea, gráficos em movimento com significado, B-roll licenciado, música, SFX e fontes, correção de cor e QA.

O que é talking-head-short?

Este skill transforma um único clipe bruto de cabeça falante (como vídeos para Reels, TikTok, Shorts) em uma edição vertical profissional e pronta para viralizar. Ele transcreve automaticamente o áudio, remove takes ruins, pausas e hesitações, e detecta o nicho do conteúdo entre 24 gêneros possíveis. Em seguida, consulta o usuário sobre opções de estilo (paleta, fontes, densidade visual, música, B-roll) antes de gerar uma renderização suave com legendas cinéticas em proporção áurea, gráficos em movimento alinhados ao significado do texto, B-roll licenciado da Mixkit, música e efeitos sonoros, correção de cor e um processo de QA completo. O skill gerencia fallbacks automáticos para modelos de transcrição (HuggingFace → GitHub), música/SFX (Mixkit → pacote CC0 no GitHub), fontes (Google Fonts → jsDelivr → GitHub OFL) e B-roll (caso bloqueado, usa cartões ou solicita upload do usuário). É ideal para coaches, criadores de UGC, founders, podcasters e qualquer pessoa que queira editar um clipe de cabeça falante com qualidade profissional, mesmo sem conhecimento técnico em edição de vídeo.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/uday629/talking-head-short-skill/tree/HEAD/talking-head-short

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Talking-Head Short — editor mestre

Escreva respostas concisas. Não repita transcrições ou logs longos. Corrija coisas editando spec.json com a ferramenta Edit, nunca reescrevendo-o. Cada script imprime um relatório compacto; leia, aja, siga em frente.

S=<este diretório do skill>/scripts, WD=<diretório de trabalho ao lado do arquivo bruto>/ths_<nome>.

0. Configuração (uma vez por máquina/sandbox)

bash $S/setup.sh → use o PY= impresso. Ele instala tudo do PyPI, incluindo um ffmpeg estático se nenhum existir. Cada download tem um fallback automático. Sandboxes (execução de código do claude.ai, gratuito ou pago) geralmente bloqueiam HuggingFace, Mixkit e a API do Google Fonts, mas permitem GitHub:

  • modelo de transcrição: HuggingFace → mirror no GitHub (whisper-base, depois whisper-tiny)
  • música/SFX: Mixkit → pacote CC0 no GitHub (ids parecem com pack:lofi_chill)
  • fontes: repositório do Google Fonts → jsDelivr → pacote OFL no GitHub (32 famílias) → fonte do sistema
  • B-roll: Mixkit → nenhum (use cartões, ou peça ao usuário para enviar clipes) Se a configuração imprimir "sem rede" / pip falhar: a sandbox está com a saída de rede DESLIGADA. Informe o usuário exatamente (uma mensagem): "claude.ai → Configurações → Capacidades → Execução de código → Acesso à rede: Todos os domínios (ou adicione: pypi.org, files.pythonhosted.org, github.com, objects.githubusercontent.com, release-assets.githubusercontent.com, api.github.com, raw.githubusercontent.com, cdn.jsdelivr.net, huggingface.co, mixkit.co, assets.mixkit.co), depois inicie um novo chat e execute /talking-head-short novamente." Não tente a edição sem numpy/ffmpeg. Apenas se todas as fontes falharem: peça uma transcrição colada → $PY $S/align_text.py $WD transcript.txt. Os ativos são armazenados em cache em ~/.ths_assets.

1. Analisar

$PY $S/analyze.py RAW $WD Ele imprime a resolução, ponto do olho, duração limpa, preenchimentos/gaguejos/reinícios removidos automaticamente, CHECK (preenchimentos suaves, palavras de baixa confiança, pausas longas) e TEXT com timestamps a cada 8 palavras.

  • Julgue os takes ruins você mesmo. Remova falsos começos, frases incompletas, "sabe tipo é", "meio que". Mantenha repetições retóricas. Reexecute com --remove '[[s,e],...]' (segundos da fonte). A transcrição é armazenada em cache.
  • Olhe $WD/frames.jpg apenas se o ponto do olho ou o enquadramento estiver em dúvida.

2. Briefing (na sua cabeça, depois 4 linhas para o usuário)

Escreva: tópico · mensagem central · arco emocional (gancho → … → recompensa) · linha do nicho (de NICHES) · tom (calmo/equilibrado/energético) · enquadramento bruto (aberto ou fechado). Depois execute $PY $S/style.py RAW "<nicho>" --out $WD/style.json. Ele fornece a paleta adaptada com razões, fontes, direção de MG/B-roll/música/SFX e notas importantes. Leia references/craft.md uma vez (as regras) e references/spec.md (o formato do spec).

3. Perguntar antes de construir (nunca renderizar primeiro)

Use AskUserQuestion se disponível; caso contrário, uma mensagem numerada compacta. Recomende a opção 1 a cada vez.

  1. Estilo: nicho detectado + tom (ex.: "Autoajuda · calmo-reflexivo") vs 1–2 alternativas.
  2. Fontes: o par da linha vs 2 alternativas com um contraste de estilo claro (sans líder + serifa/itálico chave, ou sans negrito chave + serifa itálico acento).
  3. Paleta: paleta da linha adaptada ao material vs paleta derivada do material vs uma cor de marca que o usuário fornecer.
  4. Densidade visual: Mínimo (legendas + 2–3 cartões) · Equilibrado (legendas + 4–6 cartões / B-roll) · Rico (mais MG + B-roll).
  5. Música: 3 candidatos licenciados de $PY $S/assets.py music "<humor>" (id · título · tags), ou nenhum.
  6. B-roll: sim (imagens licenciadas combinando com falas literais) / não. Pule qualquer pergunta que o usuário já respondeu. Aguarde as respostas.

4. Coletar ativos

  • Fontes: $PY $S/assets.py font "Família" ...
  • Música, SFX, vídeo: execute assets.py music|sfx|video "<consulta>" para listar, depois assets.py get <tipo> <id> $WD.
    • SFX por tom: calmo → "air woosh", "chime"; equilibrado → "whoosh", "pop"; energético → "swoosh", "impact" (usado uma vez).
  • Fontes bloqueadas fazem fallback automaticamente (ids de pacote). assets.py pack lista todo o pacote CC0 offline.

5. Escrever spec.json, planejar, styleframes

  1. Escreva $WD/spec.json (veja references/spec.md): legendas na ordem falada, cartões nas cláusulas certas, áudio.
  2. $PY $S/engine.py $WD --plan → corrija cada ISSUE editando o spec (encurte ou mescle beats, mova ou remova legendas sob cartões), depois replaneje até que não haja mais ISSUES ou apenas aceitáveis.
  3. $PY $S/engine.py $WD --frames t1,... com 10–15 momentos: o ponto médio de cada cartão e final−0.3 s, e cada legenda no seu final−0.1 s. Olhe $WD/styleframes.jpg e corrija qualquer coisa cortada, amontoada, desalinhada ou fora da paleta.
  4. Mostre ao usuário os styleframes com uma linha ("pode renderizar?"). Itere apenas no que ele apontar.

6. Renderizar, mixar, QA

  • bash $S/render.sh $PY $WD renderiza partes em paralelo e as concatena (≈5 min por minuto de vídeo em um laptop). Em uma sandbox com limite de tempo por comando, execute $PY $S/engine.py $WD --render --part i/N uma vez por parte, depois --concat N.
  • $PY $S/mix.py $WD → final.mp4 (limpeza de voz, música com ducking alinhada ao payoff, SFX, -14 LUFS).
  • $PY $S/qa.py $WD → olhe qa_endframes.jpg. Cada final de beat e cartão deve mostrar texto e animação completos. Quadros flash devem ser nenhum.
  • Entregue o caminho do arquivo, mais 3 linhas sobre o que você escolheu e por quê. Mencione quaisquer ativos que não pôde baixar.

Inegociáveis (porquê: cada um foi apontado como amador)

  • Legendas nunca são cortadas. A lead tem largura ≤ key e fica próxima. Dois estilos de fonte contrastantes em proporção áurea. Nunca legendar palavras de preenchimento sozinhas.
  • Gráficos em movimento mostram o significado, terminam antes da mudança de cena e permanecem em um sistema visual. Sem bonecos palito ou clip art.
  • Suave: um zoom com easing travado no olho entre cortes; sem quadros flash; transições variadas.
  • Apenas correção de cor. Apenas ativos licenciados (Mixkit / Google Fonts OFL), com LICENSES.txt mantido em $WD.

Habilidades Relacionadas