/clip
Corte um vídeo em clipes curtos + reenquadre. Legendas não são função desta habilidade — após o corte, a habilidade srt as estiliza (veja a transição abaixo).
Pontos de entrada
-
Timecodes explícitos ("corte 2:00–3:00 deste vídeo") → corte o arquivo local diretamente:
--video "<arquivo>" --ranges "2:00-3:00,...". Sem STT, sem chave, sem créditos. -
Seleção de destaques por IA em um projeto STT →
--plandepois--clips(o fluxo abaixo). Precisa da transcrição do projeto e dos timestamps das palavras. -
Vídeo bruto, "encontre os bons momentos" (sem timecodes fornecidos) → você não pode selecionar destaques sem uma transcrição, então pergunte ao usuário qual ele prefere:
- STT (seleção adequada, usa créditos): execute o STT da habilidade
srtprimeiro para criar o projeto, depois corte com--plan/--clips. - Livre (sem STT): o usuário fornece os timecodes e você os corta com
--video --ranges.
Prossiga com a escolha — não execute STT (que consome créditos) sem perguntar.
- STT (seleção adequada, usa créditos): execute o STT da habilidade
Regras principais
- Apenas o worker vê a chave bruta — nunca abra, exiba ou passe como argumento.
- A trava de chave se aplica apenas a
--project/--plan/--clips.--video --rangese--sidecarssão totalmente offline — nunca execute verificação/registro de chave para eles. - Execute em segundo plano — a codificação leva tempo.
- Esta habilidade compartilha as bibliotecas da habilidade de dublagem: a pasta
dubbingdeve estar instalada ao lado declip.
Fluxo
Fase 1 — planejamento. node scripts/clip.mjs --project <seq> --plan imprime o mapa de seções do resumo (guia de tópicos) mais a transcrição completa de frases, cada linha como order [início-fim] texto.
Fase 2 — escolha e corte. Leia a transcrição e escolha clipes, cada um como { "title": "...", "start_order": N, "end_order": M }. Critérios:
- Gancho primeiro — comece em uma frase que prenda a atenção (pergunta, afirmação ousada, linha engraçada/surpreendente).
- Termine onde o momento se resolve, não na primeira frase completa. Acompanhe a batida até o fim — toda a reação, o desdobramento e qualquer piada secundária. Leia algumas frases depois do aparente fim; mantenha-as se ainda fizerem parte da mesma reação.
- Corte na transição — termine antes da energia cair ou o tom mudar (reação animada → narração calma).
- Pico — prefira momentos engraçados/surpreendentes/emocionais/citáveis; o ponto alto geralmente fica uma ou duas frases após a revelação literal.
- Duração 30–90s — o worker avisa se estiver fora; prefira o arco completo a um corte prematuro.
- Título — descreve o momento; vira o nome do arquivo (
01_<titulo>.mp4).
As seções têm tamanho de capítulo — use o mapa de seções apenas como guia, depois aperte o gancho.
Execute: node scripts/clip.mjs --project <seq> --clips '<json>' [--out pasta] (--clips também aceita @caminho). Fontes paisagem (16:9) são reenquadradas para 9:16 (letterbox de drama-shorts); fontes retrato são mantidas. O worker escreve os clipes mais um manifesto clips.json (registra cada clipe + o trecho de transcrição necessário para legendas futuras). Relate [progress]; entregue os arquivos de [clips-output].
Legendas → transição para a habilidade srt
Legendas estão desativadas por padrão. Após o corte, informe ao usuário que os clipes estão prontos e pergunte se deseja adicionar legendas. Se quiser legendas, mostre os presets primeiro — nunca pule direto para um, exatamente como o fluxo de estilização da habilidade srt faz: a galeria interativa (selecionar + Aplicar) no aplicativo Claude, ou o menu estático ../srt/assets/style_presets.png + node ../srt/scripts/style.mjs --list-presets em outros lugares. Deixe o usuário escolher um preset ou descrever um estilo (presets de formato curto como karaoke/bold-punch são adequados para clipes). Só depois que ele escolher:
- Escreva os sidecars:
node scripts/clip.mjs --sidecars "<saida>/clips.json"— adicione--karaokeapenas para um preset karaoke (também escreve<clip>.timestamps.jsonpara medição de tempo de palavras; um preset comum precisa apenas do.srt). - Estilize cada clipe com a habilidade srt:
node ../srt/scripts/style.mjs "<clip>.mp4" "<clip>.srt" --preset <id>(adicione--word-timestamps "<clip>.timestamps.json"para karaoke). Veja a seção "Estilizar e queimar legendas" da habilidade srt.
Adicione --host <runtime> para telemetria (silenciosa), igual aos outros workers.
Configuração (env)
Mesmo que /dubbing / /srt (PERSO_API_BASE/PERSO_MEDIA_BASE — apenas hosts https perso.ai, PERSO_SPACE_SEQ, XP_API_KEY, PERSO_NO_TELEMETRY, …).