Communitygithub.com

vertical-reels-video-studio

Receita básica e reutilizável para um vídeo explicativo vertical (9:16) com narração, para Instagram Reels, Threads, TikTok ou YouTube Shorts, construído com Remotion e narração opcional via ElevenLabs. Abrange pesquisa, rascunho de roteiro aprovado pelo usuário, narração, cenas de texto cinético, exportação compatível com Reels, QA, legendas e opções de capa. Use quando o usuário solicitar um vídeo curto vertical, Reel ou Short sobre um tópico.

O que é vertical-reels-video-studio?

O **Vertical Reels Video Studio (basic)** é uma skill projetada para criar vídeos curtos verticais (9:16) de 30 a 90 segundos, ideais para plataformas como Instagram Reels, Threads, TikTok e YouTube Shorts. Ela oferece um pipeline completo, desde a coleta das configurações do usuário (handles, marca d'água, CTA, voz e idioma) até a entrega final, incluindo renderização com Remotion, narração opcional via ElevenLabs e exportação otimizada para Reels. A skill é útil para criadores de conteúdo que desejam produzir vídeos explicativos de alta qualidade sem precisar configurar tudo manualmente. Ela suporta personalização de marca, texto cinético animado, legendas multiformato e um rigoroso processo de QA. O fluxo é interativo: após o usuário aprovar o rascunho do roteiro, a skill gera a narração, ajusta o timing, constrói cenas no Remotion, renderiza o vídeo e exporta no formato correto para as plataformas sociais. A skill exige que o usuário forneça suas próprias configurações antes do primeiro uso, armazenadas em um arquivo `brand.config.json`, e nunca utiliza valores padrão para dados pessoais.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ahmadaryanto/vertical-reels-video-studio/tree/HEAD/skills/vertical-reels-video-studio

Perguntar na sua IA favorita

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

Documentação

Vertical Reels Video Studio (básico)

Um pipeline simples e passo a passo para um vídeo vertical de 30 a 90 segundos.

0. Primeira execução: peça ao usuário SUAS configurações (nunca use valores padrão)

Antes do primeiro vídeo, se brand.config.json estiver ausente, tiver "configured": false ou ainda contiver @yourhandle, pergunte ao usuário (uma pergunta de cada vez) e salve as respostas em brand.config.json:

  1. Redes sociais: Instagram, Threads, TikTok, X (quais ele usa).
  2. Texto da marca d'água (exatamente como deve aparecer, ex. @yourhandle ou @ig / @x) e posição (bottom-center, bottom-left, top-left, top-right).
  3. Texto do CTA e o handle que ele menciona.
  4. Voz: o ID da voz ElevenLabs do usuário + modelo + idioma, ou "Vou gravar minha própria voz". A chave da API é solicitada apenas como o segredo ELEVENLABS_API_KEY.
  5. Idioma e tom; como a voz deve pronunciar o nome/handle do usuário.

Em seguida, defina "configured": true. Nunca invente um handle, nunca reutilize o de outra pessoa (incluindo o autor deste kit) e nunca renderize uma marca d'água que ainda diga @yourhandle.

Os placeholders abaixo mapeiam para brand.config.json:

PlaceholderChave de configuraçãoSignificado
{{HANDLE}}handles.*O(s) próprio(s) handle(s) do usuário
{{WATERMARK}}watermark.text, watermark.positionTexto e posição da marca d'água, conforme fornecidos pelo usuário
{{LANGUAGE}}language, toneIdioma e tom da narração e legendas
{{VOICE_ID}}voice.voiceIdA voz escolhida pelo usuário
{{TTS_MODEL}}voice.modelModelo ElevenLabs, ex. eleven_multilingual_v2
{{CTA}}cta.text, cta.handleA chamada para ação do usuário

A chave da API sempre vem da variável de ambiente ELEVENLABS_API_KEY. Nunca a imprima, nunca a escreva em um arquivo que seja commitado.

O fluxo

  1. Pergunte as configurações do usuário (primeira execução) → 1. Tópico → 2. Pesquisa e verificação de fatos → 3. Rascunho do roteiro → 4. Aprovação do usuário →
  2. Narração → 6. Timing → 7. Construir cenas → 8. Renderizar → 9. Exportação compatível com Reels →
  3. QA → 11. Capas e legendas → 12. Entregar. Se o usuário solicitar uma alteração, volte para a etapa mais antiga que a alteração afeta (uma nova linha de texto significa uma nova narração apenas para essa linha).

1–2. Tópico e pesquisa

  • Uma história por vídeo. Escreva para iniciantes.
  • Verifique cada número, data, nome e citação com uma fonte primária (página oficial, postagem do próprio autor, captura de tela datada). Descarte qualquer coisa que não puder verificar. Nunca invente fatos.
  • Mantenha um breve sources.md com os links que você usou.

3–4. Rascunho e aguarde

  • Ofereça 2–4 opções de gancho para os primeiros 2 segundos (uma pergunta ou um contraste surpreendente).
  • Escreva uma tabela cronometrada: tempo | texto na tela | narração. Aponte para 45–65 s, nunca mais de 90 s.
  • Pare e envie o rascunho ao usuário. Não gere áudio nem renderize até que ele o aprove.

5. Narração

  • Gere o roteiro aprovado com {{VOICE_ID}} (veja scripts/tts.py). Mantenha dois textos: o texto de exibição (o que as legendas mostram) e o texto TTS (soletrado para a voz, ex. A.I. para "IA", números escritos por extenso).
  • Ouça. Regere apenas as linhas que estiverem erradas. Nunca deixe a mesma linha duas vezes no áudio.
  • Se você não tiver uma conta ElevenLabs, grave sua própria voz. Funciona igualmente bem.

6. Timing

  • Obtenha timestamps de palavras (alinhamento ElevenLabs, ou Whisper no áudio) e salve timing.json: {duration, words:[{w,s,e}], scenes:[{id,start}]}.
  • As animações começam no quadro em que sua palavra é falada: frame = Math.round(seconds * 30).

7. Construir cenas (Remotion, 1080 × 1920, 30 fps)

  • Fundo escuro, uma cor de texto clara, uma cor de destaque. Um título grande por batida.
  • Texto cinético: cada palavra do título aparece no momento em que é falada (escala 0,6 → 1 com um pequeno overshoot).
  • Uma coisa nova na tela a cada 1,5–3 s. Mantenha números por pelo menos 1,5 s para que as pessoas possam lê-los.
  • O texto do gancho fica visível desde o quadro 0, para que o primeiro quadro funcione como uma imagem estática.
  • Zona segura: mantenha o texto entre y = 200 e y = 1500. Coloque o texto {{WATERMARK}} pequeno na posição escolhida pelo usuário (padrão inferior: y ≈ 1430).
  • Use capturas de tela reais e logotipos com crédito. Rotule mock-ups como "ilustração".

8–9. Renderizar e exportar

npx remotion render src/index.ts <CompositionId> out/raw.mp4
bash scripts/reels-export.sh out/raw.mp4 out/final-reels.mp4

A exportação produz: 1080 × 1920, H.264 High ≤ 4.1, yuv420p (faixa TV), BT.709, 30 fps constante, 8–12 Mbps, AAC 48 kHz, +faststart, −14 LUFS / ≤ −1 dBTP. Mantenha o vídeo abaixo de 90 s.

10. QA (sempre, antes de entregar)

Execute bash scripts/qa-check.sh out/final-reels.mp4 e veja a saída de scripts/contact-sheet.sh. Verifique:

  • Áudio: palavras estão claras, nada cortado, nenhuma linha repetida, volume ≈ −14 LUFS.
  • Vídeo: nenhum texto cortado, nada fora da zona segura, nenhum clipe congelado, nenhum primeiro ou último segundo vazio.

Corrija e renderize novamente antes de enviar qualquer coisa.

11–12. Capas, legendas, entrega

  • 2–4 opções de capa, 1080 × 1920 mais uma versão de grade 1080 × 1350. Um grande gancho, uma imagem principal, no máximo 2–3 pequenos cartões numéricos. Mantenha o texto principal dentro do centro 1080 × 1080.
  • Legendas: Instagram (gancho, corpo, {{CTA}}, algumas hashtags), Threads (mais curtas, sem hashtags), TikTok.
  • Entregue o MP4 final, uma prévia pequena (< 40 MB), capas, legendas, um .srt e a lista de fontes.

Regras

  • Nunca publique, carregue ou compre nada. Entregue os arquivos ao usuário.
  • Sem fatos inventados. Dê crédito a cada fonte e a cada autor de código aberto que você mostrar.
  • Use apenas músicas, clipes e vozes que você tem o direito de usar.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Habilidades Relacionadas