← ClaudeAtlas

yt-quizlisted

YouTube URL을 입력받아 자막을 파싱하고 핵심 내용 요약 + 개념 이해 4지선다 퀴즈를 생성한다. "/yt-quiz", "유튜브 퀴즈", "YouTube 요약" 요청에 사용.
GeonheeYe/multi-agent-dotfiles · ★ 3 · AI & Automation · score 57
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문제로 줄인다. - 개념 이해를 테스트하는 질문을 만든다. - 좋은