Skip to content
Content
Skill

/testimonial-clips

줌 녹화에서 클라이언트 후기 구간을 뽑아 자막 붙은 숏폼(릴스·쇼츠)으로 만들 때 읽을 것. "후기 클립 만들어줘", "이 미팅에서 후기 될 만한 거 잘라줘" 요청을 처리한다.

BOOST
From plugin
solo-skills
36539 skills
Install
$ npx -y skills add bam-bam-2/solo-skills --skill testimonial-clips --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/testimonial-clips

Context preview

The summary Claude sees to decide when to auto-load this skill.

줌 녹화에서 클라이언트 후기 구간을 뽑아 자막 붙은 숏폼(릴스·쇼츠)으로 만들 때 읽을 것. "후기 클립 만들어줘", "이 미팅에서 후기 될 만한 거 잘라줘" 요청을 처리한다.

SKILL.md

testimonial-clips.SKILL.md
name: testimonial-clips
description: 줌 녹화에서 클라이언트 후기 구간을 뽑아 자막 붙은 숏폼(릴스·쇼츠)으로 만들 때 읽을 것. "후기 클립 만들어줘", "이 미팅에서 후기 될 만한 거 잘라줘" 요청을 처리한다.

> **이 스킬이 시스템에 하는 일 (설치 전 확인)** > > - 녹화 파일을 읽고 잘라낸 클립을 새로 만듭니다. **원본은 수정하지 않습니다.** > - **남의 발언을 편집하는 작업입니다.** 공개 전 당사자 동의를 받으세요. > - `ffmpeg`을 로컬에서 돌립니다.

후기 클립 만들기

줌 자문/미팅 녹화에서 **클라이언트가 스스로 말한 긍정 평가**를 뽑아 숏폼으로 만든다. 2026-09월 A 대표님·B 원장님 두 건으로 검증된 절차다.

0. 먼저 판단할 것 — 클라이언트가 화면에 나오는가

**이게 전체 구성을 가른다.** 다운로드 전에 프레임을 뽑아 확인한다.

ffmpeg -ss <구간> -i full.mp4 -frames:v 1 -vf scale=300:-2 /tmp/chk.jpg

| 상황 | 구성 | |---|---| | **얼굴 나옴** | 영상을 주인공으로. 얼굴 중심 크롭 + 하단 자막 | | **카메라 꺼짐** | 영상 버림. **브랜드 인용 카드 + 오디오 파형 + 자막** |

⚠️ 줌 `shared_screen_with_speaker_view`는 **말하는 사람 타일로 전환**된다. 클라이언트가 카메라를 껐으면 **정작 그가 말하는 구간이 전부 검은 화면**이다. 갤러리 뷰도 마찬가지다. 화면공유가 없으면 한쪽이 통째로 검다.

1. 녹화·전사록 받기

Zoom S2S OAuth — 자격증명과 다운로드 토큰 절차는 `advisory-minutes` 스킬 참조. `download_url`에는 별도의 `download_access_token`이 필요하다.

2. 후기 구간 찾기

VTT를 타임스탬프째로 파싱해 **클라이언트 발화만** 키워드로 훑는다.

keys=['좋았','감사','도움','달라졌','자신감','해결','성장','바뀌','이뤘','배웠','몰랐']
for ts, sp, body in cues:
    if sp != '밤밤' and any(k in body for k in keys) and len(body) > 15:
        print(f"[{ts}] {body}")

**고르는 기준**

  • ⭐ **밤밤이 유도한 답이 아니라 클라이언트가 스스로 꺼낸 말**만 쓴다
  • **비교가 들어간 발언이 가장 세다** — "다른 걸 해봤는데 이건 다르더라" 류
  • 그 사람의 직업·맥락이 묻어난 문장 (예: *"진료실에서 듣는 거랑은 다르니까"*)
  • 밤밤 자랑이 섞인 구간은 잘라낸다
  • 앞뒤 문맥을 붙여 **완결된 한 덩어리**로 만든다. 40~90초

메타 파일로 정리한다: `번호|시작|길이|제목`

3. 단어 단위 재전사 — 줌 자막을 쓰지 않는다

**줌 자체 자막은 고유명사·숫자가 심하게 깨진다.** (`fimbam`→밤밤, `긱백`→겟백, `커피 채취`→커피챗, `오만원 단가가 오만원으로`)

맥에 `mlx_whisper`가 깔려 있다(애플 실리콘 최적화, 맥미니에서 클립당 10~15초).

ffmpeg -ss <시작> -i full.mp4 -t <길이> -vn -ac 1 -ar 16000 -c:a pcm_s16le a1.wav
mlx_whisper a1.wav --model mlx-community/whisper-large-v3-mlx --language ko \
  --word-timestamps True --output-format json --output-dir /tmp/wj --output-name w1

4. 카라오케 자막(ASS) 생성

단어별로 색을 바꾼 라인을 여러 개 깔아 하이라이트가 이동하는 효과를 낸다.

  • 청크: 세로 17자 / 가로 28~30자, 단어 간격 0.9초 이상이면 끊는다
  • 강조색 `&H0035F0F5&`(형광 연두), 기본 `&HFFFFFF&`
  • `\pos()`로 고정, `\fad(60,60)`
  • **`subtitles=...:force_style=`은 쓰지 말 것** — 쉼표를 필터 구분자로 먹어 파싱이 깨진다.

스타일을 ASS 파일에 직접 박고 `ass=파일.ass`로 붙인다

5. 합성

얼굴이 나올 때

crop=<얼굴중심>,scale=1080:1279,eq=brightness=0.12:contrast=1.16,
pad=1080:1920:0:200:<브랜드색>,ass=자막.ass
  • 위 여백에 **후크 인용문 + 이름 배지**를 ASS `Hook`/`Tag` 스타일로 얹는다
  • 밤 촬영이면 밝기·대비 보정을 반드시 넣는다

얼굴이 없을 때

[1:a]showwaves=s=1080x200:mode=cline:colors=<강조색>@0.75,format=yuva420p,
     colorkey=black:0.18:0.06[wv];
[0:v]scale=1080:1920[bg];[bg][wv]overlay=0:830[bw];[bw]ass=자막.ass
  • 배경은 브랜드 그라데이션 카드(HTML→PNG 렌더)
  • `showwaves` + `colorkey`로 파형만 남겨 얹으면 화면이 산다

**레이아웃은 층으로 완전히 분리한다.** 후크(상단) / 파형·영상(중앙) / 자막(하단). 겹치면 둘 다 안 읽힌다. 실제로 두 건 모두 위치를 2~3번 다시 잡았다.

가로(1280×720)와 세로(1080×1920) 두 벌을 뽑는다.

6. 검수

프레임을 여러 개 뽑아 **가로로 이어붙여 한 번에** 본다.

for t in 15 20 50; do ffmpeg -ss $t -i c1.mp4 -frames:v 1 /tmp/f$t.jpg; done
magick /tmp/f15.jpg /tmp/f20.jpg /tmp/f50.jpg -resize x680 +append /tmp/pv.jpg

확인 항목 — 자막이 후크를 덮지 않는가 / 파형이 자막을 가리지 않는가 / 어두워서 얼굴이 안 보이지 않는가 / 화면 밖으로 넘치지 않는가

7. ⚠️ 발행 전 반드시

**클라이언트 동의를 받는다.** 자문 계약서 제11조에 절차가 있다 — **건별로** 공개 범위(구체 수치까지 쓸지)·실명 여부·사용처를 함께 정하고, 언제든 철회 가능.

**얼굴이 나오는 클립은 특히 그렇다.**

그리고 **매출 수치는 카드에 박지 않는다.** 발언이 전사 기반이라 부정확할 수 있고, 동의 범위를 벗어날 수 있다. *"노력은 줄고 수입은 늘었습니다"*처럼 정성 표현으로 간다.

주의

  • ffmpeg 빌드에 **libass가 없으면 자막을 못 굽는다.** 맥미니 ffmpeg가 최소 빌드라 안 된다.

전사는 맥미니(빠름), **렌더는 로컬**로 나눈다

  • 한글 파일명을 `while read`로 돌리면 인코딩이 깨진다. **번호로 루프**를 돌고 나중에 이름을 붙인다
  • 전사 오류 교정 사전을 만들어 자막 생성 시 일괄 치환한다

관련: `advisory-minutes` · `measured-ui-callouts` · `macmini-offload`

Read more
Ships withsolo-skills

1인 사업가 생산성 키트 — 직원 없이 58개를 자동화했고, 그중 바로 쓸 수 있는 AI 에이전트 스킬 38개(+실행 스크립트 19개)를 공개합니다

Get the whole plugin

Other skills on solo-skills.

advisory-minutes
Skill

advisory-minutes

겟백 1:1 자문 세션(A 대표·B 원장)이 끝난 뒤 줌 녹화 전사록을 받아 노션 코칭 대시보드에 회의록을 올리고, 할 일 보드 등록·대시보드 문구 갱신·클라이언트 카톡 통보까지 처리할 때 읽을 것. "B 원장님 자문했어 노션에…

book-pdf
Skill

book-pdf

마크다운 원고를 실제 책처럼 보이는 PDF/EPUB 전자책으로 만들 때 사용. 표지, 타이틀 페이지, 판권(콜로폰) 페이지, 실제 쪽번호가 달린 목차, 장마다 러닝헤더가 붙는 본문까지 갖춘 '책스러운' 구성이 필요할 때 (단순…

community-launch
Skill

community-launch

온라인 유료 커뮤니티 개설 전체 프로세스를 지원하는 에이전트 조직 스킬. 커뮤니티 기획부터 모집 카피, 노션 DB 세팅, 운영 SOP까지 한번에 처리. 오케스트레이터가 인터뷰를 진행하고 4개 전문 에이전트가 결과물을 순서대로…

daangn-search
Skill

daangn-search

당근마켓 웹에서 넓은 지역을 훑어 매물을 찾을 때 사용. 당근 웹 검색은 "동 하나"로만 되기 때문에 구·시·전국 단위로 찾으려면 지역코드를 순회해야 한다. 대형가전·노트북처럼 매물이 드물어 한 동네에서는 안 나오는 물건을 찾을 때.