Multimodal Extraction
swyxio/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…
Turn YouTube talks into local study notes with slides, transcripts, editable annotations, and a markdown-backed viewer.
$ npx skills add sickn33/agentic-awesome-skills --skill youtube-notetaker -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install sickn33/agentic-awesome-skills youtube-notetaker --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "youtube-notetaker" agent skill from https://github.com/sickn33/agentic-awesome-skills/tree/main/skills/youtube-notetaker into .claude/skills/youtube-notetaker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "youtube-notetaker", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/sickn33/agentic-awesome-skills/tree/main/skills/youtube-notetakerType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add sickn33/agentic-awesome-skills --skill youtube-notetaker -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install sickn33/agentic-awesome-skills youtube-notetaker --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sickn33/agentic-awesome-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/youtube-notetaker .agents/skills/youtube-notetaker && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "youtube-notetaker" agent skill from https://github.com/sickn33/agentic-awesome-skills/tree/main/skills/youtube-notetaker into .agents/skills/youtube-notetaker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "youtube-notetaker", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add sickn33/agentic-awesome-skills --skill youtube-notetaker -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install sickn33/agentic-awesome-skills youtube-notetaker --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sickn33/agentic-awesome-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/youtube-notetaker .cursor/skills/youtube-notetaker && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "youtube-notetaker" agent skill from https://github.com/sickn33/agentic-awesome-skills/tree/main/skills/youtube-notetaker into .cursor/skills/youtube-notetaker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "youtube-notetaker", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/sickn33/agentic-awesome-skills.git --path skills/youtube-notetaker--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add sickn33/agentic-awesome-skills --skill youtube-notetaker -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install sickn33/agentic-awesome-skills youtube-notetaker --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sickn33/agentic-awesome-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/youtube-notetaker .gemini/skills/youtube-notetaker && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "youtube-notetaker" agent skill from https://github.com/sickn33/agentic-awesome-skills/tree/main/skills/youtube-notetaker into .gemini/skills/youtube-notetaker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "youtube-notetaker", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install sickn33/agentic-awesome-skills youtube-notetakerInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add sickn33/agentic-awesome-skills --skill youtube-notetaker -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/sickn33/agentic-awesome-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/youtube-notetaker .github/skills/youtube-notetaker && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "youtube-notetaker" agent skill from https://github.com/sickn33/agentic-awesome-skills/tree/main/skills/youtube-notetaker into .github/skills/youtube-notetaker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "youtube-notetaker", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add sickn33/agentic-awesome-skills --skill youtube-notetaker -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install sickn33/agentic-awesome-skills youtube-notetaker --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sickn33/agentic-awesome-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/youtube-notetaker .opencode/skills/youtube-notetaker && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "youtube-notetaker" agent skill from https://github.com/sickn33/agentic-awesome-skills/tree/main/skills/youtube-notetaker into .opencode/skills/youtube-notetaker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "youtube-notetaker", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
youtube-notetakerTurn 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.
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.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit b84d35a. It shows what the files ask for, not the result of running them.
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.
Ships 10 files in scripts/ (Python and Shell), which the agent can run.
Shell commands in SKILL.md call:
python3bashpipFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
youtube.comAlso links to:
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from sickn33/agentic-awesome-skills at commit b84d35a, republished under its MIT licence (© sickn33). 997 words, ~2,346 tokens.
.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.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.
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.
VIDEO_LIBRARY_DIR (default ~/video-deepdives/).RtywqDFBYnQ.md).slides array.[HH:MM:SS] text lines._media/ holds slide images, namespaced per video as <youtube_id>-slide-NN.jpg
to avoid collisions between videos.scripts/serve.py, a single stdlib + PyYAML file. Start it with:python3 scripts/serve.py --dir ~/video-deepdives --port 8000/ 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./api/video-deepdives URL namespace is local to the bundled server.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.yt-dlp and ffmpeg on PATH (download + frame/scene extraction).Pillow (contact sheet) and PyYAML (markdown file + server).pip install yt-dlp pillow pyyaml # ffmpeg via your package managerAll 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.
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"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.
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.
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.
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).
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.
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.
python3 scripts/serve.py --dir "$VIDEO_LIBRARY_DIR" --port 8000 &
scripts/verify.sh <YTID> # defaults to http://127.0.0.1:8000verify.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.
---
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.note is what the user edits in the UI; PATCH writes the whole slides array back.<YTID>-slide-NN.jpg. Never reuse bare
slide-NN.jpg for a new video..md file is directly inside --dir (not a
subfolder) and the filename is <YTID>.md.VIDEO_LIBRARY_DIR) controls where the library lives.serve.py, stdlib + PyYAML) renders everything and handles
note write-back. Drop it anywhere Python runs.© sickn33, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 11 other files (scripts) in skills/youtube-notetaker of sickn33/agentic-awesome-skills.
Open the folder on GitHubat commit b84d35a
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.
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Youtube Notetaker this skillsickn33/agentic-awesome-skills | 47k | 1 repos | ~2.3k | Automated safety check: Pass | MIT | |
| Multimodal Extractionswyxio/skills | 176 | — | ~922 | Automated safety check: Pass | MIT | |
| MarkitdownImCa0/just-laws | 781 | 14 repos | ~3.2k | Automated safety check: Notes | MIT | |
| Gbro Series Vocabpyang5166/gbro-series-vocab | 163 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Markdown Converterintellectronica/agent-skills | 295 | 4 repos | ~492 | Automated safety check: Pass | CC0-1.0 | |
| Threads Carouselitchernetski/threads-carousel-claude-skill | 110 | — | ~3.5k | Automated safety check: Pass | MIT |
swyxio/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…
ImCa0/just-laws
Convert files and office documents to Markdown. An agent skill from ImCa0/just-laws.
pyang5166/gbro-series-vocab
追剧学英语 / Learn English vocabulary from TV series. An agent skill from pyang5166/gbro-series-vocab.
intellectronica/agent-skills
Convert documents and files to Markdown using markitdown. An agent skill from intellectronica/agent-skills.
itchernetski/threads-carousel-claude-skill
Convert text posts into visual carousel images or presentations for Threads, Instagram, LinkedIn, TikTok, YouTube.
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…
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.
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.
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.
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.
sickn33/agentic-awesome-skills
Integracao com WhatsApp Business Cloud API (Meta). An agent skill from sickn33/agentic-awesome-skills.
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.
Works with
Categories
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.
Youtube Notetaker fits situations like: tasks that involve Slides and decks; tasks that involve Study guides and flashcards; tasks that involve Markdown.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.