CapCut 자막 단어 그룹
이 스킬을 사용하여 CapCut 자막의 materials.texts[].words 배열이 중국어 문자 단위로 분할되어, 逐字显色粗体 绿와 같은 템플릿이 단어 대신 조각을 스크롤/하이라이트하는 문제를 수정하세요.
이 스킬은 문서화되지 않은 CapCut 데스크톱 드래프트 JSON을 편집합니다. 항상 CapCut을 닫고, 드래프트를 백업한 후, CapCut 미리보기에서 확인하세요. CapCut 업데이트는 드래프트 스키마를 변경할 수 있습니다.
워크플로우
- 활성 드래프트 디렉토리를 식별하세요.
- CapCut에 프로젝트가 열려 있는 경우
.locked드래프트를 우선 사용합니다. - 그렇지 않으면
~/Movies/CapCut/User Data/Projects/com.lveditor.draft아래에서 가장 최근에 수정된 드래프트를 사용합니다.
- CapCut에 프로젝트가 열려 있는 경우
- 드래프트 파일을 쓰기 전에 CapCut을 닫으세요. 편집기가 열려 있는 동안 CapCut은 외부 편집 내용을 덮어쓸 수 있습니다.
- 대상 자막을 확인합니다:
jq -r '.materials.texts[] | [(.content|fromjson.text), ((.words.text // [])|join("|"))] | @tsv' "$DRAFT/draft_info.json" - 드래프트에 대해
scripts/regroup-caption-words.js를 실행합니다. - CapCut을 다시 열고 적어도 하나의 초기, 중간, 후반 자막을 시각적으로 확인합니다.
스크립트
실제 패치를 위해 번들 스크립트를 사용하세요:
node scripts/regroup-caption-words.js \
--draft "$DRAFT" \
--fillers "呃,嗯,额" \
--backup
스크립트는 찾은 모든 활성 드래프트 복사본을 패치합니다:
- 루트
draft_info.json - 루트
template-2.tmp Timelines/*/draft_info.jsonTimelines/*/template-2.tmp
materials.texts[].words와 extra_info.subtitle_fragment_info_list[].subtitle_cache_info를 모두 업데이트합니다.
수동 그룹 매핑
더 나은 편집 제어를 위해, 정확한 표시 자막 텍스트에서 원하는 그룹으로의 JSON 매핑을 전달하세요:
{
"你会担心AI就是呃夺走你的工作吗": ["你会", "担心", "AI", "就是", "夺走", "你的", "工作", "吗"],
"以及他的呃知识库比我们都要多": ["以及", "他的", "知识库", "比", "我们", "都要", "多"]
}
그런 다음 실행하세요:
node scripts/regroup-caption-words.js \
--draft "$DRAFT" \
--groups-file groups.json \
--fillers "呃,嗯,额" \
--backup
매핑은 필러 제거 전의 원본 텍스트를 사용할 수 있습니다. 각 그룹 리스트는 필러 제거 후 정리된 자막 텍스트와 연결되어야 합니다.
검증
패치 후 다음을 확인하세요:
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
또한 결합된 단어 그룹이 표시 텍스트와 일치하는지 확인하세요:
jq -r '.materials.texts[] | [(.content|fromjson.text), ((.words.text // [])|join("|"))] | @tsv' "$DRAFT/draft_info.json"
참고 사항
- 템플릿 기반 구조를 유지하세요. 자막을 단어별 또는 문자별 클립으로 평탄화하지 마십시오.
- 필러 제거는 표시 텍스트를 변경하지만 비디오/오디오 타이밍은 변경하지 않습니다.
- 자동 분할은
Intl.Segmenter("zh", { granularity: "word" })를 사용합니다. 자막이 중요한 경우 결과를 검토하세요. wordCountPerPageLimit(3)에서2로의 템플릿 렌더러 패치는 페이지당 나타나는 메타데이터 항목 수만 변경합니다. 문자 수준의 단어 메타데이터는 수정하지 않습니다.- CapCut은 수동 자막 편집 후 자막 메타데이터를 다시 생성하거나 다시 쓸 수 있습니다. 큰 자막 편집 후 이 스킬을 다시 실행하세요.