clip-anything은(는) 무엇을 하나요?
목적
긴 녹화(파일 하나, 여러 파일, 또는 하나의 세션인 폴더)를 무료 로컬 clip-anything CLI를 사용하여 상위 N개의 세로형 하이라이트 클립으로 변환합니다. 이 스킬은 도구를 구동하고, 자르기 전에 무엇을 자를지 보여주며, 생성된 리포트를 읽어 사용자가 각 순간이 선택된 이유를 알 수 있도록 합니다. 절대로 어떠한 영상도 업로드, 게시 또는 전송하지 않습니다. CLI 자체는 선택 사항인 일회성 Whisper 모델 다운로드(사전 동의 필요) 외에는 네트워크 호출을 하지 않습니다.
전제 조건
- PATH에
uvx(uv에서) 또는pipx가 있어야 합니다. CLI는 Python 패키지이며,uvx clip-anything은 설치 없이 실행됩니다. - PATH에
ffmpeg와ffprobe가 있어야 합니다. 이들이 없으면 CLI는 종료 코드 3과 함께 설치 방법을 출력합니다. - 사용자가 지정할 수 있는 녹화 파일:
.mp4 .mkv .mov .m4v .ts .m2ts .mts .webm .avi .flv또는 이들의 폴더.
지침
사용자의 현재 디렉토리에서 작업합니다. 사용자가 제공한 정확한 경로를 사용하고, 따옴표로 감쌉니다. 영상을 이동, 이름 변경 또는 삭제하지 마십시오. 아래 단계에서 사용자가 실행하도록 제안하는 내용 외에는 어떤 것도 설치하지 마십시오.
워크플로우
(순서대로 단계를 수행하십시오. 완료할 수 없는 단계는 건너뛰지 않고 보고합니다.)
- 도구 확인.
command -v uvx || command -v pipx와command -v ffmpeg && command -v ffprobe를 실행합니다.uvx와pipx가 모두 없으면 다음을 출력하고 중지합니다:curl -LsSf https://astral.sh/uv/install.sh | sh(macOS/Linux) 또는winget install astral-sh.uv(Windows). ffmpeg가 없으면 다음을 출력하고 중지합니다:brew install ffmpeg/sudo apt install ffmpeg/winget install Gyan.FFmpeg.pipx만 있는 경우 이 파일에서uvx clip-anything이라고 표시된 곳에pipx run clip-anything을 사용합니다. - 입력 확인. 사용자가 파일이나 폴더를 지정한 경우 이를 사용합니다. 사용자가 경로 없이 "내 녹화"라고 말한 경우 현재 디렉토리에서 비디오 파일을 검색합니다 (위 확장자 기준, 최신순). 여러 개의 가능한 입력이 있거나 없는 경우에만 묻고, 그렇지 않으면 계속 진행하고 어떤 경로가 사용되었는지 알려줍니다. 폴더는 그대로 전달됩니다. CLI는 이를 하나의 세션으로 처리합니다.
- 항상 먼저 드라이 런.
uvx clip-anything "<input>" --dry-run --json 2>/dev/null를 실행합니다 (사용자가 숫자를 지정한 경우--count N추가). stdout에서 JSON을 파싱합니다. 순위,start에서end까지 (mm:ss 형식),duration_s,score,title(있는 경우),components의 상위 구성 요소를 포함하는 짧은 표를 보여줍니다.clips가 비어 있으면 그대로 말하고warnings를 읽은 후 (below_floor경고는 액션 바를 넘은 항목이 없음을 의미)--min-score 0또는 더 낮은 값을 제안합니다. - 렌더링. 사용자가 미리보기만 요청하지 않은 경우, 동일한 옵션으로
--dry-run과--json없이uvx clip-anything "<input>"을 실행하여 진행 UI를 표시합니다. 자막이 필요하고 사용자가 일회성 모델 다운로드에 동의한 경우에만--yes를 추가하고, 그렇지 않으면 CLI가 묻도록 둡니다. 출력 폴더를 보고합니다 (기본값./clips또는--out). - 선택 설명.
clips/report.json을 읽습니다 (파일을 직접 읽거나python3 -I -c를 사용). 각ok클립에 대해 시간 범위, 점수, 그리고 어떤 신호가 이를 이끌었는지 (components: 기준선 대비 큰 소리, 오디오 시작점, 움직임, 오디오/움직임 일치, 정적 카드 페널티, 음성 보너스) 한 줄씩 설명합니다.layout이facecam인 경우와captions가 true인 경우 언급합니다.warnings의 모든 항목을 평이한 말로 나열합니다. 도구는 소리 내어 저하되며 사용자는 이를 들어야 합니다. - 조정 옵션 제공, 사용자가 본 내용에 맞는 옵션만 한 줄씩 제시합니다:
--count N: 클립 수를 늘리거나 줄입니다 (최대값이며, 조용한 세션은 더 적게 반환됨)--min-score 0.3: 액션 바를 낮춤;--min-score 0은 파일 자체를 기준으로 순위 매김--min 20 --max 60: 클립 길이 제한(초)--crop center: 액션 추적 대신 정적 중앙 자르기--no-captions: 자막을 절대 입히지 않음;--facecam off: 웹캠 스택 없음--vision: 로컬 Ollama 재순위 및 제목 (실험적;127.0.0.1:11434와만 통신)--force: 마지막 실행의 클립을 덮어씀;--no-cache: 캐시된 분석 무시 다른 설정으로 재실행하면 분석이 비디오 옆에 캐시되어 몇 초 만에 완료됩니다.
- 고지 사항. 자막이나 제목이 있는 경우 한 번 말합니다: 자막은 기계 전사(faster-whisper, 로컬)이고 제목은 로컬 비전 모델에서 제공됩니다. 둘 다 잘못될 수 있으므로 게시 전에 확인해야 합니다.
예시
- "어젯밤 스트리밍에서 쇼츠 5개 만들어 줘, ~/Videos/obs/에 있어" → 1단계, 폴더 전달,
--count 5드라이 런, 표 보여줌, 렌더링, 설명. - "왜 로딩 화면을 골랐어?" →
report.json열기, 해당 클립의components표시 (높은card값은 정적 카드 페널티가 발동했지만 큰 소리 시작점이 여전히 이겼음을 의미),--min-score 0.6또는--configTOML에서 더 높은w_card제안. - "그냥 무엇을 자를지 보여줘, 렌더링은 하지 마" → 1~3단계만 수행.
제한 사항
- 대본 중심의 순간(액션 없는 농담)은 설계상 낮은 점수를 받습니다. 이 도구는 액션을 우선시하며, 음성은 보너스입니다.
- 액션 바는 두 게임에서 보정되었습니다. 본 적 없는 게임은 요청한 것보다 적은 클립을 반환할 수 있습니다. 강제로
--min-score 0을 사용하지 말고 그대로 알려줍니다. - 1080p60 소스는 시간당 약 100초 동안 분석됩니다. 여러 시간 분량의 파일은 대기 시간이 필요하며, 멈추는 것이 아닙니다.
- 이 스킬은 클립을 편집하거나, 썸네일을 선택하거나, 어디에도 게시하지 않습니다. 게시는 사용자의 단계입니다.
문제 해결
- 종료 코드 2: 잘못된 입력 (경로 누락, 지원되지 않는 파일, 비디오가 없는 폴더). CLI의 메시지를 표시합니다.
- 종료 코드 3: ffmpeg 또는 ffprobe 누락. 1단계에서 사용자 OS에 맞는 설치 명령을 출력합니다.
- 종료 코드 1: 렌더링된 항목 없음. 드라이 런 JSON에서
warnings를 읽습니다. 일반적으로below_floor입니다. - 자막이 입혀지지 않고 사이드카
.ass파일로 생성됨: ffmpeg 빌드에 libass가 없음 (기본 Homebrew 포뮬러). PATH에ffmpeg-full빌드를 추가하면 해결되며, 다른 모든 기능은 정상 작동합니다. --vision이 효과가 없음: Ollama가 실행 중이 아니거나 비전 모델이 없음. 액션 전용으로 계속 실행되며 하나의 경고를 남깁니다.