yt-quizlisted
Install: claude install-skill GeonheeYe/multi-agent-dotfiles
# /yt-quiz
YouTube URL을 입력받아 자막을 파싱하고, 핵심 내용 요약 + 개념 이해 4지선다 퀴즈를 생성한다.
## 실행 순서
### 1. Video ID 추출
사용자가 입력한 URL에서 정규식으로 video ID를 추출한다.
지원 형식:
- `https://www.youtube.com/watch?v=VIDEO_ID`
- `https://youtu.be/VIDEO_ID`
- `https://www.youtube.com/embed/VIDEO_ID`
추출 실패 시 "올바른 YouTube URL을 입력해주세요. (지원 형식: youtube.com/watch?v=, youtu.be/, youtube.com/embed/)"를 출력하고 종료한다.
### 2. 자막 가져오기
Bash로 아래 python3 인라인 스크립트를 실행한다. `VIDEO_ID` 자리에 추출한 video ID를 넣는다:
```bash
python3 -W ignore - VIDEO_ID <<'EOF'
from youtube_transcript_api import YouTubeTranscriptApi
import json, sys, warnings
warnings.filterwarnings('ignore')
api = YouTubeTranscriptApi()
video_id = sys.argv[1]
lang = 'en'
try:
transcript = api.fetch(video_id, languages=['ko'])
lang = 'ko'
except:
try:
transcript = api.fetch(video_id, languages=['en'])
except Exception as e:
print(json.dumps({'error': str(e)}))
sys.exit(0)
snippets = list(transcript)
text = ' '.join([s.text for s in snippets])
print(json.dumps({'text': text, 'lang': lang, 'count': len(snippets)}))
EOF
```
스크립트 출력 결과를 JSON으로 파싱한다:
- `error` 키가 있으면 → "이 영상에는 자막이 없어 학습 퀴즈를 생성할 수 없습니다."를 출력하고 종료한다.
- `text` 길이가 100자 미만이면 → "자막 내용이 너무 짧아 퀴즈를 생성하기 어렵습니다."를 출력하고 종료한다.
### 3. 요약 및 퀴즈 생성
자막 텍스트를 바탕으로 다음 기준에 따라 요약과 퀴즈를 생성한다:
**전처리:**
- `lang`이 `en`이면 한국어로 번역한 뒤 처리한다.
**요약 기준:**
- 영상의 핵심 내용을 3~5줄로 요약한다.
- 각 줄은 독립적인 핵심 포인트를 담는다.
**퀴즈 기준:**
- 자막 내용에서 핵심 개념을 골라 퀴즈를 5문제 만든다. 내용이 빈약하면 3문제로 줄인다.
- 개념 이해를 테스트하는 질문을 만든다.
- 좋은