testimonial-clips

SkillMedia

Lets your agent pull client praise from Zoom recordings and turn it into captioned short-form videos.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the testimonial-clips skill

About this capability

Read this when extracting client testimonial segments from Zoom recordings and turning them into captioned short-form videos (Reels/Shorts). Handles requests like "make testimonial clips" or "cut anything testimonial-worthy from this meeting".

What this skill tells your AI

The instructions your AI receives, as published by bam-bam-2/solo-skills in skills/testimonial-clips/SKILL.md and read by ahel’s review.

이 스킬이 시스템에 하는 일 (설치 전 확인)

  • 녹화 파일을 읽고 잘라낸 클립을 새로 만듭니다. 원본은 수정하지 않습니다.
  • 남의 발언을 편집하는 작업입니다. 공개 전 당사자 동의를 받으세요.
  • 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

Signals

GitHub stars
365
Forks
90
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
testimonial-clips
Source
github.com/bam-bam-2/solo-skills