본문으로 건너뛰기
cccskills
무료GitHub에 공개

youtube

Analyze a YouTube video and create a vault note from its transcript. Use this skill whenever a YouTube URL is pasted — even with casual commentary like "check this out" or "interesting talk." Also triggers on "youtube", "take notes from this video", "summarize this video", or any YouTube link (youtube.com, youtu.be) regardless of surrounding context.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구YouTube
설치 방법 보기

포함된 파일(3)

  • SKILL.md6.2 KB
  • agents/video-noter.md5.5 KB
  • scripts/fetch_youtube.py8.0 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

<Purpose> Extract transcript and metadata from a YouTube video, then synthesize it into a vault-formatted post note. Uses youtube-transcript-api for transcript and yt-dlp for rich metadata (with oEmbed fallback). </Purpose>

<Use_When>

  • User shares a YouTube URL and wants notes taken
  • User says "take notes from this video"
  • User pastes a YouTube link with /youtube
  • User wants to add a video's insights to the vault </Use_When>

<Do_Not_Use_When>

  • User wants to watch or download the video itself
  • User has a local video file (not YouTube)
  • Video has no transcript/captions at all
  • User wants to process an existing vault note (use /process) </Do_Not_Use_When>

<Execution_Policy>

  • Extract first, synthesize second, integrate third
  • Always check vault for existing notes on the same video before creating
  • Create note as type: post with processing_status: inbox
  • The note is a starting point — user can /process it later for deeper engagement </Execution_Policy>
<Steps>

Stage 1: EXTRACT

Parse the YouTube URL/ID from $ARGUMENTS. If no URL provided, ask the user.

Run the extraction script. Redirect stdout to a temp file (stderr has progress messages that break piping):

SKILL_DIR="${CLAUDE_SKILL_DIR}"
YT_OUTPUT="$SKILL_DIR/_output.json"
uv run "$SKILL_DIR/scripts/fetch_youtube.py" "VIDEO_URL" --lang en > "$YT_OUTPUT"

Then read $YT_OUTPUT with the Read tool to get the JSON. Clean up the file after use.

The JSON contains:

  • title, channel, duration, upload_date, description, chapters
  • transcript.full_text, transcript.segments, transcript.language
  • transcript.error (null if success)

If transcript.error is not null: inform the user and stop. No note without content.

If transcript is very long (>50,000 chars): warn the user this is a long video. Chunk the transcript for the agent if needed — send first 40,000 chars with a note about total length. For very long videos (>2hrs), consider suggesting the user watch key sections instead.

Stage 2: SYNTHESIZE

Read the agent definition:

Read("${CLAUDE_SKILL_DIR}/agents/video-noter.md")

Search the vault for existing notes related to the video's topics using the MCP tool:

search_notes(query="KEYWORD", limit=20)

Or fall back to Grep if MCP is unavailable:

Grep(pattern="KEYWORD", path="notes/", glob="*.md", head_limit=20)

Launch the video-noter agent:

Agent(
  subagent_type="general-purpose",
  model="sonnet",
  run_in_background=false,
  prompt="You are Video Noter. Follow these instructions exactly:

  [INSERT FULL CONTENT OF agents/video-noter.md HERE]

  VIDEO METADATA:
  - Title: [title]
  - Channel: [channel]
  - Duration: [duration]
  - Upload date: [upload_date]
  - Chapters: [chapters if any]
  - Description: [first 500 chars of description]

  EXISTING VAULT NOTES ON RELATED TOPICS:
  [List any matching notes found in grep]

  TRANSCRIPT:
  [full_text or chunked text]

  Produce the note body following the Output Format. Do NOT include frontmatter —
  only the body starting from the # title line."
)

Stage 3: INTEGRATE

  1. Generate timestamp ID:
date +%Y%m%d%H%M%S
  1. Format the upload_date for frontmatter (YYYYMMDD → YYYY-MM-DD)

  2. Check for duplicate notes:

grep -rl "VIDEO_TITLE" notes/ --include="*.md" | head -5
  1. Create the note file with frontmatter + agent output:
---
id: YYYYMMDDHHMMSS
type: post
processing_status: inbox
author: Channel Name
link: "https://www.youtube.com/watch?v=VIDEO_ID"
created_date: YYYY-MM-DD
updated_date: YYYY-MM-DD
---

[AGENT OUTPUT HERE — starts with # title and 🏷️Tags line]

Place the note in notes/ under the most appropriate topic subfolder:

  • ML/AI content → notes/ml/
  • Startup/business → notes/startup/
  • Finance → notes/finance/
  • Design → notes/design/
  • Psychology → notes/psychology/
  • General/unclear → notes/
  1. Report to user:
    • Note path and title
    • Number of concepts suggested for extraction
    • Any related vault notes found
    • Remind: "Run /process on this note when you're ready to deepen it"
</Steps>

<Tool_Usage>

  • Bash: Run fetch_youtube.py script (via uv run), generate timestamps, search vault
  • Read: Read agent definition, read existing vault notes for context
  • Write: Create the post note in vault
  • Agent: Delegate synthesis to video-noter agent (sonnet)
  • Grep/Glob: Search vault for duplicates and related notes
  • TodoWrite: Track progress through stages </Tool_Usage>
<Examples> <Good> User: /youtube https://www.youtube.com/watch?v=abc123 1. Extract → transcript (12 min video, 3400 words) + metadata (title, channel, chapters) 2. Search vault → found 2 related notes on the topic 3. Agent synthesizes → 6 themed sections, 4 questions, 3 concept suggestions 4. Create note → notes/ml/(Post) Video Title.md 5. Report: "Created note with 6 sections. Found connections to [[Existing Note 1]] and [[Existing Note 2]]. 3 concepts could become Term notes. Run /process when ready." </Good> <Bad> User: /youtube https://www.youtube.com/watch?v=abc123 - Creates note that is just a chronological transcript summary - Misses connections to existing vault notes - Doesn't check for duplicates - Places note in wrong folder </Bad> </Examples>

<Escalation_And_Stop_Conditions>

  • No transcript available: Inform user, suggest manual notes while watching
  • Transcript in wrong language: Try other available languages, report what's available
  • yt-dlp fails for metadata: Fall back to oEmbed (basic title/channel only)
  • Video extremely long (>3hrs): Warn user, offer to process first N minutes only
  • Duplicate note exists: Show existing note, ask if user wants to update or create new </Escalation_And_Stop_Conditions>

$ARGUMENTS

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Analyze a book (EPUB/PDF) and generate detailed chapter-by-chapter notes with extracted key concepts. Use when given a book file path to process.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tuan3w/obsidian-vault-agent412026년 3월 30일 업데이트

course

무료

Process an online course into detailed vault notes — one per lecture, with slides and transcripts synthesized. Use this skill whenever the user shares a course URL, syllabus page, or lecture playlist and wants structured notes from it. Also triggers on "process this course", "take notes on these lectures", "course notes", any university course page, or when someone pastes a link to a course with multiple lectures/sessions. Even if the user just says "check out this course" or drops a .edu link with a schedule — use this skill.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tuan3w/obsidian-vault-agent412026년 3월 30일 업데이트

Deep, iterative, multi-source research that explores a topic from multiple perspectives, detects contradictions, and produces a comprehensive vault note with fact-level citations and a confidence map. Use this skill whenever the user says /deep-research, "deep research X", "research X thoroughly", "investigate X deeply", "I need to really understand X", or wants research that goes beyond a quick web search. Also use when the user wants to understand a complex, contested, or multi-faceted topic, compare competing approaches with evidence, or build a comprehensive mental model they can trust for decisions. This is heavier than /research — it searches web, academic papers, Reddit, and the vault, then loops through exploration and critique rounds until the evidence base is solid. When in doubt between /research and /deep-research, prefer this one if the topic is complex, contested, or the user wants depth over speed.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tuan3w/obsidian-vault-agent412026년 3월 30일 업데이트

init

무료

Initialize an Obsidian vault with the agent-ready Zettelkasten system — creates directory structure, templates, CLAUDE.md, MCP config, and hooks

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tuan3w/obsidian-vault-agent412026년 3월 30일 업데이트

lecture

무료

Extract transcript and key slides from a local video file, then create a vault-formatted lecture note. Use this skill whenever a user provides a local video file (.mp4, .mov, .mkv, .avi, .webm) and wants notes from it. Triggers on "lecture", "take notes", "I have a recording of", "class video", "transcribe this presentation", "process this video for notes", or /lecture. Works with any language — auto-detects transcript language.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tuan3w/obsidian-vault-agent412026년 3월 30일 업데이트

Use when searching for academic papers related to a topic, finding papers similar to one already in the vault, or discovering research gaps. Triggers on "find papers", "related papers", "paper search", "literature", "what papers should I read about X".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tuan3w/obsidian-vault-agent412026년 3월 30일 업데이트

tuan3w의 스킬 모두 보기

이 스킬의 문제 신고