Communitygithub.com

perso-ai/perso-dubbing-plugin

Perso 클립 스킬의 동반 스킬: 짧은 형식의 클립 도구와 Perso 더빙 플러그인 함께 사용. 데모 GIF는 docs/media에 있습니다.

perso-dubbing-plugin란 무엇인가요?

이 스킬은 비디오를 짧은 클립으로 자르고 리프레임하는 도구로, Perso 더빙 플러그인의 일부입니다. 명시적 타임코드(`--video --ranges`)를 사용한 오프라인 컷, STT 기반 AI 하이라이트 선택(`--plan`/`--clips`), 또는 사용자에게 STT 사용 여부를 묻는 원시 비디오 처리 등 여러 진입점을 지원합니다. 주요 강점은 워커가 자막 스타일링을 위해 `srt` 스킬로 전환하기 전에 클립 계획 및 선택에 중점을 둔다는 점입니다. Claude Code, Cursor, Codex와 같은 AI 에이전트 플랫폼과 호환되며, Perso 더빙 라이브러리와 동일한 환경 변수(`PERSO_API_BASE`, `XP_API_KEY` 등)를 사용합니다. 작업 흐름은 계획(대본 및 섹션 맵 출력) → 선택(훅, 피크, 전환 중심의 루브릭으로 클립 선택) → 실행(클립 자르기 및 자막을 위한 사이드카 생성)의 두 단계로 구성됩니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/perso-ai/perso-dubbing-plugin/tree/main/skills/clip

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

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

문서

/clip

비디오를 짧은 클립으로 자르고 리프레임합니다. 자막은 이 스킬의 작업이 아닙니다 — 자른 후에는 srt 스킬이 스타일링을 처리합니다(아래 핸드오프 참조).

진입점

  • 명시적 타임코드 ("이 비디오의 2:00–3:00을 잘라줘") → 로컬 파일을 직접 자릅니다: --video "<file>" --ranges "2:00-3:00,...". STT, 키, 크레딧이 필요 없습니다.

  • STT 프로젝트의 AI 하이라이트 선택 → --plan 후 --clips (아래 흐름). 프로젝트의 대본과 단어 타임스탬프가 필요합니다.

  • 원시 비디오, "좋은 부분 찾기" (타임코드 없음) → 대본 없이는 하이라이트를 선택할 수 없으므로 사용자에게 원하는 것을 물어보세요:

    • STT (적절한 선택, 크레딧 사용): 먼저 srt 스킬의 STT를 실행하여 프로젝트를 만든 다음 --plan/--clips으로 자릅니다.
    • 무료 (STT 없음): 사용자가 타임코드를 제공하면 --video --ranges로 자릅니다.

    사용자의 선택에 따라 진행하세요 — 묻지 않고 STT(크레딧이 청구됨)를 실행하지 마세요.

핵심 규칙

  • 워커만 원시 키를 봅니다 — 절대 열거나, 출력하거나, 인수로 전달하지 마세요.
  • 키 게이트는 --project/--plan/--clips에만 적용됩니다. --video --ranges와 --sidecars는 완전히 오프라인입니다 — 이들에 대해 키 확인/등록을 절대 실행하지 마세요.
  • 백그라운드에서 실행 — 인코딩에 시간이 걸립니다.
  • 이 스킬은 더빙 스킬의 라이브러리를 공유합니다: dubbing 폴더가 clip 옆에 설치되어 있어야 합니다.

흐름

1단계 — 계획. node scripts/clip.mjs --project <seq> --plan은 요약의 섹션 맵(주제 가이드)과 각 줄이 순서 [시작-끝] 텍스트 형식인 전체 문장 대본을 출력합니다.

2단계 — 선택 후 자르기. 대본을 읽고 클립을 선택합니다. 각 클립은 { "title": "...", "start_order": N, "end_order": M } 형식입니다. 루브릭:

  • 먼저 훅 — 주의를 끄는 문장(질문, 대담한 주장, 재미있거나 놀라운 대사)으로 시작하세요.
  • 첫 번째 완전한 문장에서 끝내지 말고 순간이 해결되는 지점에서 끝내세요. 비트가 끝날 때까지 타고 가세요 — 전체 반응, 후속 반응, 그리고 보조 펀치라인까지. 명백한 끝 이후 몇 문장을 더 읽어보고, 여전히 같은 반응이라면 유지하세요.
  • 전환점에서 자르세요 — 에너지가 떨어지거나 톤이 바뀌기 직전에 끝내세요(흥분된 반응 → 차분한 나레이션).
  • 피크 — 재미있거나 / 놀랍거나 / 감동적이거나 / 인용할 만한 순간을 선호하세요; 하이라이트는 종종 문자 그대로의 공개 후 한두 문장 뒤에 있습니다.
  • 길이 30–90초 — 워커가 범위를 벗어나면 경고합니다; 조기 컷보다는 전체 호를 선호하세요.
  • 제목 — 순간을 설명합니다; 파일 이름이 됩니다 (01_<title>.mp4).

섹션은 챕터 길이입니다 — 섹션 맵은 가이드로만 사용하고, 훅으로 좁히세요.

실행: node scripts/clip.mjs --project <seq> --clips '<json>' [--out 폴더] (--clips는 @경로도 허용). 가로(16:9) 소스는 9:16(드라마-숏츠 레터박스)으로 리프레임됩니다; 세로 소스는 유지됩니다. 워커는 클립과 clips.json 매니페스트(각 클립 + 나중에 자막에 필요한 대본 조각 기록)를 작성합니다. [진행]을 중계하고, [clips-output]에서 파일을 전달합니다.

자막 → srt 스킬로 핸드오프

자막은 기본적으로 꺼져 있습니다. 자른 후 사용자에게 클립이 준비되었음을 알리고 자막을 추가할지 물어보세요. 자막을 원하면 먼저 프리셋을 보여주세요 — 절대 바로 하나로 건너뛰지 마세요. 정확히 srt 스킬의 스타일링 흐름처럼: Claude 앱에서는 대화형 갤러리(선택 + 적용), 다른 곳에서는 정적 ../srt/assets/style_presets.png + node ../srt/scripts/style.mjs --list-presets 메뉴. 사용자가 프리셋을 선택하거나 스타일을 설명하도록 하세요(짧은 형식 프리셋인 karaoke/bold-punch가 클립에 적합). 사용자가 선택한 후에만:

  1. 사이드카 작성: node scripts/clip.mjs --sidecars "<out>/clips.json" — 카라오케 프리셋에만 --karaoke 추가(측정된 단어 타이밍을 위해 <clip>.timestamps.json도 작성; 일반 프리셋은 .srt만 필요).
  2. 각 클립을 srt 스킬로 스타일링: node ../srt/scripts/style.mjs "<clip>.mp4" "<clip>.srt" --preset <id> (카라오케의 경우 --word-timestamps "<clip>.timestamps.json" 추가). srt 스킬의 "자막 스타일링 및 굽기" 섹션을 참조하세요.

텔레메트리(자동)를 위해 --host <런타임>을 추가하세요. 다른 워커와 동일합니다.

설정 (env)

/dubbing / /srt와 동일합니다 (PERSO_API_BASE/PERSO_MEDIA_BASE — https perso.ai 호스트만, PERSO_SPACE_SEQ, XP_API_KEY, PERSO_NO_TELEMETRY, …).

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

관련 스킬