Agent skill

Youtube Notetaker

by sickn33 in sickn33/agentic-awesome-skills

Turn YouTube talks into local study notes with slides, transcripts, editable annotations, and a markdown-backed viewer.

MITAuto-check passedDocuments & Office

Install Youtube Notetaker

skills CLI
$ npx skills add sickn33/agentic-awesome-skills --skill youtube-notetaker -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install sickn33/agentic-awesome-skills youtube-notetaker --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/sickn33/agentic-awesome-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/youtube-notetaker .claude/skills/youtube-notetaker && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
youtube-notetaker
GitHub stars
47k
Used in
1 other repo
Token cost
~2.3k tokens
SKILL.md length
997 words
Files
12 (incl. scripts)
Skills in repo
1,497
Repo updated
First seen
Licence
MIT

At a glance

Turn YouTube talks into local study notes with slides, transcripts, editable annotations, and a markdown-backed viewer.

  • Works in 8 steps: Resolve the id and check embeddability → Download video + subtitles → Detect candidate slide timestamps → …
  • Tasks that involve Slides and decks
  • SKILL.md covers When to Use, Architecture (read this first), Requirements and Adding a video — the pipeline, plus 4 more sections
  • Runs Python and Shell scripts from its folder; calls python3, bash and pip; reaches youtube.com

What it does

Youtube Notetaker is an agent skill from sickn33/agentic-awesome-skills. Turn YouTube talks into local study notes with slides, transcripts, editable annotations, and a markdown-backed viewer.

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 13 other files, including scripts (for example `scripts/contact_sheet.py`, `scripts/detect_slides.sh` and `scripts/download.sh`).

It sits in Documents & Office, covering Slides and decks, Study guides and flashcards and Markdown. It works with YouTube. The repository describes itself as: AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,400+ agentic skills. Includes… The licence is MIT.

When your agent uses it

  • Tasks that involve Slides and decks
  • Tasks that involve Study guides and flashcards
  • Tasks that involve Markdown

Example prompts

  • “/youtube-notetaker”

Requirements

  • Python 3
  • A Bash shell

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Resolve the id and check embeddability
  2. Download video + subtitles
  3. Detect candidate slide timestamps
  4. Build a contact sheet and CURATE
  5. Extract the curated slides at full quality and install to _media
  6. Build the transcript
  7. Write notes and assemble the markdown file
  8. Serve and verify (always do this)

What it can do on your machine

Read from SKILL.md and the folder at commit b84d35a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 10 files in scripts/ (Python and Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • python3
    • bash
    • pip

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • youtube.com

    Also links to:

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Youtube Notetaker loads about 2.3k tokens when it runs. Until then it costs about 34 tokens; SKILL.md has 997 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~34
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from sickn33/agentic-awesome-skills at commit b84d35a, republished under its MIT licence (© sickn33). 997 words, ~2,346 tokens.

Download SKILL.mdSave it as .claude/skills/youtube-notetaker/SKILL.md (or your agent's skills folder). This skill also uses 11 other files; get the full folder from GitHub.
name
youtube-notetaker
description
Turn YouTube talks into local study notes with slides, transcripts, editable annotations, and a markdown-backed viewer.
category
video
risk
safe
source
official
source_repo
dair-ai/dair-academy-plugins
source_type
official
date_added
2026-06-19
author
DAIR.AI
license
MIT
license_source
https://github.com/dair-ai/dair-academy-plugins/blob/main/README.md#license
tags
dair-academy, ai, workflow

YouTube Notetaker

When to Use

Use when this workflow matches the user request: >

Source: dair-ai/dair-academy-plugins (MIT).

Build a personal library of YouTube talks you study with. Each video becomes one plain markdown file: slide snapshots at their timestamps, a full timestamped transcript, and editable notes. A small bundled server renders the library as an interactive deep-dive in the browser. No database, no cloud service. Everything is files on disk you fully own.

Architecture (read this first)

The markdown library is the single source of truth. The artifact is a thin HTML shell that fetches from the server and writes notes back. Never hardcode video data into the HTML.

  • Library: a plain folder, set by VIDEO_LIBRARY_DIR (default ~/video-deepdives/).
    • One markdown file per video, filename slug = YouTube id (e.g. RtywqDFBYnQ.md).
    • Frontmatter holds video metadata + a slides array.
    • Body holds the full transcript as [HH:MM:SS] text lines.
    • _media/ holds slide images, namespaced per video as <youtube_id>-slide-NN.jpg to avoid collisions between videos.
  • Server: scripts/serve.py, a single stdlib + PyYAML file. Start it with:
    python3 scripts/serve.py --dir ~/video-deepdives --port 8000
    It serves the artifact at / and a small API the artifact talks to:
    • GET /api/video-deepdives (front page fetches this) lists every video.
    • GET /api/video-deepdives/<id> returns one video {meta, body}.
    • GET /api/video-deepdives/_media/<file> serves a slide image.
    • PATCH /api/video-deepdives/<id> with {fields:{slides:[...]}} writes notes back.
    • It picks up new videos automatically the moment a markdown file exists. Adding a video means writing a markdown file + media; you almost never touch the HTML.
    • The /api/video-deepdives URL namespace is local to the bundled server.
  • Artifact: reference/artifact.html, served by serve.py at /. A clean reference copy; only rewrite it if the user wants a UI change. For new videos, leave it alone.

Requirements

  • yt-dlp and ffmpeg on PATH (download + frame/scene extraction).
  • Python 3 with Pillow (contact sheet) and PyYAML (markdown file + server).
    pip install yt-dlp pillow pyyaml      # ffmpeg via your package manager

Adding a video — the pipeline

All helper scripts are in scripts/. setup.sh creates a private, unpredictable scratch directory; copy the printed SCRATCH path into a shell variable, then copy final assets into the library. Set VIDEO_LIBRARY_DIR once per shell if you don't want the default. Do not use em dashes (—) or arrows (→) in notes/titles.

1. Resolve the id and check embeddability
bash scripts/setup.sh "<youtube_url_or_id>"

Prints the 11-char YTID, the scratch dir, the target library path, and whether YouTube embedding is allowed (oembed 200) or blocked (oembed 401, e.g. some university talks). If blocked, inline playback won't work but the artifact degrades gracefully to an "open at this moment on YouTube" link, so proceed normally.

Copy the exact unpredictable path printed by the command before continuing:

SCRATCH="/path/printed/by/setup.sh"
2. Download video + subtitles
bash scripts/download.sh "<YTID>" "$SCRATCH"

Uses yt-dlp to grab the video (≤720p is plenty for slide frames) and the best available subtitles (manual if present, else auto-captions) as .vtt. Also fetches title/uploader.

3. Detect candidate slide timestamps
bash scripts/detect_slides.sh "$SCRATCH/video.mp4" "$SCRATCH"

Runs ffmpeg scene detection (select='gt(scene,0.3)') and writes scene_times.txt (seconds). 0.3 is a good default; lower it (0.2) for subtle slide decks, raise it (0.4) for busy video.

4. Build a contact sheet and CURATE
python3 scripts/contact_sheet.py "$SCRATCH/video.mp4" "$SCRATCH/scene_times.txt" "$SCRATCH/contact.jpg"

Read contact.jpg (labeled with index + timestamp). This is the human-judgment step: keep frames that are real content slides; drop talking-head shots, transitions, duplicates, and blurry mid-animation frames. Save the kept timestamps (seconds) to $SCRATCH/keep.txt, one per line. Typical talk yields 15-25 slides.

5. Extract the curated slides at full quality and install to _media
python3 scripts/extract_slides.py <YTID> "$SCRATCH/video.mp4" "$SCRATCH/keep.txt" > "$SCRATCH/slides.json"

Extracts each kept timestamp at 1280px wide, JPEG, and copies them into $VIDEO_LIBRARY_DIR/_media/ as <YTID>-slide-01.jpg, -02.jpg, … (numbered in time order). Progress goes to stderr; a clean slides.json scaffold prints to stdout, so redirect it to a file as shown, then fill in title and note.

Tip: talks are often a slide + speaker-cam composite, and speakers flip back and forth, so the same slide appears at several timestamps. Keep the cleanest instance of each, and re-anchor each slide's t to where it is actually discussed in the transcript (better "play from here" UX).

Show full SKILL.md (366 more words)Show less
6. Build the transcript
python3 scripts/vtt_to_transcript.py "$SCRATCH"/*.vtt "$SCRATCH/transcript.txt"

Parses the VTT into clean, de-duplicated [HH:MM:SS] text lines (YouTube auto-captions repeat rolling text; the script collapses it). This becomes the markdown body.

7. Write notes and assemble the markdown file

For each kept slide, write a 1-3 sentence note grounded in the transcript around that timestamp (don't invent claims). Then assemble:

python3 scripts/write_library_item.py \
  --id <YTID> \
  --title "Talk title" \
  --speaker "Name, Role, Org" \
  --tags tag1,tag2,tag3 \
  --slides "$SCRATCH/slides.json" \
  --transcript "$SCRATCH/transcript.txt"

Writes $VIDEO_LIBRARY_DIR/<YTID>.md with correct frontmatter + body.

8. Serve and verify (always do this)
python3 scripts/serve.py --dir "$VIDEO_LIBRARY_DIR" --port 8000 &
scripts/verify.sh <YTID>                 # defaults to http://127.0.0.1:8000

verify.sh curls the collection list, the item, the first slide image, and the artifact, asserting HTTP 200 and that the new id appears in the index. Then open http://127.0.0.1:8000/#/<YTID> in a browser to confirm slides + transcript + notes render.

Markdown file shape (reference)

markdown
---
id: RtywqDFBYnQ
title: Memory and dreaming for self-learning agents
youtube_id: RtywqDFBYnQ
speaker: Mahesh, Product Manager, Platform team at Anthropic
source_url: https://www.youtube.com/watch?v=RtywqDFBYnQ
slide_count: 19
created: '2026-05-25'
tags: [anthropic, memory, agents]
slides:
- idx: 1
  t: 55.7                 # seconds (float ok), used for seeking
  mmss: 00:55             # display label
  title: Agent primitives have evolved
  note: One to three sentences grounded in the transcript at this timestamp.
  img: /api/video-deepdives/_media/RtywqDFBYnQ-slide-01.jpg
# ... more slides
---
## Transcript
[00:00:08] Hello, everyone...
[00:00:11] ...

Notes:

  • idx can be sparse/non-contiguous; the artifact sorts slides by t, so ordering is by timestamp, not idx.
  • img is always a /api/video-deepdives/_media/<file> URL (served by serve.py), never base64.
  • Slide note is what the user edits in the UI; PATCH writes the whole slides array back.

Gotchas

  • Embedding disabled (oembed 401): inline player is blocked by the video owner. Not a bug; the artifact shows an "open at this moment on YouTube" link instead. Mention it to the user.
  • Image collisions: always namespace media <YTID>-slide-NN.jpg. Never reuse bare slide-NN.jpg for a new video.
  • Auto-caption noise: rolling YouTube captions duplicate text across cues; use the provided VTT parser, don't dump raw VTT into the body.
  • Don't touch existing videos when adding a new one. Each video is an independent file.
  • Server not picking up a video: confirm the .md file is directly inside --dir (not a subfolder) and the filename is <YTID>.md.

What makes this portable

  • No orchestrator / no database. Storage is a plain folder of markdown + images.
  • One env var (VIDEO_LIBRARY_DIR) controls where the library lives.
  • One small server file (serve.py, stdlib + PyYAML) renders everything and handles note write-back. Drop it anywhere Python runs.
  • The markdown files are portable: readable in Obsidian or any editor, and the frontmatter is standard YAML.

Limitations

  • Requires the upstream tool, account, API key, or local setup when the workflow names one.
  • Does not authorize destructive, production, paid, or external-message actions without explicit user approval.
  • Validate generated artifacts or recommendations against the user's real sources before treating them as final.

© sickn33, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 11 other files (scripts) in skills/youtube-notetaker of sickn33/agentic-awesome-skills.

  • SKILL.md
  • reference/artifact.html
  • scripts/contact_sheet.py
  • scripts/detect_slides.sh
  • scripts/download.sh
  • scripts/extract_slides.py
  • scripts/scratch_safety.sh
  • scripts/serve.py
  • scripts/setup.sh
  • scripts/verify.sh
  • scripts/vtt_to_transcript.py
  • scripts/write_library_item.py

Open the folder on GitHubat commit b84d35a

Used in 1 other repository

We found 5 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in sickn33/agentic-awesome-skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Youtube Notetaker next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Youtube Notetaker compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Youtube Notetaker this skillsickn33/agentic-awesome-skills47k1 repos~2.3kAutomated safety check: PassMIT
Multimodal Extractionswyxio/skills176—~922Automated safety check: PassMIT
MarkitdownImCa0/just-laws78114 repos~3.2kAutomated safety check: NotesMIT
Gbro Series Vocabpyang5166/gbro-series-vocab163—~1.1kAutomated safety check: PassMIT
Markdown Converterintellectronica/agent-skills2954 repos~492Automated safety check: PassCC0-1.0
Threads Carouselitchernetski/threads-carousel-claude-skill110—~3.5kAutomated safety check: PassMIT

Similar skills

  • Given a local video or video URL, downloads the media if needed, extracts slide frames and key moments, transcribes the audio, and writes a Markdown timeline that interleaves screenshots with the…

    176 GitHub stars~922 tokensUpdated 6 days ago
    Documents & OfficeAuto-check passed
  • Markitdown

    ImCa0/just-laws

    Convert files and office documents to Markdown. An agent skill from ImCa0/just-laws.

    781 GitHub starsUsed in 14 repos~3.2k tokens
    Documents & OfficeAuto-check: notes
  • Gbro Series Vocab

    pyang5166/gbro-series-vocab

    追剧学英语 / Learn English vocabulary from TV series. An agent skill from pyang5166/gbro-series-vocab.

    163 GitHub stars~1.1k tokensUpdated 2 mo ago
    Documents & OfficeAuto-check passed
  • Markdown Converter

    intellectronica/agent-skills

    Convert documents and files to Markdown using markitdown. An agent skill from intellectronica/agent-skills.

    295 GitHub starsUsed in 4 repos~492 tokens
    Documents & OfficeAuto-check passed
  • Threads Carousel

    itchernetski/threads-carousel-claude-skill

    Convert text posts into visual carousel images or presentations for Threads, Instagram, LinkedIn, TikTok, YouTube.

    110 GitHub stars~3.5k tokensUpdated 5 mo ago
    Documents & OfficeAuto-check passed
  • Youtube Fetcher

    JimmySadek/youtube-fetcher-to-markdown

    Retrieve transcripts from YouTube, Instagram, TikTok, X, Vimeo and other video sites, summarize or analyze what was said (and shown on screen), or save an Obsidian-ready Markdown knowledge-base note…

    485 GitHub stars~3.1k tokensUpdated 4 days ago
    AI & LLM EngineeringAuto-check passed

More from sickn33/agentic-awesome-skills

All 1,497 skills in this repo
  • Liuguang Banlan UI

    sickn33/agentic-awesome-skills

    Implements an interface in one of two named color modes, iridescent white or colorful black, from a parameterized starter that reports measured color intensity.

    47k GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check passed
  • User Thoughts Memory

    sickn33/agentic-awesome-skills

    Saves a user's project decisions, rules and preferences into a project-local mdbase so later sessions and other agents can recover the intent.

    47k GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check passed
  • Using LWC Memory and Graphs

    sickn33/agentic-awesome-skills

    Keeps project decisions, research and verified results available across coding-agent sessions through LWC memory, a document Wiki graph and a CodeGraph code index.

    47k GitHub starsUsed in 1 repo~2k tokens
    Auto-check passed
  • Find Complementary Founders

    sickn33/agentic-awesome-skills

    Guides an agent through assessing its own owner for cofounder fit, publishing an approved profile, and ranking complementary profiles other agents published for their owners.

    47k GitHub starsUsed in 1 repo~4.8k tokens
    Auto-check passed
  • Whatsapp Cloud API

    sickn33/agentic-awesome-skills

    Integracao com WhatsApp Business Cloud API (Meta). An agent skill from sickn33/agentic-awesome-skills.

    47k GitHub starsUsed in 2 repos~4.5k tokens
    Auto-check passed
  • Cline Pilot

    sickn33/agentic-awesome-skills

    Acts as a proxy for the Cline CLI, dispatching coding tasks one at a time, monitoring runs by hard evidence, relaying decisions to you and learning per-project preferences.

    47k GitHub starsUsed in 1 repo~4.6k tokens
    Auto-check passed

Works with

Questions about Youtube Notetaker

What does Youtube Notetaker do?

Turn YouTube talks into local study notes with slides, transcripts, editable annotations, and a markdown-backed viewer. Youtube Notetaker is an agent skill from sickn33/agentic-awesome-skills. Turn YouTube talks into local study notes with slides, transcripts, editable annotations, and a markdown-backed viewer.

When should I use Youtube Notetaker?

Youtube Notetaker fits situations like: tasks that involve Slides and decks; tasks that involve Study guides and flashcards; tasks that involve Markdown.

How do I install Youtube Notetaker in Claude Code?

Run `npx skills add sickn33/agentic-awesome-skills --skill youtube-notetaker -a claude-code`. Or copy the skill folder (skills/youtube-notetaker in sickn33/agentic-awesome-skills) into .claude/skills/youtube-notetaker in your project. Claude Code loads it when a task matches its description.

How do I install Youtube Notetaker in Codex?

Run `npx skills add sickn33/agentic-awesome-skills --skill youtube-notetaker -a codex`. Or copy the skill folder (skills/youtube-notetaker in sickn33/agentic-awesome-skills) into .agents/skills/youtube-notetaker in your project. Codex loads it when a task matches its description.

Can I use Youtube Notetaker in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add sickn33/agentic-awesome-skills --skill youtube-notetaker -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/youtube-notetaker, .gemini/skills/youtube-notetaker, .github/skills/youtube-notetaker and .opencode/skills/youtube-notetaker in your project.

What does Youtube Notetaker need to run?

Going by SKILL.md and its folder, Youtube Notetaker needs Python and a shell for the scripts in its folder and the command-line tools its instructions call (python3, bash and pip). Our summary lists: Python 3; A Bash shell.

Does Youtube Notetaker access the network?

SKILL.md names 2 domains. In commands or code: youtube.com; the agent is likely to contact it when it follows the instructions. As links in the text: github.com. This is read from the text; nothing was executed.

Is Youtube Notetaker safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Youtube Notetaker use?

Youtube Notetaker is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Youtube Notetaker use?

About 2.3k tokens (SKILL.md is roughly 9.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Youtube Notetaker?

Skills that share tags, products or a category with Youtube Notetaker: Multimodal Extraction (swyxio/skills, 176 stars), Markitdown (ImCa0/just-laws, 781 stars), Gbro Series Vocab (pyang5166/gbro-series-vocab, 163 stars) and Markdown Converter (intellectronica/agent-skills, 295 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Youtube Notetaker?

sickn33 (a GitHub user) maintains it in sickn33/agentic-awesome-skills, which has 47,405 GitHub stars. The repository holds 1,497 skills in this directory. The repository was last updated on October 9, 2026.

Source: sickn33/agentic-awesome-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.