source-to-skill Star on GitHub
v0.5.0 Podcasts, channels, local Whisper

Turn YouTube videos, podcasts, papers and books into Claude skills.

One command distills the things you watch, listen to and read into an Agent Skill your coding agent loads on demand. Every video answer links the exact second. No API keys, no cloud, no vector database.

/plugin marketplace add michalstrnadel/source-to-skill
/plugin install source-to-skill@source-to-skill

Then: /source-to-skill <url-or-file>

Claude CodeGitHub Copilot CLIAmpany Agent Skills host

00:00 Demo

One command. A skill you can ask.

  1. ExtractCaptions, transcript or text are pulled locally and normalized with chapter offsets.
  2. ConfirmYou see the token estimate before your agent reads anything.
  3. GenerateYour agent writes a ~4k-token SKILL.md plus files it opens only when a question needs them.
  4. Ask/your-skill <question> answers with citations and &t= links.
Terminal demo: running /source-to-skill on a YouTube lecture shows extraction details, a token estimate, then the generated skill folder with SKILL.md, timestamped segment files and a cheatsheet.
Screen recording of a real run: source-to-skill extracts a 3Blue1Brown lecture, shows the token estimate, and generates an agent skill whose answers link exact timestamps in the video.

03:12 Real run

A real run, not a mock-up.

A 3Blue1Brown lecture becomes a skill in Claude Code. Ask it anything afterwards and the answer cites the transcript with a link that jumps to the exact second of the video.

05:40 Supported sources

Things you watch, hear and read.

Documentation scrapers cover API docs. source-to-skill covers learning content: lectures, talks, interviews, papers and books, each with the structure that fits it.

YouTube videos

Captions split by the video's own chapters. Captionless videos fall back to local Whisper.

segments/ · every answer links &t=
NEW

Playlists & channels

A whole course or channel, one lesson per video. update adds only new lessons.

lessons/ · course cheatsheet
NEW

Podcasts & audio

Apple Podcasts, mp3 URLs, local files, and Vimeo, SoundCloud, TED and 1000+ sites via --type audio.

local Whisper · timestamped segments

Papers

arXiv URLs download automatically. Academic sections are detected in any PDF.

methods · findings · limitations · glossary · citations

Books

EPUB with the standard library alone; PDF books take chapters from the outline.

chapters/ on demand · glossary · cheatsheet

Web articles

Readable-article extraction drops navigation and footer chrome.

thesis · key claims · highlights

GitHub repos

README and docs/ from one tarball download. No clone.

install · usage · per-area guides
NEW

Topic skills

Several sources become one skill that also records where they disagree.

one skill · where sources disagree

09:05 How it works

Deterministic extractor. Your agent writes the skill.

Python does the parts that should never vary. The model you already pay for does the distilling, following one instruction file per source type.

Pipeline: a source goes to the extractor, which writes full_text.txt and metadata.json; your agent reads them and generates SKILL.md plus on-demand files.

Cheap to query

SKILL.md stays near 4k tokens. Segment, lesson and chapter files load only when a question needs them, so a two-hour lecture doesn't cost two hours of tokens per question.

Structure, not summaries

Frameworks, decision rules, concrete numbers and quotes, shaped per source: methods and limitations for papers, chapters for books, lessons for courses.

Yours, locally

Extraction and Whisper transcription run on your machine. Skills are plain Markdown folders you can read, edit, commit and share.

12:30 Compare

Why not just paste the transcript?

Because you'd pay for the whole thing on every question, and lose it at the end of the session. Here is how the common options stack up.

Comparison as of October 2026. "Agent" means your coding agent, such as Claude Code.
Capability source-to-skill NotebookLM RAG pipeline Pasting the transcript
Runs in your coding agent Yes, loads as a skill Separate web app Only if you wire it in Yes
No API keys or extra accounts Uses the agent you have Google account, cloud upload Embedding API, vector store Yes
Timestamp deep links Every answer, exact &t= second Passage citations If you build them No
Token cost per question ~4k + only the files needed Not in your agent Retrieved chunks, plus infra The full transcript, every time
Offline-capable extraction Local files, local Whisper Cloud only With local models Depends on your agent
Persists across sessions Installed skill folder In the notebook In the index Gone with the context
Open source MIT No Varies Not applicable

Scroll the table sideways to see every column.

15:48 FAQ

Questions people actually search.

15:48How do I turn a YouTube video into a Claude skill?

Install the plugin in Claude Code (/plugin marketplace add michalstrnadel/source-to-skill, then /plugin install source-to-skill@source-to-skill) or run uvx --from git+https://github.com/michalstrnadel/source-to-skill source-to-skill install. Then run /source-to-skill with the video URL. The extractor pulls the captions, splits them by the video's own chapters and shows a token estimate; your agent writes a SKILL.md plus one segment file per chapter. Every answer links back to the exact second with &t=. Videos without captions fall back to local Whisper transcription.

16:20Can Claude Code learn from a podcast?

Yes. Pass an Apple Podcasts link, a direct mp3 URL, a local audio or video file, or any page yt-dlp supports (Vimeo, SoundCloud, TED and 1000+ more) with --type audio. It is transcribed locally with Whisper (mlx-whisper on Apple Silicon, faster-whisper elsewhere), so no API key is needed, and the transcript becomes a timestamped skill Claude Code loads on demand.

17:02Is there a NotebookLM alternative for Claude Code?

source-to-skill fills that role inside your coding agent. Instead of uploading sources to a separate cloud notebook, it turns them into Agent Skills in your skills folder, so Claude Code, Copilot CLI or Amp can consult a lecture, paper or book while it works on your code. It is open source, runs locally and needs no extra account.

17:45How do I make an agent skill from a PDF or book?

Run /source-to-skill with an arXiv URL, a PDF path or an EPUB file. Papers become a skill with a TL;DR plus methods.md, findings.md, limitations.md, glossary.md and citations.md. Books (EPUB, or PDF with --type book) become a chapter index with one chapter file loaded only when a question needs it, plus a glossary and cheatsheet.

18:31Can I turn a whole YouTube playlist or channel into a course skill?

Yes. A playlist or channel URL becomes a course skill: a lesson index, one lesson file per video that opens with a link to that video, and one cheatsheet across the course. When the channel publishes more, update re-extracts it and adds only the new lessons.

19:10Does it need an API key or send my data to the cloud?

No. Extraction is deterministic Python that runs on your machine, and transcription uses local Whisper. The distillation is done by the coding agent you already use, so there is no extra API key, embedding service or vector database.

19:52Which coding agents can use the generated skills?

Any host that supports the open Agent Skills format: Claude Code, GitHub Copilot CLI, Amp and others. Skills install into ~/.claude/skills, ~/.copilot/skills, ~/.agents/skills or a project-local skills folder.

20:37How is this different from RAG or documentation scrapers?

RAG needs embeddings and retrieval infrastructure; documentation scrapers focus on API docs sites. source-to-skill targets learning content you would watch, listen to or read, and produces a compact SKILL.md of about 4k tokens with support files that load only when needed, so each question costs a fraction of pasting the whole transcript.

Your next lecture, on call.

Install once, then point it at anything worth remembering. Open source under MIT.

uvx --from git+https://github.com/michalstrnadel/source-to-skill source-to-skill install
/source-to-skill <url-or-file>