en un clic
youtube-collector
// 유튜브 채널을 등록하고 새 컨텐츠를 수집하여 자막 기반 요약을 생성하는 skill. 사용자가 (1) 유튜브 채널 등록/관리를 요청하거나, (2) 등록된 채널의 새 영상 수집을 요청하거나, (3) 유튜브 영상 요약을 요청할 때 사용. 데이터는 .reference/ 폴더에 YAML 형식으로 저장됨.
// 유튜브 채널을 등록하고 새 컨텐츠를 수집하여 자막 기반 요약을 생성하는 skill. 사용자가 (1) 유튜브 채널 등록/관리를 요청하거나, (2) 등록된 채널의 새 영상 수집을 요청하거나, (3) 유튜브 영상 요약을 요청할 때 사용. 데이터는 .reference/ 폴더에 YAML 형식으로 저장됨.
| name | youtube-collector |
| description | 유튜브 채널을 등록하고 새 컨텐츠를 수집하여 자막 기반 요약을 생성하는 skill. 사용자가 (1) 유튜브 채널 등록/관리를 요청하거나, (2) 등록된 채널의 새 영상 수집을 요청하거나, (3) 유튜브 영상 요약을 요청할 때 사용. 데이터는 .reference/ 폴더에 YAML 형식으로 저장됨. |
등록된 유튜브 채널의 새 컨텐츠를 수집하고 자막 기반 요약을 생성.
필수 패키지:
pip install google-api-python-client youtube-transcript-api pyyaml
API 키 설정: 보안을 위해 API 키는 사용자 홈 디렉토리에 저장됨.
# API 키 설정 (대화형)
python3 scripts/setup_api_key.py
# 또는 직접 지정
python3 scripts/setup_api_key.py --api-key YOUR_API_KEY
# 현재 설정 확인
python3 scripts/setup_api_key.py --show
설정 파일 경로:
~/.config/youtube-collector/config.yaml%APPDATA%\youtube-collector\config.yaml채널 URL 또는 핸들로 등록:
# 핸들로 등록
python3 scripts/register_channel.py --channel-handle @channelname --output-dir .reference/
# URL로 등록
python3 scripts/register_channel.py --channel-url "https://youtube.com/@channelname" --output-dir .reference/
결과: .reference/channels.yaml에 채널 정보가 추가됨.
스크립트가 영상 목록 조회 + 자막 수집 + YAML 파일 저장을 자동으로 처리:
# 특정 채널 수집
python3 scripts/collect_videos.py --channel-handle @channelname --output-dir .reference/ --max-results 10
# 등록된 모든 채널 수집
python3 scripts/collect_videos.py --all --output-dir .reference/
결과: .reference/contents/{channel_handle}/{video_id}.yaml 파일들이 생성됨.
수집 결과 JSON에서 새로 추가된 영상 확인 후, 각 영상의 YAML 파일에 summary 필드 추가:
summary:
source: "transcript" # 또는 "description" (자막 없을 때)
content: |
## 서론
- 문제 제기 또는 주제 소개
- 영상의 목적/배경
## 본론
- 핵심 내용 상세 설명
- 해결책, 방법론, 예시 등
- 주요 포인트별 정리
## 결론
- 핵심 요약
- 시사점 또는 다음 단계
요약 생성 기준:
transcript.available: true → 자막 기반 요약, summary.source: "transcript"transcript.available: false → 설명 기반 요약, summary.source: "description"수집된 컨텐츠 확인:
.reference/contents/ 폴더 구조 확인| 옵션 | 설명 |
|---|---|
--channel-handle | 채널 핸들 (@username) |
--channel-url | 채널 URL |
--channel-id | 채널 ID (UC...) |
--output-dir | 저장 디렉토리 (기본: .reference) |
| 옵션 | 설명 |
|---|---|
--channel-handle | 특정 채널 핸들 |
--channel-id | 특정 채널 ID |
--all | channels.yaml의 모든 채널 처리 |
--output-dir | 저장 디렉토리 (기본: .reference) |
--max-results | 채널당 최대 수집 개수 (기본: 10) |
--language | 자막 우선 언어 (기본: ko) |
--no-skip-existing | 기존 파일 덮어쓰기 |
상세 스키마: references/data-schema.md
video_id: "abc123"
title: "영상 제목"
published_at: "2025-12-10T10:00:00Z"
url: "https://youtube.com/watch?v=abc123"
thumbnail: "https://..."
description: "영상 설명..."
duration: "PT10M30S"
collected_at: "2025-12-13T15:00:00Z"
transcript:
available: true
language: "ko"
text: "자막 전체..."
summary:
source: "transcript"
content: |
## 서론
- 영상의 배경 및 목적
## 본론
- 핵심 내용 1
- 핵심 내용 2
## 결론
- 핵심 요약
| 상황 | 안내 메시지 |
|---|---|
| API 키 미설정 | "YouTube Data API 키가 필요합니다. python3 scripts/setup_api_key.py로 설정해주세요." |
| 채널 미등록 | "등록된 채널이 없습니다. 먼저 채널을 등록해주세요." |
| 패키지 미설치 | "필요한 패키지를 설치해주세요: pip install google-api-python-client youtube-transcript-api pyyaml" |
| API 할당량 초과 | "YouTube API 할당량이 초과되었습니다. 내일 다시 시도해주세요." |
지금까지의 작업을 한 번에 출하한다 — 커밋 → push → PR 생성 → squash merge. "commit push pr squash merge", "ship it", "출하해줘", "PR 만들고 머지해줘", "커밋푸시 PR 스쿼시", "변경사항 commit push 후 pr 생성하고 squash merge" 등 commit+push+PR+merge를 한 번에 끝내려는 의도에서 트리거된다. 커밋만/푸시만 원하면 commit skill을 쓴다.
한 프로젝트에서 사용자가 Claude Code에 입력한 프롬프트·작업 이력을 분석해 (1) 사용 패턴 정량화, (2) 사용자의 개발 철학 추출(근거 인용), (3) 그 철학을 렌즈로 한 메타 시스템(하니스·게이트·CI·프로세스) audit, (4) 우선순위가 매겨진 개선점 발굴을 수행한다. 트리거 — "내 프롬프트 분석해줘", "claude code 사용 패턴 분석", "내 개발 철학 추출", "메타 시스템 점검/audit", "하니스 개선점 발굴", "내가 입력한 프롬프트 기반으로 개선점 파악" 및 유사 의도.
사용자에게 Discord DM을 전송한다. 메세지 내용을 입력받아 봇을 통해 개인 메세지를 보낸다.
비즈니스 메일/답장 초안을 작성할 때 적용하는 글쓰기 매너. "초안 작성", "메일 작성", "답변 작성", "회신", "메일 써줘", "draft email", "reply" 등 메일 관련 작성 요청에 트리거된다.
로컬 오디오 파일(m4a 등)을 한국어로 전사하는 skill. "전사해줘", "받아쓰기", "음성 파일 텍스트로", "transcribe", "음성 받아적어줘", "녹음 파일 변환" 등 오디오 → 텍스트 변환 요청에 트리거된다.
gogcli를 사용하여 Gmail 메일을 검색, 조회, 발송하는 skill. "메일 검색해줘", "이메일 보내줘", "gmail search", "메일 확인해줘", "최근 메일", "메일 답장", "gmail send", "메일 보내줘", "안 읽은 메일" 등 Gmail 관련 요청에 트리거된다.