fix(desktop-skills): Fix YAML frontmatter for Claude Desktop compatibility
- Remove 'version' field from 13 SKILL.md files - Quote descriptions containing colons (Triggers:) in 9 files - Fix 20-gtm-audit binary file (extract proper SKILL.md from ZIP) - Add missing 'description:' key in 41-jamie-brand-audit - Add new skill 44-jamie-youtube-subtitle-checker with both desktop/ and code/ versions 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,246 @@
|
||||
# 챕터 추출 패턴 가이드
|
||||
|
||||
> 정기호 원장 영상의 구조적 특징을 기반으로 챕터 타임스탬프를 추출합니다.
|
||||
|
||||
---
|
||||
|
||||
## 영상 유형별 구조
|
||||
|
||||
### Type A: 시술 소개 영상 (3-10분)
|
||||
|
||||
```
|
||||
0:00 인트로 (인사)
|
||||
└─ "안녕하세요. 제이미성형외과 정기호 원장입니다"
|
||||
|
||||
0:15~ 문제 제기 / 공감
|
||||
└─ "~로 고민하시는 분들", "~때문에 걱정"
|
||||
|
||||
0:30~ 시술 소개
|
||||
└─ "[시술명]이란", "어떤 방법", "특징"
|
||||
|
||||
1:00~ 수술 과정 / 방법
|
||||
└─ "수술은", "진행", "과정", "방법"
|
||||
|
||||
2:00~ 장점 / 효과
|
||||
└─ "장점", "효과", "결과", "좋은 점"
|
||||
|
||||
3:00~ 회복 / 주의사항
|
||||
└─ "회복 기간", "주의", "관리", "~후에"
|
||||
|
||||
마지막 20초 마무리 / CTA
|
||||
└─ "상담", "문의", "감사합니다"
|
||||
```
|
||||
|
||||
### Type B: 짧은 설명 영상 (1-3분)
|
||||
|
||||
```
|
||||
0:00 인트로
|
||||
0:10~ 핵심 설명
|
||||
0:40~ 장점/특징
|
||||
1:20~ 마무리
|
||||
```
|
||||
|
||||
### Type C: Q&A / FAQ 영상
|
||||
|
||||
```
|
||||
0:00 인트로 + 질문 소개
|
||||
0:15~ 답변 1
|
||||
0:45~ 답변 2 (있는 경우)
|
||||
1:15~ 정리 / 마무리
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 챕터 감지 키워드
|
||||
|
||||
### Primary Keywords (높은 우선순위)
|
||||
|
||||
| 챕터 유형 | 키워드 |
|
||||
|----------|--------|
|
||||
| **인트로** | "안녕하세요", "제이미성형외과", "정기호 원장" |
|
||||
| **시술 소개** | "[시술명]이란", "무엇인가요", "어떤 수술" |
|
||||
| **수술 과정** | "수술 과정", "진행", "방법은", "어떻게" |
|
||||
| **장점** | "장점", "좋은 점", "효과", "결과" |
|
||||
| **회복** | "회복 기간", "회복은", "관리", "주의사항" |
|
||||
| **마무리** | "상담", "문의", "감사합니다", "추천드립니다" |
|
||||
|
||||
### Secondary Keywords (보조)
|
||||
|
||||
| 챕터 유형 | 키워드 |
|
||||
|----------|--------|
|
||||
| **문제 제기** | "고민", "걱정", "불편", "힘든" |
|
||||
| **비교** | "차이", "비교", "vs", "다른 점" |
|
||||
| **대상** | "적합한 분", "추천", "이런 분" |
|
||||
| **비용/시간** | "시간", "기간", "비용" |
|
||||
|
||||
---
|
||||
|
||||
## 챕터 추출 알고리즘
|
||||
|
||||
### Step 1: 텍스트에서 키워드 탐지
|
||||
|
||||
```python
|
||||
def detect_chapter_candidates(subtitles, keywords):
|
||||
candidates = []
|
||||
for i, sub in enumerate(subtitles):
|
||||
text = sub['text']
|
||||
start_time = parse_start_time(sub['timestamp'])
|
||||
|
||||
for chapter_type, kw_list in keywords.items():
|
||||
for kw in kw_list:
|
||||
if kw in text:
|
||||
candidates.append({
|
||||
'time': start_time,
|
||||
'type': chapter_type,
|
||||
'keyword': kw,
|
||||
'context': text
|
||||
})
|
||||
break
|
||||
return candidates
|
||||
```
|
||||
|
||||
### Step 2: 중복 제거 및 정리
|
||||
|
||||
```python
|
||||
def deduplicate_chapters(candidates, min_gap_seconds=15):
|
||||
"""
|
||||
같은 유형의 챕터가 15초 이내에 있으면 첫 번째만 유지
|
||||
"""
|
||||
result = []
|
||||
last_by_type = {}
|
||||
|
||||
for c in sorted(candidates, key=lambda x: x['time']):
|
||||
ctype = c['type']
|
||||
if ctype in last_by_type:
|
||||
if c['time'] - last_by_type[ctype] < min_gap_seconds:
|
||||
continue
|
||||
result.append(c)
|
||||
last_by_type[ctype] = c['time']
|
||||
|
||||
return result
|
||||
```
|
||||
|
||||
### Step 3: 챕터 제목 생성
|
||||
|
||||
```python
|
||||
chapter_titles = {
|
||||
'intro': '인트로',
|
||||
'problem': '이런 고민 있으신가요?',
|
||||
'explanation': '{procedure_name}이란?',
|
||||
'procedure': '수술 과정',
|
||||
'benefits': '장점 및 효과',
|
||||
'recovery': '회복 및 관리',
|
||||
'closing': '마무리'
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 시간 형식 변환
|
||||
|
||||
### SBV → YouTube 챕터 형식
|
||||
|
||||
```python
|
||||
def sbv_to_chapter_time(sbv_time):
|
||||
"""
|
||||
"0:01:23.450" → "1:23"
|
||||
"0:00:45.120" → "0:45"
|
||||
"""
|
||||
parts = sbv_time.split(':')
|
||||
if len(parts) == 3:
|
||||
h, m, s = parts
|
||||
s = s.split('.')[0] # 밀리초 제거
|
||||
|
||||
h, m, s = int(h), int(m), int(s)
|
||||
|
||||
if h > 0:
|
||||
return f"{h}:{m:02d}:{s:02d}"
|
||||
else:
|
||||
return f"{m}:{s:02d}"
|
||||
return sbv_time
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 챕터 출력 형식
|
||||
|
||||
### YouTube 설명란용 형식
|
||||
|
||||
```
|
||||
0:00 인트로
|
||||
0:17 하이브리드 쌍꺼풀이란?
|
||||
0:33 수술 과정
|
||||
0:50 장점 및 특징
|
||||
1:10 회복 기간
|
||||
1:25 마무리
|
||||
```
|
||||
|
||||
### 상세 형식 (내부 문서용)
|
||||
|
||||
```markdown
|
||||
| 시간 | 챕터 | 감지 키워드 | 컨텍스트 |
|
||||
|------|------|------------|----------|
|
||||
| 0:00 | 인트로 | "안녕하세요" | 인사말 |
|
||||
| 0:17 | 시술 소개 | "이란" | "하이브리드 쌍꺼풀이란..." |
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 시술별 챕터 템플릿
|
||||
|
||||
### 눈 성형 영상
|
||||
|
||||
```
|
||||
0:00 인트로
|
||||
0:XX [시술명]이란?
|
||||
0:XX 수술 방법
|
||||
0:XX 장점 (자연스러움, 빠른 회복 등)
|
||||
0:XX 회복 기간 및 주의사항
|
||||
0:XX 마무리
|
||||
```
|
||||
|
||||
### 이마/리프팅 영상
|
||||
|
||||
```
|
||||
0:00 인트로
|
||||
0:XX 노화의 원인
|
||||
0:XX [시술명] 소개
|
||||
0:XX 수술 과정
|
||||
0:XX 효과 및 유지 기간
|
||||
0:XX 회복 및 관리
|
||||
0:XX 마무리
|
||||
```
|
||||
|
||||
### Q&A 영상
|
||||
|
||||
```
|
||||
0:00 인트로 및 질문 소개
|
||||
0:XX Q1. [질문1]
|
||||
0:XX Q2. [질문2]
|
||||
0:XX Q3. [질문3]
|
||||
0:XX 마무리
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Edge Cases
|
||||
|
||||
### 1. 챕터가 너무 적을 때
|
||||
|
||||
영상 길이 대비 챕터가 2개 이하면:
|
||||
- 영상을 3등분하여 강제 챕터 생성
|
||||
- "전반부", "중반부", "후반부" 사용
|
||||
|
||||
### 2. 인트로가 감지되지 않을 때
|
||||
|
||||
- 0:00에 "인트로" 강제 추가
|
||||
- 첫 번째 자막 내용으로 제목 생성
|
||||
|
||||
### 3. 짧은 영상 (1분 미만)
|
||||
|
||||
- 챕터 최소 2개만 생성
|
||||
- 0:00 인트로 + 마지막 구간
|
||||
|
||||
---
|
||||
|
||||
*Version 1.0.0 | 2025-12-23*
|
||||
@@ -0,0 +1,126 @@
|
||||
{
|
||||
"metadata": {
|
||||
"version": "1.0.0",
|
||||
"updated": "2025-12-23",
|
||||
"description": "제이미성형외과 YouTube 자막 오타 교정 사전"
|
||||
},
|
||||
|
||||
"brand_typos": {
|
||||
"데이미": "제이미",
|
||||
"재이미": "제이미",
|
||||
"제의미": "제이미",
|
||||
"제이이미": "제이미",
|
||||
"성액과": "성형외과",
|
||||
"성형과": "성형외과",
|
||||
"성현외과": "성형외과",
|
||||
"성형외가": "성형외과",
|
||||
"제이미성과": "제이미 성형외과",
|
||||
"제이미 성과": "제이미 성형외과",
|
||||
"제이미성형와과": "제이미성형외과"
|
||||
},
|
||||
|
||||
"procedure_typos": {
|
||||
"eye_surgery": {
|
||||
"쌍거풀": "쌍꺼풀",
|
||||
"쌍거플": "쌍꺼풀",
|
||||
"쌍커풀": "쌍꺼풀",
|
||||
"쌍커플": "쌍꺼풀",
|
||||
"쌍꺼플": "쌍꺼풀",
|
||||
"쌍거 풀": "쌍꺼풀",
|
||||
"매물법": "매몰법",
|
||||
"매몰밥": "매몰법",
|
||||
"메몰법": "매몰법",
|
||||
"매물밥": "매몰법",
|
||||
"눈메교정": "눈매교정",
|
||||
"눈매 교정": "눈매교정",
|
||||
"안겁하수": "안검하수",
|
||||
"안검 하수": "안검하수",
|
||||
"눈밑 지방": "눈밑지방",
|
||||
"지방재배치": "지방 재배치",
|
||||
"듀얼트임": "듀얼 트임",
|
||||
"듀얼트 임": "듀얼 트임",
|
||||
"눈섭밑": "눈썹밑",
|
||||
"눈썹 밑": "눈썹밑"
|
||||
},
|
||||
"forehead_surgery": {
|
||||
"이마 거상": "이마거상",
|
||||
"이마거상 술": "이마거상술",
|
||||
"눈섭거상": "눈썹거상",
|
||||
"눈썹 거상": "눈썹거상",
|
||||
"내시경이마": "내시경 이마",
|
||||
"내시경눈썹": "내시경 눈썹"
|
||||
},
|
||||
"anti_aging": {
|
||||
"스마 스": "스마스",
|
||||
"SMAS": "스마스",
|
||||
"smas": "스마스",
|
||||
"앞광대리프팅": "앞광대 리프팅",
|
||||
"앞 광대": "앞광대",
|
||||
"하이프": "하이푸",
|
||||
"하이 푸": "하이푸",
|
||||
"지방이식": "지방 이식",
|
||||
"자가지방": "자가 지방",
|
||||
"실리프팅": "실 리프팅"
|
||||
},
|
||||
"others": {
|
||||
"쁘띠성형": "쁘띠 성형",
|
||||
"흉터성형": "흉터 성형",
|
||||
"재수술": "재수술"
|
||||
}
|
||||
},
|
||||
|
||||
"medical_terms": {
|
||||
"요분의": "여분의",
|
||||
"수면 마취": "수면마취",
|
||||
"국소 마취": "국소마취",
|
||||
"절계": "절개",
|
||||
"절게": "절개",
|
||||
"봉헙": "봉합",
|
||||
"봉 합": "봉합",
|
||||
"회복기간": "회복 기간",
|
||||
"부기": "붓기",
|
||||
"멍이": "멍",
|
||||
"통증이": "통증",
|
||||
"마취가": "마취",
|
||||
"수술이": "수술",
|
||||
"시술이": "시술"
|
||||
},
|
||||
|
||||
"common_speech_recognition_errors": {
|
||||
"정 기호": "정기호",
|
||||
"정기 호": "정기호",
|
||||
"기호 원장": "정기호 원장",
|
||||
"하이브 리드": "하이브리드",
|
||||
"하이 브리드": "하이브리드",
|
||||
"리프 팅": "리프팅",
|
||||
"내시 경": "내시경"
|
||||
},
|
||||
|
||||
"spacing_fixes": {
|
||||
"제이미 성형외과": "제이미성형외과",
|
||||
"정기호원장": "정기호 원장",
|
||||
"수술후": "수술 후",
|
||||
"수술전": "수술 전",
|
||||
"시술후": "시술 후",
|
||||
"시술전": "시술 전"
|
||||
},
|
||||
|
||||
"official_procedure_names": [
|
||||
"퀵 매몰법",
|
||||
"하이브리드 쌍꺼풀",
|
||||
"안검하수 눈매교정술",
|
||||
"눈밑지방 재배치",
|
||||
"듀얼 트임 수술",
|
||||
"눈썹밑 피부절개술",
|
||||
"눈 재수술",
|
||||
"내시경 이마 거상술",
|
||||
"내시경 눈썹 거상술",
|
||||
"앞광대 리프팅",
|
||||
"스마스 리프팅",
|
||||
"자가 지방이식",
|
||||
"실 리프팅",
|
||||
"하이푸 리프팅",
|
||||
"쁘띠 성형",
|
||||
"흉터 성형"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,172 @@
|
||||
# YouTube 영상 정보 템플릿
|
||||
|
||||
> 이 템플릿을 기반으로 YouTube 메타데이터를 생성합니다.
|
||||
|
||||
---
|
||||
|
||||
## 추천 제목
|
||||
|
||||
### 제목 공식
|
||||
```
|
||||
[시술명] | [핵심 베네핏/키워드] | 제이미성형외과
|
||||
```
|
||||
|
||||
### 제목 예시
|
||||
- `하이브리드 쌍꺼풀 | 자연스러운 눈매의 비결 | 제이미성형외과`
|
||||
- `내시경 이마거상술 | 동안 효과의 원리 | 제이미성형외과`
|
||||
- `퀵 매몰법 | 티 안 나는 쌍꺼풀 | 제이미성형외과`
|
||||
|
||||
### 제목 작성 규칙
|
||||
- 60자 이내 (한글 기준 30자 내외)
|
||||
- 시술명을 앞부분에 배치
|
||||
- 브랜드명 "제이미성형외과" 포함
|
||||
- 과장 표현 금지
|
||||
|
||||
---
|
||||
|
||||
## 챕터 (Chapters)
|
||||
|
||||
### 기본 형식
|
||||
```
|
||||
0:00 인트로
|
||||
0:XX [섹션1]
|
||||
0:XX [섹션2]
|
||||
0:XX [섹션3]
|
||||
0:XX 마무리
|
||||
```
|
||||
|
||||
### 작성 규칙
|
||||
- 반드시 0:00으로 시작
|
||||
- 최소 3개 챕터 권장
|
||||
- 시간 형식: M:SS (예: 1:23)
|
||||
- 챕터명은 간결하게 (10자 이내)
|
||||
|
||||
---
|
||||
|
||||
## 영상 설명 (Description)
|
||||
|
||||
### 템플릿
|
||||
|
||||
```
|
||||
[시술명]에 대해 알아보세요.
|
||||
제이미성형외과 정기호 원장이 설명합니다.
|
||||
|
||||
⏱️ 타임스탬프
|
||||
{챕터_목록}
|
||||
|
||||
📋 영상 내용
|
||||
{영상_요약_2-3문장}
|
||||
|
||||
🏥 제이미성형외과
|
||||
📍 서울시 강남구 압구정로 136 EHL빌딩 3층
|
||||
📞 02-542-2399
|
||||
🌐 https://jamie.clinic
|
||||
💬 카카오톡: @제이미성형외과
|
||||
|
||||
{해시태그}
|
||||
|
||||
---
|
||||
※ 본 영상은 정보 제공 목적이며, 개인에 따라 결과가 다를 수 있습니다.
|
||||
수술 전 반드시 전문의와 상담하시기 바랍니다.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 해시태그 (Hashtags)
|
||||
|
||||
### 필수 태그
|
||||
- `#제이미성형외과`
|
||||
- `#압구정성형외과`
|
||||
|
||||
### 시술별 태그
|
||||
|
||||
| 시술 카테고리 | 권장 해시태그 |
|
||||
|--------------|--------------|
|
||||
| 눈 성형 | `#쌍꺼풀` `#눈성형` `#눈매교정` `#매몰법` |
|
||||
| 이마 성형 | `#이마거상술` `#이마성형` `#눈썹거상` `#내시경수술` |
|
||||
| 동안 성형 | `#동안성형` `#리프팅` `#안티에이징` `#스마스리프팅` |
|
||||
| 지방이식 | `#지방이식` `#자가지방` `#볼륨성형` |
|
||||
|
||||
### 해시태그 규칙
|
||||
- 3-5개 권장 (최대 15개)
|
||||
- 시술 관련 태그 우선
|
||||
- 지역 태그 포함 (`#압구정`, `#강남성형외과`)
|
||||
|
||||
---
|
||||
|
||||
## 태그 (Tags) - YouTube Studio용
|
||||
|
||||
### 브랜드 태그
|
||||
```
|
||||
제이미성형외과, Jamie Plastic Surgery, 압구정성형외과, 강남성형외과
|
||||
```
|
||||
|
||||
### 시술 태그 (예시: 눈 성형)
|
||||
```
|
||||
쌍꺼풀, 쌍꺼풀수술, 눈성형, 눈매교정, 매몰법, 절개법,
|
||||
하이브리드쌍꺼풀, 안검하수, 눈밑지방, 눈재수술
|
||||
```
|
||||
|
||||
### 일반 태그
|
||||
```
|
||||
성형외과, 성형수술, 미용성형, 정기호원장, 성형정보
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 썸네일 가이드
|
||||
|
||||
### 필수 요소
|
||||
- 정기호 원장 얼굴 또는 시술 관련 이미지
|
||||
- 시술명 텍스트 (큰 글씨)
|
||||
- 브랜드 로고 (우측 하단)
|
||||
|
||||
### 색상
|
||||
- 배경: 밝은 톤 또는 브랜드 그린 (#79A233)
|
||||
- 텍스트: 고대비 (검정 또는 흰색)
|
||||
|
||||
### 텍스트 예시
|
||||
```
|
||||
하이브리드
|
||||
쌍꺼풀
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 오타 수정 내역 리포트
|
||||
|
||||
### 형식
|
||||
```markdown
|
||||
## 오타 수정 내역
|
||||
|
||||
**총 수정 건수**: X건
|
||||
|
||||
| # | 위치 (시간) | 원본 | 수정 |
|
||||
|---|------------|------|------|
|
||||
| 1 | 0:05 | 성액과 | 성형외과 |
|
||||
| 2 | 0:12 | 쌍거풀 | 쌍꺼풀 |
|
||||
| 3 | 0:28 | 매물법 | 매몰법 |
|
||||
```
|
||||
|
||||
### 카테고리별 집계
|
||||
```markdown
|
||||
### 수정 유형별 집계
|
||||
- 브랜드명 오타: X건
|
||||
- 시술명 오타: X건
|
||||
- 의학 용어 오타: X건
|
||||
- 띄어쓰기: X건
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 출력 파일 구조
|
||||
|
||||
```
|
||||
outputs/
|
||||
├── {영상명}_corrected.sbv # 교정된 자막
|
||||
└── youtube_video_info.md # 메타데이터 패키지
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
*Version 1.0.0 | 2025-12-23*
|
||||
Reference in New Issue
Block a user