Testimonial Clips logo

Testimonial Clips

Community
bam-bam-2
testimonial-clips

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

Overview

Publisherbam-bam-2
Repositorysolo-skills
Skill nametestimonial-clips
Stars
366
Forks
87
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by bam-bam-2 on GitHub. Read the source before you install it.

Installation

Install the Testimonial Clips AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/bam-bam-2/solo-skills/tree/main/skills/testimonial-clips
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/bam-bam-2/solo-skills.git /tmp/solo-skills
mkdir -p .claude/skills
cp -r /tmp/solo-skills/skills/testimonial-clips .claude/skills/testimonial-clips
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Testimonial Clips in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Testimonial Clips on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Testimonial Clips is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

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

  • 녹화 파일을 읽고 잘라낸 클립을 새로 만듭니다. 원본은 수정하지 않습니다.
  • 남의 발언을 편집하는 작업입니다. 공개 전 당사자 동의를 받으세요.
  • ffmpeg을 로컬에서 돌립니다.

후기 클립 만들기

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

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

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

bash
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를 타임스탬프째로 파싱해 클라이언트 발화만 키워드로 훑는다.

python
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초).

bash
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. 검수

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

bash
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

Frequently asked questions

What does the Testimonial Clips AI skill do?

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

Why use Testimonial Clips on TypingMind?

Because you install it once and use it with any model. Testimonial Clips is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Testimonial Clips in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/bam-bam-2/solo-skills/tree/main/skills/testimonial-clips. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Testimonial Clips?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Testimonial Clips?

As many as you like. As long as a model supports skills, you can use Testimonial Clips with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Testimonial Clips AI skill free?

Yes. It is published on GitHub by bam-bam-2 under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇