一键导入
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 职业分类
| 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 -->.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.