Communitygithub.com

Agrupamento de Palavras de Legendas do CapCut

Reagrupa metadados de tempo de palavras de legendas baseadas em templates do CapCut e remove tokens de preenchimento no JSON do rascunho desktop do CapCut. Use quando legendas em chinês, legendas com rolagem automática, templates de karaokê/destaque ou efeitos palavra por palavra dividem palavras reais, mostram fragmentos de caracteres ou precisam remover palavras de preenchimento como 呃 enquanto preservam trilhas de texto-templates compactas.

O que é Agrupamento de Palavras de Legendas do CapCut?

Esta skill repara legendas do CapCut cujos arrays `materials.texts[].words` estão divididos por caractere chinês, causando problemas em templates como '逐字显色粗体 绿' que rolam/destacam fragmentos em vez de palavras inteiras. Ela edita o JSON não documentado do rascunho desktop do CapCut, exigindo que o CapCut esteja fechado e um backup seja feito antes das alterações. A skill suporta remoção automática de palavras de preenchimento (como 呃, 嗯, 额) e reagrupamento baseado em Intl.Segmenter ou um mapa de grupos manual. A validação pós-patch verifica a integridade do JSON e a equivalência entre os grupos de palavras e o texto visível. É útil para criadores de conteúdo que usam templates de legenda chineses, legendas karaokê ou efeitos palavra por palavra no CapCut.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/cinnabarhorse/capcut-skills/tree/main/skills/capcut-caption-word-groups

Perguntar na sua IA favorita

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

Documentação

Grupos de Palavras de Legendas do CapCut

Use esta skill para reparar legendas do CapCut cujos arrays materials.texts[].words estão divididos por caractere chinês, fazendo com que modelos como 逐字显色粗体 绿 rolem/destaquem fragmentos em vez de palavras.

Esta skill edita o JSON de rascunho não documentado do CapCut Desktop. Sempre feche o CapCut, faça backup do rascunho e verifique na visualização do CapCut antes de exportar. Atualizações do CapCut podem alterar o esquema do rascunho.

Fluxo de Trabalho

  1. Identifique o diretório ativo do rascunho.
    • Prefira o rascunho .locked se o CapCut tiver um projeto aberto.
    • Caso contrário, use o rascunho modificado mais recente em ~/Movies/CapCut/User Data/Projects/com.lveditor.draft.
  2. Feche o CapCut antes de escrever arquivos de rascunho. O CapCut pode sobrescrever edições externas enquanto o editor estiver aberto.
  3. Inspecione as legendas alvo:
    jq -r '.materials.texts[] | [(.content|fromjson.text), ((.words.text // [])|join("|"))] | @tsv' "$DRAFT/draft_info.json"
    
  4. Execute scripts/regroup-caption-words.js contra o rascunho.
  5. Reabra o CapCut e verifique visualmente pelo menos uma legenda no início, meio e fim.

Script

Use o script incluído para o patch real:

node scripts/regroup-caption-words.js \
  --draft "$DRAFT" \
  --fillers "呃,嗯,额" \
  --backup

O script aplica patch em todas as cópias ativas do rascunho que encontrar:

  • draft_info.json raiz
  • template-2.tmp raiz
  • Timelines/*/draft_info.json
  • Timelines/*/template-2.tmp

Ele atualiza tanto materials.texts[].words quanto extra_info.subtitle_fragment_info_list[].subtitle_cache_info.

Mapa de Grupo Manual

Para melhor controle editorial, passe um mapa JSON do texto exato da legenda visível para os grupos desejados:

{
  "你会担心AI就是呃夺走你的工作吗": ["你会", "担心", "AI", "就是", "夺走", "你的", "工作", "吗"],
  "以及他的呃知识库比我们都要多": ["以及", "他的", "知识库", "比", "我们", "都要", "多"]
}

Em seguida, execute:

node scripts/regroup-caption-words.js \
  --draft "$DRAFT" \
  --groups-file groups.json \
  --fillers "呃,嗯,额" \
  --backup

O mapa pode usar o texto original antes da remoção de preenchimento. Cada lista de grupos deve concatenar ao texto da legenda limpo após a remoção de preenchimento.

Validação

Após o patch, verifique:

jq empty "$DRAFT/draft_info.json" "$DRAFT/template-2.tmp" "$DRAFT"/Timelines/*/draft_info.json "$DRAFT"/Timelines/*/template-2.tmp
rg '呃|嗯|额' "$DRAFT/draft_info.json" "$DRAFT/template-2.tmp" "$DRAFT"/Timelines/*/draft_info.json "$DRAFT"/Timelines/*/template-2.tmp

Valide também se os grupos de palavras unidos são iguais ao texto visível:

jq -r '.materials.texts[] | [(.content|fromjson.text), ((.words.text // [])|join("|"))] | @tsv' "$DRAFT/draft_info.json"

Notas

  • Preserve a estrutura baseada em modelo. Não achate legendas em clipes por palavra ou caractere.
  • A remoção de preenchimento altera o texto visível, mas não o tempo de vídeo/áudio.
  • A segmentação automática usa Intl.Segmenter("zh", { granularity: "word" }); revise os resultados quando as legendas forem importantes.
  • Um patch no renderizador do modelo, como wordCountPerPageLimit(3) para 2, apenas altera quantas entradas de metadados aparecem por página. Ele não corrige metadados de palavras no nível do caractere.
  • O CapCut pode regenerar ou reescrever metadados de legenda após edições manuais de legenda. Reexecute esta skill após grandes edições de legenda.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Habilidades Relacionadas