agentleFS
tuan3wtuan3w/obsidian-vault-agent/skills/youtube/SKILL.md

youtube

Skill39 starsChanged 8 months agoMITView on GitHub

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.

36 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use tiktok, linkedin and 2 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • G-HunterAiSkill

    tiktok

    TikTok platform integration. Manage videos, view analytics, and track engagement.

    Also in 5 projects that use this

  • kkoppenhaverSkill

    linkedin

    Write LinkedIn posts in Keanan's voice. Use when drafting LinkedIn content, creating professional posts, or sharing builder-focused insights. Triggers include requests to "write a LinkedIn post", "draft something for LinkedIn", "help me post on LinkedIn", or any LinkedIn content creation. Generates upbeat, builder-centric content mixing practical how-tos with candid humor.

    Also in 3 projects that use this

  • OpenAISkill

    email

    Email sending integration guidance — Resend (native Vercel Marketplace) with React Email templates. Covers API setup, transactional emails, domain verification, and template patterns. Use when sending emails from a Vercel-deployed application.

    Also in 3 projects that use this

  • SentrySkill

    skill-creator

    Create new agent skills following the Agent Skills specification. Use when asked to "create a skill", "add a new skill", "write a skill", "make a skill", "build a skill", or scaffold a new skill with SKILL.md. Guides through requirements, writing, registration, and verification.

    Also in 4 projects that use this

The file

Show its rules and text

We split this skill into the rules it gives an agent

14 rules. 0 are common, 11 are distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 28 edited versions we read keep these.

  • 11

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Always check vault for existing notes on the same video before creating

    line 35
  2. Distinctive:

    Create note as type: post with processing_status: inbox

    line 36
  3. Distinctive:

    Run the extraction script.

    line 46
  4. Distinctive:

    Read the agent definition:

    line 70
  5. Distinctive:

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

    line 75
  6. Distinctive:

    Check for duplicate notes:

    line 123
  7. Distinctive:

    Create the note file with frontmatter + agent output:

    line 128
  8. Very specific:

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

    line 144
  9. Very specific:

    Bash: Run fetch_youtube.py script (via uv run), generate timestamps, search vault

    line 161
  10. Distinctive:

    Read: Read agent definition, read existing vault notes for context

    line 162
  11. Distinctive:

    Write: Create the post note in vault

    line 163
  12. Distinctive:

    Grep/Glob: Search vault for duplicates and related notes

    line 165
  13. Distinctive:

    Search vault → found 2 related notes on the topic

    line 173
  14. Very specific:

    Create note → notes/ml/(Post) Video Title.md

    line 175

“Common” is measured: kept by at least 6 in 10 of the 28 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
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

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.