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:
2025-12-23 18:19:17 +09:00
parent 7d672110ce
commit 4d9da597ca
25 changed files with 1585 additions and 28 deletions

View File

@@ -1,6 +1,5 @@
---
name: notion-organizer
version: 1.0.0
description: Notion workspace management agent for organizing, restructuring, consolidating, and maintaining databases and pages. Use when user asks to search Notion, organize databases, clean up properties, migrate data, merge databases, audit schemas, or manage Notion content. Activates for keywords like Notion, database, knowledge base, wiki, workspace organization.
allowed-tools: mcp__notion__*, Read, Write, Edit, Bash(python:*), Bash(pip:*)
---

View File

@@ -1,7 +1,6 @@
---
name: seo-technical-audit
version: 1.0.0
description: Technical SEO auditor for crawlability fundamentals. Triggers: robots.txt, sitemap validation, crawlability, indexing check, technical SEO.
description: "Technical SEO auditor for crawlability fundamentals. Triggers: robots.txt, sitemap validation, crawlability, indexing check, technical SEO."
allowed-tools: mcp__firecrawl__*, mcp__perplexity__*, mcp__notion__*
---

View File

@@ -1,7 +1,6 @@
---
name: seo-on-page-audit
version: 1.0.0
description: On-page SEO analyzer for meta tags, headings, links, images, and Open Graph. Triggers: on-page SEO, meta tags, title tag, heading structure, alt text.
description: "On-page SEO analyzer for meta tags, headings, links, images, and Open Graph. Triggers: on-page SEO, meta tags, title tag, heading structure, alt text."
allowed-tools: mcp__firecrawl__*, mcp__perplexity__*, mcp__notion__*
---

View File

@@ -1,7 +1,6 @@
---
name: seo-local-audit
version: 1.0.0
description: Local SEO auditor for NAP consistency, Google Business Profile, citations, and LocalBusiness schema. Triggers: local SEO, Google Business Profile, GBP, NAP, citations, local rankings.
description: "Local SEO auditor for NAP consistency, Google Business Profile, citations, and LocalBusiness schema. Triggers: local SEO, Google Business Profile, GBP, NAP, citations, local rankings."
allowed-tools: mcp__firecrawl__*, mcp__perplexity__*, mcp__notion__*
---

View File

@@ -1,7 +1,6 @@
---
name: seo-schema-validator
version: 1.0.0
description: Structured data validator for JSON-LD, Microdata, and RDFa. Triggers: validate schema, structured data, JSON-LD, rich results, schema.org.
description: "Structured data validator for JSON-LD, Microdata, and RDFa. Triggers: validate schema, structured data, JSON-LD, rich results, schema.org."
allowed-tools: mcp__firecrawl__*, mcp__perplexity__*
---

View File

@@ -1,7 +1,6 @@
---
name: seo-schema-generator
version: 1.0.0
description: Schema markup generator for JSON-LD structured data. Triggers: generate schema, create JSON-LD, add structured data, schema markup.
description: "Schema markup generator for JSON-LD structured data. Triggers: generate schema, create JSON-LD, add structured data, schema markup."
allowed-tools: mcp__firecrawl__*, mcp__perplexity__*
---

View File

@@ -1,7 +1,6 @@
---
name: seo-core-web-vitals
version: 1.0.0
description: Core Web Vitals analyzer for LCP, FID, CLS, INP performance metrics. Triggers: Core Web Vitals, page speed, LCP, CLS, FID, INP, performance.
description: "Core Web Vitals analyzer for LCP, FID, CLS, INP performance metrics. Triggers: Core Web Vitals, page speed, LCP, CLS, FID, INP, performance."
allowed-tools: mcp__firecrawl__*, mcp__perplexity__*
---

View File

@@ -1,7 +1,6 @@
---
name: seo-search-console
version: 1.0.0
description: Google Search Console data analyzer for rankings, CTR, impressions, and index coverage. Triggers: Search Console, GSC, rankings, search performance, impressions, CTR.
description: "Google Search Console data analyzer for rankings, CTR, impressions, and index coverage. Triggers: Search Console, GSC, rankings, search performance, impressions, CTR."
allowed-tools: mcp__perplexity__*, mcp__notion__*
---

View File

@@ -1,6 +1,5 @@
---
name: seo-gateway-strategist
version: 1.0.0
description: Creates comprehensive SEO-focused gateway page strategies for Korean medical/service websites
license: OurDigital internal-use ONLY
---

View File

@@ -1,6 +1,5 @@
---
name: gateway-page-content-builder
version: 1.0.0
description: Systematic content generation framework for SEO-optimized gateway pages with local service focus
license: OurDigital internal-use ONLY
---

View File

@@ -1,6 +1,5 @@
---
name: ourdigital-visual-storytelling
version: 1.0.0
description: Creates sophisticated featured image prompts for OurDigital blogs (blog.ourdigital.org, journal.ourdigital.org, ourstory.day) that capture philosophical depth through minimalist visual metaphors. Specializes in translating complex essays about humanity, technology, and culture into contemplative visual narratives using Korean-Western aesthetic fusion. Use when creating blog featured images that require intellectual sophistication and conceptual abstraction.
license: MIT
---

View File

@@ -1,6 +1,5 @@
---
name: ourdigital-research-publisher
version: 1.0.0
description: |
End-to-end research-to-publication workflow for OurDigital channels. Transforms questions into comprehensive research, then Korean/English blog posts. Use when user wants to: (1) Research a topic deeply, (2) Create research papers from conversations, (3) Write blog posts for OurDigital/Ghost, (4) Execute "research to publish" workflow, (5) Save research to Notion and export to Ulysses. Triggers: "research this", "write a blog about", "publish to OurDigital", "deep dive into", "연구해줘", "블로그 작성", "포스팅 초안".
---

View File

@@ -1,6 +1,5 @@
---
name: research-to-presentation
version: 1.0.0
description: Transforms Notion research content into branded presentations through an automated workflow. Collects research from Notion pages/databases, synthesizes content to extract key topics and agenda items, creates presentation structure with slide plans, and generates branded PPT/Figma presentations. Use when converting research into meeting materials, creating data-driven presentations from Notion content, transforming documentation into executive presentations, or building slide decks from scattered research notes.
---

View File

@@ -1,8 +1,6 @@
---
name: jamie-brand-editor
version: 1.1.0
description: |
Branded content generator for Jamie Plastic Surgery Clinic (제이미성형외과). Creates new marketing content including blog posts, ad copy, social media content, and procedure pages following Jamie's brand voice and Korean medical advertising regulations. Use when generating NEW content for Jamie clinic - triggers: "write Jamie blog", "create ad copy", "draft procedure page", "제이미 블로그 작성", "광고 카피 생성". For reviewing/correcting existing content, use jamie-brand-guardian instead.
description: "Branded content generator for Jamie Plastic Surgery Clinic (제이미성형외과). Creates new marketing content including blog posts, ad copy, social media content, and procedure pages following Jamie's brand voice and Korean medical advertising regulations. Use when generating NEW content for Jamie clinic - triggers: write Jamie blog, create ad copy, draft procedure page, 제이미 블로그 작성, 광고 카피 생성. For reviewing/correcting existing content, use jamie-brand-guardian instead."
license: Internal-use Only
---

View File

@@ -1,8 +1,6 @@
---
name: jamie-brand-guardian
version: 2.8.0
description: |
Brand compliance reviewer for Jamie Plastic Surgery Clinic (제이미성형외과). Reviews, corrects, and evaluates EXISTING content for brand compliance, tone/voice alignment, and Korean medical advertising regulations. Use when given content to review - triggers: "review this content", "check brand compliance", "이 콘텐츠 검토해줘", "브랜드 적합성 평가". For generating NEW content, use jamie-brand-editor instead.
description: "Brand compliance reviewer for Jamie Plastic Surgery Clinic (제이미성형외과). Reviews, corrects, and evaluates EXISTING content for brand compliance, tone/voice alignment, and Korean medical advertising regulations. Use when given content to review - triggers: review this content, check brand compliance, 이 콘텐츠 검토해줘, 브랜드 적합성 평가. For generating NEW content, use jamie-brand-editor instead."
allowed-tools: Read, Glob, Grep, Write, Edit
---

View File

@@ -1,8 +1,8 @@
---
name: jamie-youtube-manager
description: |
YouTube Channel Manager and SEO Auditor for Jamie Plastic Surgery Clinic (제이미성형외과). Audits videos, Shorts, and playlists for SEO optimization including: metadata quality (title, description, tags), chapter timestamps, transcript accuracy, VideoObject schema validation, and internationalization settings. Evaluates video/playlist URLs and provides detailed checklists with enhancement recommendations. Use when auditing Jamie's YouTube content - triggers: "YouTube 감사", "유튜브 SEO", "video audit", "playlist check", "영상 최적화", "챕터 확인", "자막 검토". For content script writing, use jamie-brand-editor.
license: Internal-use Only
"YouTube Channel Manager and SEO Auditor for Jamie Plastic Surgery Clinic (제이미성형외과). Audits videos, Shorts, and playlists for SEO optimization including: metadata quality (title, description, tags), chapter timestamps, transcript accuracy, VideoObject schema validation, and internationalization settings. Evaluates video/playlist URLs and provides detailed checklists with enhancement recommendations. Use when auditing Jamie's YouTube content - triggers: "YouTube 감사", "유튜브 SEO", "video audit", "playlist check", "영상 최적화", "챕터 확인", "자막 검토". For content script writing, use jamie-brand-editor.
license: Internal-use Only"
---
# Jamie YouTube Manager Skill

View File

@@ -0,0 +1,244 @@
# Jamie YouTube Subtitle Editor
SBV 자막 파일 오타 교정 및 YouTube 메타데이터 생성 도구.
## Quick Commands
```bash
# SBV 파일 오타 교정
python scripts/sbv_corrector.py --input "subtitle.sbv" --output "subtitle_corrected.sbv"
# 챕터 추출
python scripts/chapter_extractor.py --input "subtitle.sbv"
# 전체 워크플로우 (교정 + 챕터 + 메타데이터)
python scripts/process_subtitle.py --input "subtitle.sbv" --output-dir "./output"
```
## Workflow
```
[Input: SBV 자막 파일]
[1. SBV 파싱 및 텍스트 추출]
[2. 오타 자동 교정 (typo_dictionary.json)]
[3. 의학 용어 표준화]
[4. 챕터 타임스탬프 추출]
[5. YouTube 메타데이터 생성]
[Output: 교정된 SBV + youtube_video_info.md]
```
## SBV Format
```
H:MM:SS.sss,H:MM:SS.sss
자막 텍스트
0:00:05.120,0:00:08.450
안녕하세요 제이미성형외과입니다
```
## Core Functions
### SBV 파싱
```python
import re
def parse_sbv(content: str) -> list[dict]:
"""Parse SBV content into list of subtitle blocks."""
blocks = content.strip().split('\n\n')
subtitles = []
for block in blocks:
lines = block.strip().split('\n')
if len(lines) >= 2:
timestamp = lines[0]
text = '\n'.join(lines[1:])
# Extract start time
match = re.match(r'(\d+:\d+:\d+\.\d+),', timestamp)
start_time = match.group(1) if match else "0:00:00.000"
subtitles.append({
'timestamp': timestamp,
'start': start_time,
'text': text
})
return subtitles
```
### 오타 교정
```python
import json
def load_typo_dict(path: str = "references/typo_dictionary.json") -> dict:
"""Load typo correction dictionary."""
with open(path, 'r', encoding='utf-8') as f:
return json.load(f)
def correct_text(text: str, typo_dict: dict) -> tuple[str, list]:
"""Apply typo corrections and return corrected text with change log."""
corrected = text
changes = []
for wrong, right in typo_dict.items():
if wrong in corrected:
changes.append({'original': wrong, 'corrected': right})
corrected = corrected.replace(wrong, right)
return corrected, changes
```
### 챕터 추출
```python
CHAPTER_KEYWORDS = {
"intro": ["안녕하세요", "제이미성형외과", "정기호"],
"problem": ["고민", "걱정", "불편", "문제"],
"explanation": ["이란", "무엇", "어떤", "방법"],
"procedure": ["수술", "시술", "과정", "진행"],
"benefits": ["장점", "효과", "결과", "좋은"],
"recovery": ["회복", "관리", "주의", "후에"],
"closing": ["상담", "문의", "감사", "추천"]
}
def extract_chapters(subtitles: list[dict]) -> list[dict]:
"""Extract chapter timestamps from subtitles."""
chapters = []
seen_types = set()
for sub in subtitles:
for chapter_type, keywords in CHAPTER_KEYWORDS.items():
if chapter_type not in seen_types:
if any(kw in sub['text'] for kw in keywords):
# Convert to M:SS format
start = sub['start']
parts = start.split(':')
if len(parts) == 3:
h, m, s = parts
total_min = int(h) * 60 + int(m)
sec = int(float(s))
formatted = f"{total_min}:{sec:02d}"
else:
formatted = start
chapters.append({
'time': formatted,
'type': chapter_type
})
seen_types.add(chapter_type)
break
return chapters
```
### SBV 재구성
```python
def rebuild_sbv(subtitles: list[dict]) -> str:
"""Rebuild SBV content from subtitle blocks."""
blocks = []
for sub in subtitles:
blocks.append(sub['timestamp'])
blocks.append(sub['text'])
blocks.append('')
return '\n'.join(blocks)
```
### 메타데이터 생성
```python
def generate_metadata(chapters: list, changes: list, procedure_name: str = "") -> str:
"""Generate YouTube metadata markdown."""
chapter_text = '\n'.join([f"{c['time']} {c['type']}" for c in chapters])
changes_table = "| 위치 | 원본 | 수정 |\n|------|------|------|\n"
for c in changes[:10]: # Top 10 changes
changes_table += f"| - | {c['original']} | {c['corrected']} |\n"
return f"""# YouTube 영상 정보
## 추천 제목
{procedure_name} | 제이미성형외과 정기호 원장
## 챕터 (Chapters)
{chapter_text}
## 영상 설명 (Description)
⏱️ 타임스탬프
{chapter_text}
🏥 제이미성형외과
📍 서울시 강남구 압구정로 136 EHL빌딩 3층
📞 02-542-2399
🌐 https://jamie.clinic
#제이미성형외과 #{procedure_name} #압구정성형외과
## 오타 수정 내역
{changes_table}
"""
```
## 오타 사전 (typo_dictionary.json)
주요 교정 패턴:
| 카테고리 | 오타 | 정정 |
|----------|------|------|
| 브랜드 | 데이미, 재이미 | 제이미 |
| 브랜드 | 성액과, 성현외과 | 성형외과 |
| 시술 | 쌍거풀, 쌍커풀 | 쌍꺼풀 |
| 시술 | 매물법, 메몰법 | 매몰법 |
| 시술 | 이마거상 | 이마거상술 |
| 의학 | 절계, 절게 | 절개 |
| 의학 | 수면 마취 | 수면마취 |
## 공식 시술명
### 눈 성형
- 퀵 매몰법
- 하이브리드 쌍꺼풀
- 안검하수 눈매교정술
- 눈밑지방 재배치
- 듀얼 트임 수술
### 이마 성형
- 내시경 이마 거상술
- 내시경 눈썹 거상술
### 동안 성형
- 스마스 리프팅
- 자가 지방이식
- 하이푸 리프팅
## Output Files
| 파일 | 설명 |
|------|------|
| `{filename}_corrected.sbv` | 교정된 SBV 자막 |
| `youtube_video_info.md` | YouTube 메타데이터 |
| `correction_report.md` | 오타 수정 내역 |
## Quality Checklist
- [ ] 브랜드명 "제이미성형외과" 정확히 표기
- [ ] 시술명 공식 명칭으로 통일
- [ ] 챕터 0:00 인트로 포함
- [ ] 해시태그 3-5개 포함
## Reference Files
- `references/typo_dictionary.json` - 오타 교정 사전
- `references/chapter_patterns.md` - 챕터 추출 패턴
- `references/youtube_metadata.md` - 메타데이터 템플릿

View File

@@ -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*

View File

@@ -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": [
"퀵 매몰법",
"하이브리드 쌍꺼풀",
"안검하수 눈매교정술",
"눈밑지방 재배치",
"듀얼 트임 수술",
"눈썹밑 피부절개술",
"눈 재수술",
"내시경 이마 거상술",
"내시경 눈썹 거상술",
"앞광대 리프팅",
"스마스 리프팅",
"자가 지방이식",
"실 리프팅",
"하이푸 리프팅",
"쁘띠 성형",
"흉터 성형"
]
}

View File

@@ -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*

View File

@@ -0,0 +1,242 @@
---
name: jamie-subtitle-editor
description: "YouTube 자막 편집기 for Jamie Plastic Surgery Clinic. SBV 포맷 자막 파일의 오타 교정, 의학 용어 표준화, 챕터 타임스탬프 추출, YouTube 메타데이터 생성을 수행합니다. 자막 교정, subtitle 오타, SBV 편집, 챕터 추출, 유튜브 자막, caption 수정, 타임스탬프 생성 요청 시 사용하세요."
---
# Jamie YouTube Subtitle Editor Skill
> **Purpose**: SBV 자막 파일 오타 교정 및 YouTube 메타데이터 생성
> **Input**: YouTube에서 다운로드한 SBV 포맷 자막 파일
> **Output**: 교정된 SBV 파일 + YouTube 메타데이터 패키지
---
## Workflow Overview
```
[Input: SBV 자막 파일]
[1. SBV 파싱 및 텍스트 추출]
[2. 오타 자동 교정 (typo_dictionary 적용)]
[3. 의학 용어 표준화]
[4. 챕터 타임스탬프 추출]
[5. YouTube 메타데이터 생성]
[Output: 교정된 SBV + 메타데이터 패키지]
```
---
## SBV Format Specification
### SBV 구조
```
[시작시간],[종료시간]
자막 텍스트 (1줄 또는 여러 줄)
[시작시간],[종료시간]
자막 텍스트
...
```
### 시간 형식
- `H:MM:SS.sss` 또는 `M:SS.sss`
- 예: `0:00:05.120,0:00:08.450`
### 파싱 규칙
1. 빈 줄로 자막 블록 구분
2. 첫 줄: 타임스탬프 (콤마로 시작/종료 구분)
3. 나머지 줄: 자막 텍스트
---
## 오타 교정 시스템
### 1. 브랜드명 오타
| 오타 패턴 | 정정 |
|----------|------|
| 데이미, 재이미, 제의미 | 제이미 |
| 성액과, 성형과, 성현외과 | 성형외과 |
| 제이미성과 | 제이미 성형외과 |
### 2. 시술명 오타
| 오타 패턴 | 정정 |
|----------|------|
| 쌍거풀, 쌍거플, 쌍커풀 | 쌍꺼풀 |
| 매물법, 매몰밥, 메몰법 | 매몰법 |
| 눈매교정, 눈메교정 | 눈매교정술 |
| 안검하수, 안겁하수 | 안검하수 |
| 이마거상, 이마 거상 | 이마거상술 |
| 눈썹거상, 눈섭거상 | 눈썹거상술 |
| 지방재배치, 지방 재배치 | 지방재배치술 |
| 스마스, SMAS | 스마스 |
| 하이푸, 하이프 | 하이푸 |
| 듀얼트임, 듀얼 트임 | 듀얼 트임 수술 |
### 3. 일반 의학 용어 오타
| 오타 패턴 | 정정 |
|----------|------|
| 요분의 | 여분의 |
| 수면마취, 수면 마취 | 수면마취 |
| 국소마취, 국소 마취 | 국소마취 |
| 절계, 절게 | 절개 |
| 봉합, 봉헙 | 봉합 |
| 회복기간, 회복 기간 | 회복 기간 |
---
## 공식 진료과목 명칭
### 눈 성형
- 퀵 매몰법
- 하이브리드 쌍커풀
- 안검하수 눈매교정술
- 눈밑지방 재배치
- 듀얼 트임 수술
- 눈썹밑 피부절개술
- 눈 재수술
### 이마 성형
- 내시경 이마 거상술
- 내시경 눈썹 거상술
### 동안 성형
- 앞광대 리프팅
- 스마스 리프팅
- 자가 지방이식
- 실 리프팅
- 하이푸 리프팅
---
## 챕터 추출 로직
### 영상 구조 패턴 (정기호 원장 스타일)
| 섹션 | 일반적 시작 시간 | 키워드 |
|------|-----------------|--------|
| 인트로 | 0:00 | "안녕하세요", "제이미성형외과" |
| 문제 제기 | 0:15~0:30 | "고민", "걱정", "불편" |
| 시술 소개 | 0:30~1:00 | "[시술명]이란", "방법", "특징" |
| 장점/효과 | 중반부 | "장점", "효과", "결과" |
| 회복/주의사항 | 후반부 | "회복", "주의", "관리" |
| 마무리/CTA | 마지막 20초 | "상담", "문의", "감사" |
### 챕터 포맷
```
0:00 인트로
0:17 [주제1 - 문제 제기]
0:33 [주제2 - 시술 설명]
0:50 [주제3 - 장점/특징]
1:10 [주제4 - 회복/관리]
1:25 마무리
```
---
## Output Specifications
### 1. 교정된 SBV 파일
**파일명**: `{원본파일명}_corrected.sbv`
### 2. YouTube 메타데이터 패키지
**파일명**: `youtube_video_info.md`
**내용 구성**:
```markdown
# YouTube 영상 정보
## 추천 제목
[시술명] | [핵심 키워드] | 제이미성형외과
## 챕터 (Chapters)
0:00 인트로
...
## 영상 설명 (Description)
[첫 2줄 요약]
⏱️ 타임스탬프
[챕터 목록]
🏥 제이미성형외과
📍 서울시 강남구 압구정로 136 EHL빌딩 3층
📞 02-542-2399
🌐 https://jamie.clinic
#제이미성형외과 #[시술명] #압구정성형외과 #[관련태그]
## 오타 수정 내역
| 위치 | 원본 | 수정 |
|------|------|------|
| 0:05 | 성액과 | 성형외과 |
...
```
---
## Usage Examples
### 기본 사용
```
"이 SBV 자막 파일 오타 교정해줘"
"유튜브 자막 수정하고 챕터 추출해줘"
```
### 파일 업로드 후
```
"자막 파일 교정하고 YouTube 메타데이터 만들어줘"
"SBV 오타 수정 + 영상 정보 패키지 생성"
```
### 특정 요청
```
"챕터 타임스탬프만 추출해줘"
"오타 수정 내역 리포트만 줘"
```
---
## Quality Checklist
### 교정 완료 확인
- [ ] 브랜드명 "제이미성형외과" 정확히 표기
- [ ] 시술명 공식 명칭으로 통일
- [ ] 의학 용어 맞춤법 확인
- [ ] 띄어쓰기 일관성
### 챕터 확인
- [ ] 0:00 인트로 포함
- [ ] 주요 전환점 반영
- [ ] 시간 형식 통일 (M:SS)
### 메타데이터 확인
- [ ] 제목에 시술명 + 브랜드 포함
- [ ] 해시태그 3-5개
- [ ] 병원 연락처 정확
---
## Reference Files
- `references/typo_dictionary.json` - 오타 교정 사전
- `references/chapter_patterns.md` - 챕터 추출 패턴
- `references/youtube_metadata.md` - 메타데이터 템플릿
---
## Notes
- **의료광고법 고지문**: 자막 파일에는 포함하지 않음 (YouTube 설명란에만 삽입)
- **SBV 전용**: YouTube 다운로드 기본 포맷인 SBV만 지원
- **한국어 특화**: 제이미성형외과 콘텐츠 전용 오타 사전

View File

@@ -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*

View File

@@ -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": [
"퀵 매몰법",
"하이브리드 쌍꺼풀",
"안검하수 눈매교정술",
"눈밑지방 재배치",
"듀얼 트임 수술",
"눈썹밑 피부절개술",
"눈 재수술",
"내시경 이마 거상술",
"내시경 눈썹 거상술",
"앞광대 리프팅",
"스마스 리프팅",
"자가 지방이식",
"실 리프팅",
"하이푸 리프팅",
"쁘띠 성형",
"흉터 성형"
]
}

View File

@@ -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*