Communitygithub.com

visalnaqvi/video-generator-skill

Finaliza um vídeo neste estúdio — seleciona ou gera música para o clima do storyboard, coloca todos os efeitos sonoros nos seus frames, adiciona legendas palavra por palavra com a marca, mixa para loudness social (-14 LUFS), renderiza o MP4 de alta qualidade e a imagem de capa, e executa uma verificação de qualidade automática. Ferramentas gratuitas por padrão; música paga somente quando o usuário solicita ou aprova.

O que é video-generator-skill?

Este skill automatiza a etapa final de produção de vídeo em um estúdio de criação de conteúdo, especificamente a fase de renderização que ocorre após a aprovação do storyboard e da narração. Ele não modifica visuais ou palavras, focando exclusivamente na montagem da trilha sonora, legendas e exportação final. O skill suporta plataformas como Claude Code, Cursor, Codex e similares, e é executado em um pipeline de 5 estágios (escrever → storyboard → narração → renderizar). Sua principal utilidade é economizar tempo e garantir consistência técnica, como loudness social (-14 LUFS), codecs corretos e legendas sincronizadas com a fala. Por padrão, utiliza recursos gratuitos (biblioteca de músicas e efeitos sonoros), solicitando aprovação do usuário antes de usar músicas pagas geradas por IA. O skill executa seis etapas: seleção/generação de música baseada no clima do storyboard, mapeamento de efeitos sonoros nos frames, mixagem de áudio com sidechain e normalização, criação de legendas palavra por palavra com destaque da marca, renderização final do vídeo e imagem de capa, e verificação de qualidade automática. O usuário pode solicitar ajustes antes da aprovação final, que define o status como "final" no storyboard.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/visalnaqvi/video-generator-skill/tree/HEAD/.claude/skills/render

Perguntar na sua IA favorita

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

Documentação

Render — música, som, legendas, exportação final

Entrada: videos/<video>/ com um storyboard.json aprovado (ajustado à narração: possui audio e timing) e um audio/voice-script.json aprovado. Saída:

audio/music.wav        música escolhida ou gerada
audio/mix.wav          trilha sonora final (voz + música com ducking + SFX), -14 LUFS
audio/mix.json         cada evento sonoro (cena, cue, arquivo, tempo) para verificação
render/final.mp4       1080x1920 (por formato), 30 fps, H.264 + AAC
render/cover.png       capa / thumbnail em resolução total
render/qc.json         relatório de verificação de qualidade

Esta etapa não altera visuais ou palavras. Animação ou temporização errada → skills de storyboard / narração. Grátis por padrão: música de biblioteca ou gerada por código, efeitos sonoros gerados por código. Música paga (geração por IA) somente se o usuário solicitar ou aprovar um orçamento.

Passo 1 — Música

  1. Leia o music.mood / notes do storyboard e a duração do vídeo.
  2. Procure em studio/library/music/ (index.json lista faixas com tags de clima, bpm, licença). Escolha a melhor correspondência; se nenhuma servir, informe.
  3. Sem correspondência → gere o fallback gratuito, com o "drop" no início da cena de revelação (tempo de início da cena — calcule a partir de durações/transições): node studio/scripts/make-music.mjs --out videos/<video>/audio/music.wav --duration <s> --mood upbeat|calm|cinematic|tense --bpm <n> --drop <s> [--silence <de>-<até>] (tense: tom menor, pulsação de batimento cardíaco, final não resolvido; --silence silencia uma janela antes de um som de revelação — no clima tenso, um relógio o segue). Vídeo do universo: siga universe.json → music / sfx. Faixas da biblioteca: copie/converta para audio/music.wav; cortes, fades e ducking ocorrem na mixagem.
  4. Registre em storyboard.json → music.file, music.source (faixa + licença, ou "code-generated"), opcional music.db (padrão -16 dB antes do ducking).

Passo 2 — Efeitos sonoros

As cues já estão em cada cena no sfx (palavras simples, ancoradas a frames ou palavras faladas pela etapa de narração). O mixer mapeia palavras → sons via studio/library/sfx/index.json (gerado por node studio/scripts/make-sfx.mjs; sons personalizados vão em custom, verificados primeiro). repeat + every tocam uma cue várias vezes; syncEnd: true a coloca no final da cena; risers terminam em sua cue. Whooshes de transição são opcionais (--auto-whoosh) — o usuário prefere som contido: apenas momentos marcantes (≈ no máximo 1 cue a cada 2 s, nenhum na maioria das transições). Se um storyboard tiver muito mais cues do que isso, reduza-as aos momentos chave antes de mixar e informe. Corrija quaisquer linhas "Nenhum som correspondido" do mixer adicionando palavras-chave ou um som personalizado — nunca alterando o design do storyboard.

Passo 3 — Mixagem

node studio/scripts/mix.mjs videos/<video> (--dry para visualizar primeiro a contagem de eventos)

A voz fica no topo; a música sofre ducking pela voz (sidechain) e fade no final; SFX em -12 dB (--sfx-db, ou storyboard.sfxDb); master limitado e normalizado para -14 LUFS / -1,5 dBTP. Define storyboard.finalAudio. Reexecute após qualquer alteração de áudio.

Passo 4 — Legendas

Ativadas por padrão para formatos sociais. Em storyboard.json: "captions": { "enabled": true, "y": 83, "size": 50, "skipLines": ["L11"] }

  • Frases (≤ 4 palavras, equilibradas, divididas em pausas) vêm das marcações de narração; a palavra falada é destacada na cor de destaque da marca.
  • skipLines: linhas de narração cujas palavras já estão na tela (números de telefone, URLs).
  • Por cena: captionY (% do frame) para movê-las, captions: false para ocultá-las onde as mesmas palavras estão na tela (ex.: um terço inferior com nome).
  • Mantenha-as dentro da zona segura (padrão 83%) e longe de elementos importantes do design.

Verifique com uma folha de contato (legendas aparecem nos frames onde alguém fala): node studio/scripts/render.mjs videos/<video>/storyboard.json --sheet --scale 0.25 --out <scratchpad>/captions-sheet.png Examine uma vez; corrija colisões com captionY / captions: false.

Passo 5 — Renderização final, capa, QC

node studio/scripts/render.mjs videos/<video>/storyboard.json --final
node studio/scripts/render.mjs videos/<video>/storyboard.json --cover
node studio/scripts/qc.mjs videos/<video>

O QC deve passar: resolução, taxa de quadros, codecs, duração = storyboard, loudness -14 ±1,5 LUFS. Avisos (pico verdadeiro, silêncios, frames pretos) → explique ou corrija. Não assista ao MP4; envie render/final.mp4 (e a capa) para o usuário com o resumo do QC e o que está na mixagem (fonte da música, número de eventos sonoros, legendas ativadas/desativadas).

Passo 6 — Aprovação

Usuário satisfeito → "status": "final" em storyboard.json → render, concluído. Alterações: ajustes de música/som/legendas → Passos 1–5 aqui; alterações visuais ou de temporização → skill de storyboard / narração, depois reexecute esta etapa.

Individual skills in this repo

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

Habilidades Relacionadas