원클릭으로
capture-youtube
Create a literature note from a YouTube video — fetch metadata, summarize content, and link to existing vault notes.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Create a literature note from a YouTube video — fetch metadata, summarize content, and link to existing vault notes.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Pull the latest changes from the upstream openbrain-claude-starter repo, diff against this vault's infrastructure, and interactively apply each change with user approval.
Genericize vault improvements and open a PR against the upstream openbrain-claude-starter repo — strips personal data, diffs, and creates a GitHub PR automatically after PII review.
Discovery pass across Gmail, Google Calendar, Slack, and Fathom to find organizations not yet captured in + Atlas/Organizations/. Stages candidates in + Inbox/org-candidates/ for review. Mirrors /sync-people, but for organizations rather than people.
Produce today's daily briefing across all Google Calendars, Gmail accounts, Slack workspaces, and Asana. Writes to + Atlas/Daily/YYYY-MM-DD.md and surfaces anything that needs the user's attention today. Safe to re-run — refreshes the `## Morning brief` section in place.
Draft a follow-up email or Slack message for a given person or thread, using the correct account. Never sends.
Scan sent messages across configured Google and Slack accounts to derive a personalized writing-style profile (email vs Slack, by audience size), then update CLAUDE.md §6 in place. Run after initial bootstrap or anytime you want to refresh.
| name | capture-youtube |
| description | Create a literature note from a YouTube video — fetch metadata, summarize content, and link to existing vault notes. |
$1: a YouTube URL (e.g. https://www.youtube.com/watch?v=... or https://youtu.be/...).Extract metadata via yt-dlp. Run yt-dlp --dump-json '<url>' and parse the JSON output for:
title field.channel or uploader field.upload_date field (format YYYYMMDD, convert to YYYY-MM-DD).description field.chapters array (each has start_time and title). Convert start_time seconds to M:SS or H:MM:SS.duration field (seconds).Use /usr/bin/python3 for JSON parsing (the system Python — avoid asdf-managed python which may not be configured in this repo).
Fallback: If yt-dlp is not installed, fall back to oEmbed (https://www.youtube.com/oembed?url=<url>&format=json) via WebFetch for title and channel, then inform the user that brew install yt-dlp is needed for full captures.
Extract transcript. Run yt-dlp --write-auto-sub --sub-lang en --skip-download --sub-format vtt -o '/tmp/yt-transcript' '<url>' to download auto-generated English subtitles. Then parse the VTT file to extract clean text (strip timestamps, VTT tags, and deduplicate repeated lines). Use /usr/bin/python3 for parsing.
If no English auto-subs are available, try --sub-lang en --write-sub for manual subs. If neither exists, skip the transcript and note its absence.
Important: Do not include the raw transcript in the note body. Use it to generate the Summary and Key ideas sections.
Generate filename. Convert the video title to kebab-case: lowercase, replace spaces and special characters with hyphens, collapse consecutive hyphens, strip leading/trailing hyphens. Limit to 60 characters. The file path is + Sources/<kebab-slug>.md.
Check for duplicates. Grep + Sources/ for the YouTube video URL. If a note already exists for this URL, inform the user and offer to update the existing note instead. Do not create a duplicate.
Search for related vault notes. Extract 3–5 topic keywords from the video title and description. Use Grep to search across + Atlas/ and + Spaces/ for those keywords (file names and content). Collect up to 10 candidate matches.
Present to the user. Show the extracted metadata (title, channel, date, description summary) and the list of potentially related vault notes. Ask via AskUserQuestion:
Write the literature note. Create the file at the path from step 3 with:
Frontmatter:
title: "<video title>"
source: "YouTube"
author: "<channel name>"
url: "<original YouTube URL>"
published: <YYYY-MM-DD>
accessed: <today YYYY-MM-DD>
tags:
- literature
- video
Body:
# <video title>
## Summary
<!-- 2-4 sentences synthesized from the transcript, description, and chapters -->
## Key ideas
- <bullet per main point, derived from transcript content>
## Chapters
<!-- Only include if chapters were found in step 1 -->
- `0:00` — <chapter title>
- ...
## Quotes
<!-- Notable direct quotes from the transcript; omit section if none -->
## My take
<!-- Left blank for the user -->
## Related
- [[<linked note>]]
Clean up. Remove any temporary files created in /tmp/ (VTT subtitle files).
Confirm output. Tell the user the file path and a one-line summary of what was captured.
+ Sources/<!-- TODO: add summary after watching -->.