Communitygithub.com

one-prompt-video

Transform a single sentence into a short MP4 video with background music and subtitles: explainers, science content, product intros, data reports, knowledge cards, 20 to 90 seconds, landscape or portrait. Define everything in a `video.json` and generate the video with one command; cut in existing footage, export Final Cut Pro or CapCut project for further editing; no video generation models needed, works on Windows, macOS, Linux.

O que é one-prompt-video?

Esta skill converte uma frase, tópico, texto ou dados em um vídeo MP4 curto (20 a 90 segundos) com música de fundo, legendas e design visual profissional. Ela automatiza todo o processo: você descreve o vídeo em um arquivo `video.json`, que define estilo, cenas, roteiro e transições, e executa um comando para gerar o vídeo final. A skill oferece 15 pacotes de estilo (como papercraft, clay, isometric, dashboard, news) e 12 temas integrados para adequar o visual ao conteúdo, além de suporte para cenas personalizadas que desenham objetos, processos ou estruturas reais do tema. É útil para criadores de conteúdo, educadores, profissionais de marketing e qualquer pessoa que precise gerar rapidamente vídeos explicativos, de produto, de dados ou de storytelling sem habilidades de edição de vídeo. Funciona em Windows, macOS e Linux, usando Node.js, FFmpeg e bibliotecas de desenho (Canvas ou similar), mas não gera imagens de IA ou live action; o usuário deve fornecer qualquer metragem real que deseja incluir. Também permite exportar projetos para Final Cut Pro e CapCut (剪映) para edição adicional.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/li2092/one-prompt-video/tree/HEAD

Perguntar na sua IA favorita

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

Documentação

Vídeo em uma Frase

O usuário dá uma frase, você primeiro faz o design: define o estilo, o que ver em cada cena. Depois escreve um video.json. Coisas visíveis do tema você desenha com código de cena. O script cuida do tempo, música, legendas, codificação e verificação automática.

Nos comandos abaixo, troque SKILL pelo caminho absoluto do diretório onde este arquivo está (ex: /home/me/skills/one-prompt-video). Todos os comandos rodam no diretório de trabalho atual do usuário, os caminhos de arquivo são relativos a ele.

Cinco Passos

1. Preparar Ambiente (roda uma vez por diretório de trabalho)

node "SKILL/scripts/setup.mjs"

Ele verifica Node, bibliotecas de desenho, FFmpeg, fontes chinesas. Se faltar algo, instala ou diz como instalar. Só prossiga quando tudo estiver [OK]. Se houver [FALTANDO], informe o usuário exatamente as linhas problemáticas.

2. Design (não pergunte ao usuário, decida você mesmo, no final informe o que decidiu)

Crie uma nova pasta no diretório de trabalho atual (use o nome do vídeo, chamaremos de nome-do-video/). Primeiro escreva o design em nome-do-video/plano.md, com cerca de uma dúzia de linhas. Depois de escrever o plano, escreva o resto. Vídeos com apenas cartões de texto são chatos; este passo decide se o vídeo será bom.

Complete o que o usuário não disse

O que o usuário não dissePadrão
DuraçãoCerca de 30 segundos, 5 a 8 cenas
OrientaçãoPaisagem 16:9; se mencionar celular, retrato, TikTok, Xiaohongshu, WeChat Video, use 9:16
IdiomaMesmo idioma da conversa do usuário
VozNão. Padrão é legenda + música. Esta skill não inclui serviço de narração: quando o usuário quiser voz, primeiro informe que ele precisa preparar a narração (um TTS que funcione na linha de comando ou sua própria gravação), depois siga references/voice.md

Definir Estilo

  1. Se o usuário quer atmosfera, história, cena, personagem, ou disser "não quero explicação", "quero sensação de filme", "como um filme": este vídeo não usará layouts fixos, você desenha tudo. Leia references/film.md e siga-o.
  2. Para os demais, escolha um dos pacotes de estilo da tabela abaixo. Cada pacote vem com cenas, objetos, personagens, transições e efeitos sonoros, muito mais ricos que os temas integrados. Escolha pelo tema: primeiro veja a coluna "Adequado para"; se mais de um se encaixar, escolha o mais próximo visualmente do conteúdo (artesanato, comida, coisas do dia a dia -> papercraft ou clay; equipamentos e processos -> isometric; contas e resultados -> dashboard). Se o usuário nomear um estilo ("como um jogo", "como um chat", "como um telejornal"), use o pacote correspondente.
  3. Temas integrados só são usados em dois casos: o usuário pedir algo simples, contido, corporativo; ou o conteúdo for sério e decoração atrapalhar a leitura. Em vídeos com temas integrados, cenas desenhadas por você devem ocupar metade do vídeo.
  4. Defina algo que percorra todo o vídeo: um objeto real do tema (asa de avião, grão de café, lua, fachada de loja). Ele aparece na primeira cena e reaparece em outras, para o vídeo ter coesão.

Definir Cada Cena

No plano, faça uma tabela, uma linha por cena, pensando nesta ordem:

O que o espectador deve entender nesta cenaO que ver na telaComo fazer (qual layout ou desenhar)Narração

"O que ver na tela" é sobre a imagem: um objeto, um processo, um gráfico, uma estrutura. Pense primeiro na imagem, depois no texto. Siga estas oito regras:

  1. Cubra o texto. Cubra todo o texto da cena. A imagem restante ainda mostra o que está sendo explicado? Só assim a cena funciona. Se falar de asa de avião, a cena deve ter a asa e o fluxo de ar; se falar de assinatura de café, deve ter caixa, pacote de grãos e cartão de preparo.
  2. Desenhe o que é visível. Objetos, processos, estruturas do tema, use layout: "custom" e escreva o código da cena para desenhá-los. Veja references/custom-scenes.md. A cena mais importante do vídeo deve ser desenhada por você; pelo menos duas cenas por vídeo desenhadas por você, um terço ou mais é melhor.
  3. Escolha o layout pela forma da informação, deixe o layout explicar a relação. Comparar tamanhos -> bars; sequência -> steps; confrontar dois lados -> compare; um número real -> number (sequências, horas, IDs não são números reais, não use number). statement no máximo uma cena por vídeo; bullets no máximo uma; quote só para citações reais.
  4. Não escreva rótulos e descrições secundárias. kicker, subtitle, note, label, cta e title de cada cena não escreva por padrão. Só escreva se sem eles o espectador não entender a cena. Relações que o layout já expressa não precisam de texto adicional: gráfico de barras não precisa de título "Comparação dos quatro trimestres"; passos não precisam de "Primeiro passo"; cartão de comparação não precisa de "Comparação".
  5. Imagem e narração dividem o trabalho. Narração (say) diz frases completas, sobre o que está aparecendo na tela; a tela só tem imagens, palavras-chave e números. A mesma frase não deve aparecer grande na tela e também na legenda.
  6. Duas cenas consecutivas diferentes. Não use o mesmo layout em duas cenas seguidas; se a anterior era texto centralizado grande, a próxima deve ser imagem ou gráfico.
  7. Use destaques com moderação. Números grandes e frases de efeito, uma vez cada por vídeo.
  8. Início e fim. Primeira cena: title. Nas duas primeiras cenas, deixe claro o que o vídeo aborda. Última cena: end, com uma conclusão ou chamada para ação; o final é menor e mais curto que o início: uma frase, mais o objeto que percorre o vídeo.

Se você não consegue ver imagens nem escrever código de cena, a regra 2 falha: use pacotes de estilo e layouts normalmente, e informe honestamente ao usuário que o vídeo será baseado em layouts de texto.

3. Escrever video.json e Código das Cenas

Escreva nome-do-video/video.json conforme o plano:

{
  "title": "Uma frase, um vídeo",
  "theme": "papercraft",
  "aspect": "16:9",
  "seconds": 30,
  "scenes": [
    { "layout": "title", "title": "Uma frase, um vídeo", "say": "Diga uma frase e receba um vídeo curto." },
    { "layout": "custom", "module": "scenes/pipeline.mjs", "seconds": 7, "cues": 3, "say": "Você diz uma frase, o modelo faz o design, preenche a tabela, o script transforma em vídeo." },
    { "layout": "bars", "unit": "s", "items": [{ "label": "1ª vez", "value": 68 }, { "label": "2ª vez", "value": 51 }, { "label": "3ª vez", "value": 57 }], "say": "Testei três vezes com modelo pequeno, cada uma em torno de um minuto." },
    { "layout": "custom", "module": "scenes/laptop.mjs", "seconds": 6, "say": "Um notebook comum já é suficiente para criar o vídeo." },
    { "layout": "end", "title": "Experimente agora", "say": "Experimente agora mesmo." }
  ]
}
  • seconds é a duração alvo do vídeo inteiro; o script distribui o tempo por cena. O vídeo final pode ter até 3 segundos de diferença (já que cada cena precisa ser um número inteiro de beats, e há 1 segundo de fade out no final). Se não for especificado, será estimado automaticamente pelo número de palavras.
  • say é a legenda da cena (e também o texto da narração, se houver). Uma frase por cena, no máximo 30 caracteres em chinês (12 palavras em inglês).
  • Para cenas desenhadas por você, o código da cena vai em nome-do-video/scenes/. Após escrever cada cena, visualize um frame estático (--still). Só escreva a próxima se reconhecer o que foi desenhado.
  • O texto na tela é para ser lido de relance, seja breve. Se não couber, divida em duas cenas, não encha uma única cena.
  • Não invente fatos. Números, citações, nomes de pessoas, empresas que o usuário não forneceu não devem ser apresentados como reais; para números de exemplo, indique na narração que são ilustrativos. Recursos e funcionalidades de produtos use apenas as descrições do usuário; qualquer explicação adicional sua, liste ao final para o usuário verificar.

Um exemplo completo usando apenas layouts está em SKILL/assets/example.video.json.

4. Validar e Gerar o Vídeo

node "SKILL/scripts/make.mjs" nome-do-video/video.json --check    # Primeiro valida, leva segundos
node "SKILL/scripts/make.mjs" nome-do-video/video.json --sheet    # Gera visão geral, só gere o vídeo depois de ver
node "SKILL/scripts/make.mjs" nome-do-video/video.json            # Gera o vídeo
  • Se --check reportar [ERRO], cada erro indica a cena, o campo e a correção. Corrija e rode novamente até passar.
  • Se você puder ver imagens, abra nome-do-video/out/sheet.jpg e veja quadro a quadro. Cada cena tem dois quadros: o primeiro mostra a entrada até a metade, o segundo mostra tudo completo. Avalie pelo segundo quadro. Para cada quadro, pergunte quatro coisas: se cobrir o texto ainda dá para entender; se o objeto principal ocupa pelo menos 60% da largura ou altura da tela; se há grandes áreas vazias; se há palavras amontoadas ou uma palavra quebrada em duas linhas. Se algo falhar, corrija e regenere a visão geral.
  • Após gerar o vídeo, leia o relatório impresso (também salvo em nome-do-video/out/report.txt). Se houver [PROBLEMA] ou [ATENÇÃO], corrija e rode novamente; o mais comum é "texto demais", nesse caso encurte o texto.

5. Informar o Usuário

Diga quatro coisas: onde está o vídeo final (caminho da linha "Vídeo:" no relatório, nome do arquivo é title + .mp4); o que você decidiu por ele (duração, orientação, estilo, quais cenas foram desenhadas por você); quais conteúdos você adicionou; e que você não pode avaliar visual ou sonoramente, então peça ao usuário para assistir. Se o vídeo final não tiver narração, mencione: se quiser adicionar narração, ele precisará de um TTS próprio.

Pacotes de Estilo

Cada pacote de estilo é um conjunto completo de visuais: nove layouts são redesenhados com seu próprio cenário, objetos, transições, legendas e efeitos sonoros. Basta escrever o nome em theme.

themeAparênciaAdequado para
papercraftCenário multicamadas de papelão, bonequinhos de papel, trepidação stop-motionCiência leve, apresentação de produto, pequenas histórias, estilo de vida
clayModelagem em argila em tons quentes, personagens arredondadosTutoriais para iniciantes, hábitos e saúde, conteúdo infantil
collagePapel kraft, rasgos, fita adesiva, letras recortadasCiência leve, listas, abertura de programa
skitEscritório em ilustração plana, dois bonequinhos que reagem ao conteúdoExplicações para não especialistas, tópicos profissionais
isometricMáquina 2.5D, esteira rolante, posto de inspeçãoProcessos, princípios, funcionamento de sistemas
cosmosEspaço profundo, nebulosas, estrelas e órbitas luminosasVisão geral, hierarquia, abertura de série
dashboardPainel de dados escuro: painéis acendendo em sequência, arcos de medidor, gráfico de barrasResultados, avaliações, monitoramento, custos (conteúdo com números)
newsEstúdio de telejornal, faixa de título, faixa de rolagemResumo de pontos principais, relatório semanal, reportagem de dados
chatConversa em um celular, conteúdo exibido em balõesExplicação informal, casos, perguntas e respostas
comicQuadrinhos com bordas pretas, retículas, linhas de velocidade, onomatopeiasHistórias com reviravoltas, contraste entre antes e depois
detectiveQuadro de cortiça, Polaroid, post-it, linha vermelhaInvestigação de problemas, reconstituição de eventos
arcadeJogo pixelado 8-bit: blocos, moedas, mapa de fasesInstruções, comparação, apresentação leve de produto
varietyLetras decoradas multicoloridas com contorno, raios, mascote, faixa de comentáriosVídeos curtos animados, piadas, listas
vhsFita de vídeo: linhas de varredura, troca de canal, TV antiga, contador de fitaNostalgia, abertura e trailer de programas de série
chromeLetras tridimensionais cromadas, gradiente líquido em movimento, brilho estreladoFrases curtas para jovens, tópicos da moda; não adequado para conteúdo sério

Imagens de pré-visualização em SKILL/assets/styles.jpg. Se puder ver imagens, veja antes de escolher. Pacotes de estilo têm muitos enfeites, então o texto por cena deve ser mais curto; news organiza o conteúdo como um telejornal, então se o conteúdo não for realmente notícia, alerte o usuário.

Estes são apenas pontos de partida prontos: não há limite criativo. Para criar um novo conjunto de visuais (diário, vinil, mapa de metrô, o que for), siga references/style-packs.md.

Doze Temas Integrados

Temas trocam apenas cores, fundo e linhas; não têm cenários ou objetos. Condições de uso na regra 3 do passo "Definir Estilo".

themeAparênciaAdequado para
gridPapel quadriculado bege, roxo, cartão brancoConceitos, princípios
minimalGrande espaço vazio, linhas finas, um ponto azulFilmes de marca calmos e contidos, aberturas
popContraste de cores, raios, contorno preto grossoAnimado, ritmo acelerado, plataformas de vídeo curto
keynoteGradiente escuro, cartão vítreo, brilhoNovos produtos, conclusões importantes, tópicos de tecnologia
blueprintPapel de desenho azul, linhas brancas, anotações amarelasEstruturas, arquitetura, montagem
whiteboardQuadro branco, caneta marcadora, moldura desenhada à mãoProfessor explicando, fluxos e causa-efeito
chalkQuadro verde escuro, linhas de giz, moldura de madeiraAula em quadro, resolução de problemas, fórmulas, passos
neonNoite roxa escura, linhas brilhantes, grade de perspectivaTecnologia, jogos, música eletrônica
terminalFundo preto, letras verdes, cursor piscandoCódigo, linha de comando, ferramentas de desenvolvimento
paperSuperfície de papel bege, título serifado grande, vermelhoCríticas, leitura, tópicos de humanidades
inkPapel de arroz, montanhas distantes, selo vermelhoCultura tradicional, poesia, história
boldPreto e branco, negrito, cortes secos, um vermelhoOpiniões, slogans, listas

Imagens de pré-visualização em SKILL/assets/themes.jpg. Se o usuário quiser outras cores, use colors.

Layouts

Cada cena escolhe um layout ou desenha o seu próprio. Uma cena, uma ideia.

layoutQuando usarObrigatórioNão escrever por padrãoLimites
customCoisas visíveis do tema: objetos, processos, estruturasmodule, secondscues, dataVeja references/custom-scenes.md
titleIníciotitlesubtitle, kickerTítulo até 12 caracteres
barsComparar tamanhositems (2 a 6 itens, cada um com label e valor numérico value)title, unit (junto de cada número), highlight (qual barra usar cor de destaque, a partir de 1; se não especificar, será a barra mais alta)label até 8 caracteres
stepsPassos sequenciais, processositems (2 a 5 passos)titleCada passo até 12 caracteres
compareConfrontar duas coisasleft, right (cada um com title e 1 a 4 items)titleCada item até 12 caracteres
numberUm número real, uma vez por vídeovalueunit, label, notevalue como "25", "80%", "1.280"
statementUma frase para ser lembrada, no máximo uma cena por vídeotexthighlight (palavra em text para colorir)24 caracteres
bulletsVários pontos paralelos, no máximo uma cena por vídeoitems (2 a 5 linhas de texto)titleCada item até 18 caracteres
quoteCitação realtextby40 caracteres
endFinaltitlesubtitle, cta (texto do botão)Título até 14 caracteres
  • unit faz parte do número, escreva quando necessário. O label de number só escreva se apenas o número e a unidade não deixarem claro o que está sendo medido.
  • Cada layout pode receber say (legenda) e seconds (duração fixa da cena).

Se o usuário fornecer material de vídeo (filmagem real, gravação de tela, vídeo existente), há um layout clip: insere um trecho do material, misturado com os layouts acima. Um vídeo inteiro de clip é uma edição. Sintaxe: { "layout": "clip", "file": "material/entrevista.mp4", "from": 12.4, "to": 18 }. Como ver o material e decidir qual trecho usar, veja references/editing.md.

Para Mais

Precisa deLeia
Desenhar uma cena: objeto, processo, estrutura (todos os vídeos devem usar)references/custom-scenes.md
Usuário quer atmosfera, história, cena, personagem, ou vídeo todo desenhado por vocêreferences/film.md (você escreve como desenhar cada frame, o script cuida da câmera, música, render e verificação; precisa conseguir ver imagens)
Todos os campos, trocar cores, fontes, fixar duração de uma cenareferences/video-json.md
Adicionar narração (usuário precisa providenciar TTS ou gravação), trocar músicareferences/voice.md, references/video-json.md
Usuário forneceu material de vídeo para incluir, ou editar vídeo existentereferences/editing.md
Usuário quer continuar editando no Final Cut Pro, CapCut (adicione --project ao comando de render)references/editing.md
Temas e pacotes de estilo prontos não servem, quer um novo conjunto completoreferences/style-packs.md (criar um pacote de estilo exige centenas de linhas de código de cena e ajustes visuais; confirme que você consegue fazer)
Falha na instalação, fonte em quadrados, erro no ffmpegreferences/troubleshooting.md
Usuário pede cena 3D, paisagem natural com shader em tela cheia (coisas que Canvas não renderiza)references/pipelines.md (consulte pipelines de produção; precisa escrever código, confirme que você consegue fazer)
Usuário tem Blender, GarageBand ou chave da API de voz Doubao, quer renderização realista, música instrumental realista, narração naturalreferences/external-tools.md (com ferramentas externas, para modelos mais capazes; confirme que você consegue fazer)

O que esta skill não faz: gerar imagens realistas ou gravações do zero (apenas usar material fornecido pelo usuário); color grading, remoção de fundo ou edição fina de material (exporte o projeto para o software de edição). Se a necessidade for essa, informe o usuário honestamente.

Habilidades Relacionadas