Communitygithub.com

shortcut-clips

긴 로컬 비디오(팟캐스트, 강연, 인터뷰, 스트리밍)를 얼굴 추적 프레이밍, 애니메이션 캡션, 제목 및 해시태그가 포함된 짧은 세로 9:16 클립으로 변환합니다. Claude는 타임스탬프가 있는 대본에서 가장 바이럴이 될 만한 순간을 선택하고, 로컬 ffmpeg 파이프라인이 나머지를 처리합니다. API 키가 필요 없습니다.

shortcut-clips란 무엇인가요?

이 스킬은 긴 로컬 비디오 파일을 짧은 세로 9:16 클립(쇼츠, 릴스, 틱톡 등)으로 변환하는 완전한 로컬 파이프라인입니다. 사용자가 비디오나 팟캐스트에서 짧은 클립을 만들거나, 바이럴이 될 만한 인용구나 순간을 찾거나, 이전에 만든 클립을 다시 자르거나 제목을 변경하거나 렌더링하고자 할 때 사용됩니다. Claude는 타임스탬프가 있는 대본을 분석하여 가장 재미있거나 감동적이거나 바이럴 가능성이 높은 순간(후보)을 선별하고, `clips.json` 파일을 통해 선택과 편집 과정을 안내합니다. 실제 비디오 프레임 처리(트랜스크라이브, 프레이밍, 캡션, 렌더링)는 로컬에서 실행되는 `shortcut-clips` 명령줄 도구가 처리하므로 API 키가 필요 없으며 GPU 가속을 지원합니다. 이 스킬은 Claude Code, Cursor, Codex 등 대형 언어 모델 기반 코딩 어시스턴트와 함께 사용하도록 설계되었으며, 사용자는 단순히 비디오 파일 경로와 원하는 클립 개수(기본 3개)를 지정하면 됩니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/thanmaiashok/shortcut-clips/tree/HEAD/skills/shortcut-clips

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

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

문서

shortcut-clips은(는) 무엇을 하나요?

로컬 파이프라인이 기계적 작업(트랜스크라이브, 후보 윈도우 찾기, 리프레임, 캡션 추가, 렌더링)을 처리합니다. 당신의 역할은 판단 단계입니다: 후보 순간을 텍스트로 읽고, 가장 좋은 것을 선택한 다음 clips.json을 작성합니다. 비디오 프레임을 보거나 처리할 필요가 전혀 없습니다.

0. 입력

  • 비디오: 로컬 파일 경로. 사용자가 URL을 제공하는 대신, shortcut-clips는 사용자가 직접 제공한 파일(소유하거나 권한이 있는 콘텐츠)에 대해서만 작동한다고 설명하고 파일을 요청하세요. 아무것도 다운로드하지 마세요.
  • 클립 개수: 사용자가 지정한 숫자를 사용하고, 그렇지 않으면 3개를 기본값으로 사용합니다.
  • 옵션(사용자가 요청하는 경우만): --language ko|en|ja|…, --min-len/--max-len (기본 20-60초), 스타일 bold-pop(기본값), minimal 또는 karaoke-highlight.

1. 준비 (트랜스크라이브 + 후보)

shortcut-clips prepare "<비디오 경로>"
  • 출력 폴더가 출력된 다음, 청크 파일당 한 줄씩 출력됩니다. 둘 다 기록하세요.
  • 처음 실행하면 음성 모델을 다운로드합니다. 1시간 분량 비디오는 CPU에서 약 15-25분, GPU에서 5-10분이 소요됩니다. 약 10분 이상의 비디오는 명령을 백그라운드에서 실행하고 완료될 때까지 기다리세요. 사용자에게 작업 중임을 알리세요. 재실행은 안전합니다: 완료된 단계는 캐시됩니다.
  • 실패 시, 사용자에게 오류의 수정 조언을 보여주세요. shortcut-clips doctor 명령어로 설치 상태를 확인할 수 있습니다.

2. 순간 선택

  1. <출력 폴더>/work/candidates.txt를 읽은 다음, 파일에 나열된 모든 청크 파일을 순서대로 읽습니다. 각 청크는 문장(s0012 [68.3] text)과 후보(c004 s0012-s0021 68.2-108.6 (40s))를 나열합니다. 각 후보는 해당 문장들의 범위입니다. transcript.json이나 candidates.json은 읽지 마세요: 청크 파일에는 필요한 모든 정보가 훨씬 적은 토큰으로 포함되어 있습니다.
  2. 각 후보를 reference/rubric.md를 사용하여 평가하세요. 진행하면서 요청된 개수의 약 3배에 해당하는 숏리스트(후보 ID, 다섯 가지 기준 점수, 한 줄 메모)를 유지하고 나머지는 버리세요.
  3. 선정된 후보를 개선합니다. 예를 들어, 가장 강력한 훅이 있는 문장에서 시작하거나 페이오프 직후에 끝나도록 클립의 경계를 다른 문장 경계로 이동할 수 있습니다:
    • start = 선택한 첫 번째 문장의 시간.
    • end = 유지하는 마지막 문장 다음 문장의 시간, 또는 마지막 문장을 유지하는 경우 후보의 종료 시간.
    • 길이 범위를 벗어나지 않아야 합니다. 검증기는 경계를 단어 단위로 스냅합니다.
  4. 최종 세트를 선택합니다: 가장 높은 전체 점수, 두 클립이 몇 초 이상 겹치지 않도록 하고, 가능하면 서로 다른 주제를 선택합니다.

3. clips.json 작성

<출력 폴더>/clips.json을 reference/clips-format.md에 따라 작성합니다. 사용자가 다른 요청을 하지 않는 한 hook_text, title 및 caption을 대본의 언어와 문자 체계로 작성합니다. 클립을 가장 좋은 순서로 정렬합니다. 그런 다음 실행합니다:

shortcut-clips validate "<출력 폴더>/clips.json" --write

모든 error를 수정하고 ✓가 출력될 때까지 다시 실행합니다. 쉬운 경우 warning도 수정합니다. info 줄은 자동 조정(스냅된 경계)을 보고하며 조치가 필요하지 않습니다.

4. 렌더링

shortcut-clips render "<출력 폴더>/clips.json"

그런 다음 사용자에게 보고합니다: 각 클립마다 번호, 제목, 길이, 점수 및 비디오 경로와 갤러리 <출력 폴더>/index.html을 알려줍니다. 최고 클립이 왜 좋은지 한 문장으로 설명하세요. 변경을 요청할 수 있다고 언급하세요.

편집 및 재실행

  • "클립 2를 더 짧게", "새 제목", "karaoke 스타일 사용": clips.json을 편집하고(클립별 style/layout 재정의 defaults), --write로 검증하고, 다시 렌더링합니다. 변경되지 않은 클립은 캐시에서 재사용됩니다.
  • "다른 순간 찾기": 동일한 청크로 2단계로 돌아갑니다. prepare를 다시 실행하지 마세요.
  • 잘못된 언어 감지: --language <코드>를 사용하여 prepare를 다시 실행합니다. 트랜스크립션 및 이후 단계만 다시 수행합니다.
  • 후보 윈도우 없음: 비디오가 짧거나 음성이 거의 없는 경우입니다. 더 작은 --min-len(예: 10)으로 prepare를 다시 실행하세요.

관련 스킬