/storytelling
┌──────────────────────┐
│ [4:12] [capa] [comentários] │ três cartões, todos de uma vez
│ Eu fiz este carrossel │ título em caixa preta, 1-2 linhas
│ em alguns minutos │
│ e está indo muito bem │ pequeno subtítulo branco
│ (rosto) │ um take contínuo, ligeiramente aproximado
│ carrossel inteiro │ legendas estilo TikTok
└──────────────────────┘
Primeiro uso
A pasta desta skill é o "Diretório base" que o Claude Code mostra ao carregá-la.
SKILL_DIR="<diretório base desta skill>" # o caminho que o Claude Code imprimiu como "Diretório base para esta skill"
KIT=$(python3 -c 'import os,sys;print(os.path.realpath(os.path.join(sys.argv[1],"..","..","kit")))' "$SKILL_DIR")
PY="$KIT/.venv/bin/python"; [ -x "$PY" ] || bash "$KIT/setup.sh"
Clipes em Bangla. Se o falante falar em Bangla, certifique-se de que REEL_LANGUAGE=bn esteja definido antes da primeira chamada words (exporte a variável ou prefixe o comando) para que o Whisper transcreva em Bangla em vez de traduzir. Escreva também todo o texto na tela (títulos, rótulos, itens) em Bangla e ancore os tempos exatamente nas palavras em Bangla como o words as imprime. O Bangla ocupa mais espaço que o Inglês no mesmo tamanho, então mantenha os títulos com 2 a 4 palavras e verifique a folha de contato para ver se não há estouro. O Whisper frequentemente escreve palavras em Bangla erradas (ex.: "ধাকার মেওর" em vez de "ঢাকার মেয়র"): antes de escrever a especificação, leia as palavras do trecho escolhido e corrija as grafias erradas diretamente em <clip>.transcript.json (altere apenas word, mantenha start/end), depois execute words novamente para que as legendas e âncoras usem as palavras corrigidas. Se um trecho longo de fala estiver faltando em words, exclua a transcrição e execute words novamente; o transcritor verifica novamente os trechos ignorados. Se o clipe não for 9:16 (um vídeo quadrado de 1080x1080, por exemplo), verifique o primeiro quadro: um corte direto pode fazer o rosto preencher a tela e cobrir os visuais, portanto avise o usuário e sugira uma gravação em 9:16.
GROQ_API_KEY deve estar definida para transcrever. Requer ffmpeg e Node.
Etapas
- Clipe. Qualquer cabeça falante 9:16.
- Palavras. Execute
"$PY" "$KIT/reel.py" words <video>. Ele imprime uma frase por linha com[ends …](quando a última palavra termina), então use isso comoend. Escolha UM trecho contínuo de 4 a 8 segundos que conte uma pequena história ou mostre uma prova. Não costure pedaços, pois os cortes abruptos ficam estranhos aqui. - Especificação. Escreva
<clip>.storytelling.json(abaixo). Caminhos em uma especificação são relativos ao arquivo de especificação. Os três cartões são a história em imagens: o esforço, a coisa e o resultado. - Construir. Execute
"$PY" "$SKILL_DIR/build.py" <spec.json>. - Verificar. Veja
<out>.sheet.jpg:- Os cartões e o título não ultrapassam os 220 px superiores.
- As legendas não cobrem a boca (mova
caption_top, 1385 por padrão). - O título cabe em suas linhas.
- Entregue o caminho do mp4.
Especificação
{
"video": "meu-clipe.mp4", "start": 42.3, "end": 47.8,
"zoom": 1.3,
"cards": [
{"type": "stat", "label": "TEMPO GASTO", "value": "4:12", "unit": "minutos"},
{"type": "cover", "image": "minha-foto.jpg", "text": "as melhores *ferramentas de ia*\npara usar quando\nvocê é *jovem e duro*"},
{"type": "comments", "title": "Comentários", "rows": [["sarah.creates", "CARROSSEL"], ["mike.builds", "CARROSSEL!!"]]}
],
"title": ["Eu fiz este carrossel", "em alguns minutos"],
"subtitle": "e está indo extremamente bem"
}
cards aceita exatamente 3, cada um sendo:
image:{"src": "foto.jpg"}, uma foto quadrada.cover: uma capa de carrossel,imagemaistext(*palavra*fica amarela,\nquebra a linha). Ela se move lentamente.stat:label,value,unite um anel.- O
valueconta para cima quando é um número ("250","10.000") ou um tempo ("4:12"). ring(0 a 1) é o quanto o anel fica preenchido.
- O
comments: até 4 linhas de[nome, texto].text:{"big": "3×", "small": "mais salvos"}.
Os outros campos:
title: 1 ou 2 linhas, cada uma com no máximo cerca de 22 caracteres.subtitle: uma linha curta.zoom: o quanto o take é aproximado. 1.3 por padrão, 1 para nenhum.
Estilo
- Tudo aparece ao mesmo tempo, no primeiro terço de segundo. Nunca um de cada vez.
- O título é a história em uma respiração. O subtítulo é a recompensa.
- Os cartões mostram coisas reais: a própria postagem do usuário, números, capturas de tela. As linhas de comentários e nomes de usuários devem ser reais, fornecidos pelo usuário. Se ele não tiver nenhum, use um cartão do tipo
textoustatem vez de inventar pessoas.