¿Qué hace CapCut Agrupación de Palabras en Subtítulos?
Usa esta habilidad para reparar subtítulos de CapCut cuyos arrays materials.texts[].words están divididos por carácter chino, causando que plantillas como 逐字显色粗体 绿 desplazan o resalten fragmentos en lugar de palabras.
Esta habilidad edita el JSON del borrador de escritorio de CapCut, el cual no está documentado oficialmente. Siempre cierra CapCut, haz una copia de seguridad del borrador y verifica en la vista previa de CapCut antes de exportar. Las actualizaciones de CapCut pueden cambiar el esquema del borrador.
Flujo de trabajo
- Identifica el directorio del borrador activo.
- Prefiere el borrador
.lockedsi CapCut tiene un proyecto abierto. - De lo contrario, usa el borrador modificado más reciente en
~/Movies/CapCut/User Data/Projects/com.lveditor.draft.
- Prefiere el borrador
- Cierra CapCut antes de escribir archivos de borrador. CapCut puede sobrescribir ediciones externas mientras el editor está abierto.
- Inspecciona los subtítulos objetivo:
jq -r '.materials.texts[] | [(.content|fromjson.text), ((.words.text // [])|join("|"))] | @tsv' "$DRAFT/draft_info.json" - Ejecuta
scripts/regroup-caption-words.jscontra el borrador. - Vuelve a abrir CapCut y verifica visualmente al menos un subtítulo al principio, en medio y al final.
Script
Usa el script incluido para aplicar el parche real:
node scripts/regroup-caption-words.js \
--draft "$DRAFT" \
--fillers "呃,嗯,额" \
--backup
El script parchea todas las copias activas del borrador que encuentra:
draft_info.jsonraíztemplate-2.tmpraízTimelines/*/draft_info.jsonTimelines/*/template-2.tmp
Actualiza tanto materials.texts[].words como extra_info.subtitle_fragment_info_list[].subtitle_cache_info.
Mapa de grupos manual
Para un mayor control editorial, pasa un mapa JSON desde el texto de subtítulo visible exacto hasta los grupos deseados:
{
"你会担心AI就是呃夺走你的工作吗": ["你会", "担心", "AI", "就是", "夺走", "你的", "工作", "吗"],
"以及他的呃知识库比我们都要多": ["以及", "他的", "知识库", "比", "我们", "都要", "多"]
}
Luego ejecuta:
node scripts/regroup-caption-words.js \
--draft "$DRAFT" \
--groups-file groups.json \
--fillers "呃,嗯,额" \
--backup
El mapa puede usar el texto original antes de eliminar rellenos. Cada lista de grupos debe concatenarse al texto de subtítulo limpio después de eliminar rellenos.
Validación
Después de parchear, verifica:
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
También valida que los grupos de palabras unidos sean iguales al texto visible:
jq -r '.materials.texts[] | [(.content|fromjson.text), ((.words.text // [])|join("|"))] | @tsv' "$DRAFT/draft_info.json"
Notas
- Preserva la estructura basada en plantillas. No aplastes los subtítulos en clips por palabra o por carácter.
- La eliminación de rellenos cambia el texto visible pero no la sincronización de video/audio.
- La segmentación automática usa
Intl.Segmenter("zh", { granularity: "word" }); revisa los resultados cuando los subtítulos sean importantes. - Un parche al renderizador de plantillas como
wordCountPerPageLimit(3)a2solo cambia cuántas entradas de metadatos aparecen por página. No corrige los metadatos de palabras a nivel de carácter. - CapCut puede regenerar o reescribir los metadatos de subtítulos después de ediciones manuales. Vuelve a ejecutar esta habilidad después de ediciones grandes de subtítulos.