Communitygithub.com

Kiratuu/Video-Wrapper-Skills

Adicione efeitos especiais de programa de TV (textos decorativos, cartões, barras de identificação, títulos de capítulo, etc.) a vídeos de entrevista. Suporta 4 temas visuais, analisa o conteúdo das legendas para gerar sugestões e as submete à aprovação do usuário antes de renderizar o vídeo.

O que é Video-Wrapper-Skills?

Esta skill transforma vídeos de entrevista em conteúdo visualmente rico e profissional, adicionando efeitos de programa de TV como textos decorativos (fancy text), cartões de explicação, barras de identificação de convidados (lower thirds), títulos de capítulo, cartões de citações e animações de dados. O processo é semi-automático: primeiro, a skill analisa o arquivo de legenda (.srt) para identificar pontos-chave, convidados, termos técnicos e citações importantes, gerando sugestões de efeitos. Em seguida, apresenta essas sugestões para o usuário revisar, modificar ou aprovar, garantindo controle criativo. Por fim, com base na aprovação, gera um arquivo de configuração e renderiza o vídeo final. A skill oferece 4 temas visuais (notion, cyberpunk, apple, aurora) e usa tecnologias modernas como Playwright + HTML/CSS/Anime.js para renderização de alta qualidade, com fallback para PIL. É útil para criadores de conteúdo, educadores e profissionais que desejam enriquecer entrevistas com elementos visuais dinâmicos e informativos.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add Kiratuu/Video-Wrapper-Skills

Perguntar na sua IA favorita

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

Documentação

Processador de Vídeo de Entrevista

Ferramenta de efeitos especiais para vídeo baseada em Python + Playwright + MoviePy, usando HTML/CSS/Anime.js para renderizar efeitos visuais de alta qualidade.

Fluxo de Trabalho

Primeira Etapa: Analisar o Conteúdo da Legenda

Quando o usuário fornece o vídeo e o arquivo de legenda, primeiro analise o conteúdo da legenda para gerar sugestões de efeitos:

  1. Ler o arquivo de legenda (.srt)
  2. Analisar o conteúdo, identificando:
    • Informações do convidado (para barras de identificação)
    • Pontos de transição de tópico (para títulos de capítulo)
    • Palavras-chave e termos (para textos decorativos)
    • Nomes técnicos (para cartões de termos)
    • Insights valiosos (para cartões de citações)
    • Dados numéricos (para animações de dados)
    • Pontos principais (para listas de tópicos)
  3. Gerar uma lista de sugestões e apresentá-la ao usuário para revisão

Segunda Etapa: Revisão do Usuário

Apresente as sugestões ao usuário no formato Markdown:

## Sugestões de Efeitos Visuais

**Tema**: notion

### 1. Barra de Identificação (Lower Third)
- **Nome**: Dario Amodei
- **Cargo**: CEO
- **Empresa**: Anthropic
- **Tempo de Aparição**: 1000ms

### 2. Texto Decorativo (Fancy Text)
1. **Inteligência Artificial Geral** (destaque)
   Tempo: 2630ms - 5500ms
   Motivo: Primeira menção a conceitos centrais

...

O usuário pode:

  • Confirmar todas as sugestões
  • Modificar algumas sugestões
  • Remover componentes desnecessários
  • Adicionar novos componentes

Terceira Etapa: Gerar Configuração e Renderizar

Com base nas sugestões aprovadas pelo usuário, gere um config.json e então renderize o vídeo.

Componentes Disponíveis

ComponenteFinalidadeCampos de Configuração
barra_identificacao (lower_third)Exibir informações do convidadoname, role, company, startMs, durationMs
titulo_capitulo (chapter_title)Título de transição de tópiconumber, title, subtitle, startMs, durationMs
texto_decorativo (fancy_text)Resumir o ponto atualtext, style, startMs, endMs, position
cartao_termo (term_card)Explicar termos técnicoschinese, english, description, firstAppearanceMs
cartao_citacao (quote_callout)Destacar insights valiosostext, author, startMs, durationMs, position
animacao_dados (animated_stats)Exibir númerosprefix, number, unit, label, startMs
lista_pontos (bullet_points)Resumir pontos principaistitle, points[], startMs, durationMs
barra_social (social_bar)Guia de acompanhamentoplatform, label, handle, startMs, durationMs

Regras de Uso para Textos Decorativos

⚠️ Importante: Os textos decorativos devem seguir as seguintes regras:

  1. Devem ser frases: Resuma de forma concisa o ponto de vista do orador no momento

    • ✅ Correto: «O desenvolvimento da IA é uma curva suave» «O crescimento da inteligência é semelhante à Lei de Moore»
    • ❌ Errado: «Inteligência Artificial» «Lei de Moore» (são palavras soltas, devem usar cartão de termo)
  2. Complementar os cartões de termo:

    • Texto decorativo: Resumir o ponto de vista (ex.: «A inteligência dobra a cada ano»)
    • Cartão de termo: Explicar o termo (ex.: «Lei de Moore: o número de transistores em circuitos integrados dobra a cada 18-24 meses»)
  3. Posição no topo: Por padrão, exibir na área superior da tela (acima da legenda), evitando cobrir rostos

Regras de Uso para Barras Sociais

  • Duração padrão da exibição: 8 segundos (mais longa que outros componentes para dar tempo suficiente ao usuário memorizar)
  • Geralmente aparece no final do vídeo
  • Plataformas suportadas: twitter, weibo, youtube

Sistema de Temas

Suporta 4 temas visuais:

TemaEstiloCenário de Uso
notionEstilo caloroso de conhecimentoEducação, compartilhamento de conhecimento
cyberpunkFuturista neonTecnologia, tópicos de ponta
appleMinimalista e eleganteNegócios, entrevistas profissionais
auroraGradiente e fluxoConteúdo criativo e artístico

Formato do Arquivo de Configuração

{
  "theme": "notion",
  "lowerThirds": [
    {
      "name": "Dario Amodei",
      "role": "CEO",
      "company": "Anthropic",
      "startMs": 1000,
      "durationMs": 5000
    }
  ],
  "chapterTitles": [
    {
      "number": "Parte 1",
      "title": "A Natureza do Crescimento Exponencial",
      "subtitle": "The Nature of Exponential Growth",
      "startMs": 0,
      "durationMs": 4000
    }
  ],
  "keyPhrases": [
    {
      "text": "Inteligência Artificial Geral",
      "style": "emphasis",
      "startMs": 2630,
      "endMs": 5500
    }
  ],
  "termDefinitions": [
    {
      "chinese": "摩尔定律",
      "english": "Moore's Law",
      "description": "O número de transistores em circuitos integrados dobra a cada 18-24 meses",
      "firstAppearanceMs": 37550,
      "displayDurationSeconds": 6
    }
  ],
  "quotes": [
    {
      "text": "O desenvolvimento da IA é uma curva exponencial muito suave",
      "author": "— Dario Amodei",
      "startMs": 30000,
      "durationMs": 5000
    }
  ],
  "stats": [
    {
      "prefix": "Taxa de crescimento ",
      "number": 240,
      "unit": "%",
      "label": "Crescimento anual da capacidade computacional",
      "startMs": 45000,
      "durationMs": 4000
    }
  ],
  "bulletPoints": [
    {
      "title": "Pontos Principais",
      "points": [
        "O desenvolvimento da IA é uma curva exponencial suave",
        "Crescimento da inteligência semelhante à Lei de Moore",
        "Não há momento de singularidade repentino"
      ],
      "startMs": 50000,
      "durationMs": 6000
    }
  ]
}

Instalação de Dependências

# Entrar no ambiente virtual
cd ~/.claude/skills/video-wrapper
source venv/bin/activate

# Instalar dependências
pip install -r requirements.txt

# Instalar navegador Playwright
playwright install chromium

Uso na Linha de Comando

# Usar renderizador de navegador (recomendado)
python src/video_processor.py video.mp4 subs.srt config.json output.mp4

# Especificar renderizador
python src/video_processor.py video.mp4 subs.srt config.json -r browser
python src/video_processor.py video.mp4 subs.srt config.json -r pil

Implementação Técnica

  • Renderização Visual: HTML + CSS + Anime.js (via captura de tela do Playwright)
  • Síntese de Vídeo: MoviePy
  • Motor de Animação: Anime.js (animação física Spring)
  • Renderização de Backup: Python PIL

Estrutura de Arquivos

~/.claude/skills/video-wrapper/
├── src/
│   ├── video_processor.py    # Script principal de processamento
│   ├── browser_renderer.py   # Renderizador Playwright
│   ├── content_analyzer.py   # Analisador de conteúdo
│   ├── fancy_text.py         # Texto decorativo PIL (backup)
│   └── term_card.py          # Cartão de termo PIL (backup)
├── templates/
│   ├── fancy-text.html       # Modelo de texto decorativo
│   ├── term-card.html        # Modelo de cartão de termo
│   ├── lower-third.html      # Modelo de barra de identificação
│   ├── chapter-title.html    # Modelo de título de capítulo
│   ├── quote-callout.html    # Modelo de cartão de citação
│   ├── animated-stats.html   # Modelo de animação de dados
│   └── bullet-points.html    # Modelo de lista de tópicos
├── static/
│   ├── css/
│   │   ├── effects.css       # Efeitos básicos
│   │   ├── theme-notion.css  # Tema Notion
│   │   ├── theme-cyberpunk.css
│   │   ├── theme-apple.css
│   │   └── theme-aurora.css
│   └── js/
│       └── anime.min.js      # Anime.js
└── requirements.txt

Observações

  • O processamento de vídeo pode demorar; por favor, aguarde pacientemente.
  • Certifique-se de ter espaço em disco suficiente para armazenar o vídeo de saída.
  • A renderização com Playwright oferece melhor qualidade, mas requer a instalação do Chromium.
  • Se o Playwright não estiver disponível, o sistema reverterá automaticamente para a renderização PIL.

Habilidades Relacionadas