Communitygithub.com

capcut-caption-word-groups

CapCut 템플릿 기반 자막의 단어 타임라인 메타데이터를 재그룹화하고, 드래프트 JSON에서 불필요한 필러 토큰(예: 呃, 嗯, 额)을 제거합니다. 중국어 자막, 자동 스크롤 자막, 가사/하이라이트 템플릿 또는 단어별 효과가 단어를 분할하거나 문자 단위 청크로 표시할 때 사용합니다.

capcut-caption-word-groups란 무엇인가요?

이 스킬은 CapCut 템플릿 기반 자막의 `materials.texts[].words` 배열이 중국어 문자 단위로 분할되어, '逐字显色粗体 绿'와 같은 템플릿이 단어 대신 조각을 스크롤/하이라이트하는 문제를 해결합니다. CapCut 데스크톱 드래프트의 문서화되지 않은 JSON을 편집하며, 항상 CapCut을 닫고, 드래프트를 백업한 후, CapCut 미리보기에서 확인해야 합니다. 주요 기능은 `scripts/regroup-caption-words.js` 스크립트를 통해 자동 단어 그룹화 및 필러 제거를 수행하며, 선택적으로 수동 그룹 매핑을 지원합니다. macOS의 `~/Movies/CapCut/User Data/Projects/com.lveditor.draft` 경로에 있는 드래프트를 대상으로 하며, `draft_info.json`, `template-2.tmp`, `Timelines/*/draft_info.json`, `Timelines/*/template-2.tmp` 파일을 패치합니다. 자동 분할은 `Intl.Segmenter` API를 사용하며, 중요 자막의 경우 결과를 검토해야 합니다.

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

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

CapCut 자막 단어 그룹

이 스킬을 사용하여 CapCut 자막의 materials.texts[].words 배열이 중국어 문자 단위로 분할되어, 逐字显色粗体 绿와 같은 템플릿이 단어 대신 조각을 스크롤/하이라이트하는 문제를 수정하세요.

이 스킬은 문서화되지 않은 CapCut 데스크톱 드래프트 JSON을 편집합니다. 항상 CapCut을 닫고, 드래프트를 백업한 후, CapCut 미리보기에서 확인하세요. CapCut 업데이트는 드래프트 스키마를 변경할 수 있습니다.

워크플로우

  1. 활성 드래프트 디렉토리를 식별하세요.
    • CapCut에 프로젝트가 열려 있는 경우 .locked 드래프트를 우선 사용합니다.
    • 그렇지 않으면 ~/Movies/CapCut/User Data/Projects/com.lveditor.draft 아래에서 가장 최근에 수정된 드래프트를 사용합니다.
  2. 드래프트 파일을 쓰기 전에 CapCut을 닫으세요. 편집기가 열려 있는 동안 CapCut은 외부 편집 내용을 덮어쓸 수 있습니다.
  3. 대상 자막을 확인합니다:
    jq -r '.materials.texts[] | [(.content|fromjson.text), ((.words.text // [])|join("|"))] | @tsv' "$DRAFT/draft_info.json"
    
  4. 드래프트에 대해 scripts/regroup-caption-words.js를 실행합니다.
  5. CapCut을 다시 열고 적어도 하나의 초기, 중간, 후반 자막을 시각적으로 확인합니다.

스크립트

실제 패치를 위해 번들 스크립트를 사용하세요:

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

스크립트는 찾은 모든 활성 드래프트 복사본을 패치합니다:

  • 루트 draft_info.json
  • 루트 template-2.tmp
  • Timelines/*/draft_info.json
  • Timelines/*/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은 수동 자막 편집 후 자막 메타데이터를 다시 생성하거나 다시 쓸 수 있습니다. 큰 자막 편집 후 이 스킬을 다시 실행하세요.

Individual skills in this repo

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

관련 스킬