Agent Skills: YouTube → atomic notes

Given a YouTube URL, fetch its transcript and extract atomic notes into an Obsidian vault. Use when handed a YouTube link to mine for ideas, or asked to "turn this video into atomic notes / atoms".

UncategorizedID: fredoliveira/obsidian-skills/youtube-to-atoms

Install this agent skill to your local

pnpm dlx add-skill https://github.com/fredoliveira/agents/tree/HEAD/skills-experimental/youtube-to-atoms

Skill Files

Browse the full folder contents for youtube-to-atoms.

Download Skill

Loading file tree…

skills-experimental/youtube-to-atoms/SKILL.md

Skill Metadata

Name
youtube-to-atoms
Description
Given a YouTube URL, fetch its transcript and extract atomic notes into an Obsidian vault. Use when handed a YouTube link to mine for ideas, or asked to "turn this video into atomic notes / atoms".

YouTube → atomic notes

Purpose

Turn one YouTube video into a source note plus a set of atomic notes in an Obsidian vault. The unit of extraction is a solid, transferable idea or concept — not a summary.

The note style (what an atomic note is, frontmatter, linking, a worked example) is fully codified in the bundled reference.md — this skill is self-contained and does not depend on any particular vault existing beforehand.

Configuration

The vault root is the YT_VAULT environment variable, defaulting to ~/Documents/obsidian/yt. The skill reads/writes three subfolders (created automatically):

  • $YT_VAULT/Transcripts/ — fetched transcript (provenance)
  • $YT_VAULT/Sources/ — one source note per video
  • $YT_VAULT/Atoms/ — the atomic notes

To target a different vault, set YT_VAULT before invoking (e.g. export YT_VAULT=~/notes/myvault).

Instructions

1. Fetch the transcript

Run the bundled script with the URL the user gave you:

python3 "${CLAUDE_SKILL_DIR}/fetch_transcript.py" "<youtube url>"

It prints the absolute path of the transcript markdown file (or an ERROR: line if the video has no English captions, or if YouTube throttled the request — relay that to the user and stop). If a transcript for that video already exists, it prints the existing path.

Requires yt-dlp (python3 -m pip install yt-dlp). Auto-generated captions are used when no human captions exist — they extract fine.

2. Read the transcript IN FULL

Read the printed file completely (page through with offset/limit if it's long — many videos run for hours). Do not extract from a partial read. The frontmatter holds url, channel, duration; body paragraphs are prefixed with **[MM:SS]** timestamps.

3. Learn the style, then extract

Read reference.md (in this skill's directory) — it is the authoritative guide for note shape, linking, and the worked example. Then extract atomic notes from the transcript following it. The essentials:

  • Idea-driven, NO target count. Capture every distinct, solid, transferable idea the video genuinely contains — could be 2, could be 20+. Never pad to a number; never cut a real idea. Thin/promotional videos may yield very few.
  • The bar: a real, transferable insight or concept. Skip sponsor reads, biography, small talk, and pure mechanics / play-by-play summary.
  • One idea per note; declarative full-sentence titles (the filename is the claim).
  • Always [[wikilink]] every person and organization on every mention, plus concepts and 2–4 reused topics — even unresolved. These anchor the graph.
  • Source + clickable timestamp go in frontmatter, never in the body.

4. Write the files

Per the formats in reference.md:

  • Each atom → $YT_VAULT/Atoms/<the claim>.md
  • One source note → $YT_VAULT/Sources/<Source Note Title>.md, listing every atom under ## Atomic notes extracted. Every atom's source: must exactly match this title.

Use today's date for the created: field.

5. Mark the transcript processed

Edit the transcript file: change status: unprocessed to status: processed.

6. Report

Tell the user the source note title, how many atoms you wrote, and their titles. Offer to run an indexing pass (e.g. an index-atomic-notes skill, if available) to weave the new atoms' [[links]] into Topics/ maps of content.

Notes

  • Batches: this skill is the per-video unit — drive it once per URL for multiple videos.
  • Garbled caption names: auto-captions often misspell names; canonicalize people/org names to their correct spelling and flag any you're unsure about.
  • Adapting: if a user's vault uses different conventions (tag names, folder names), keep the principles in reference.md and adjust the specifics.