lecture-to-obsidian
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 7 GitHub stars
Code Pass
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Turn YouTube lectures into Obsidian study notes with Claude: LaTeX, timestamp links, board equations from video frames, honest confidence markers, review questions.
lecture-to-obsidian
A skill for Claude that turns a YouTube lecture into an Obsidian study note. You review and edit a ready-made note instead of writing one while you watch.
Built for math-heavy lectures, where auto-captions garble equations and the important content is on the board:
- Transcript → structured note: summary, numbered sections with clickable timestamp links, LaTeX math, Obsidian callouts for definitions, theorems and tips, step-by-step worked examples, and
[[wikilinks]]to notes already in your vault. - Board equations from video frames: when the transcript can't give an equation, the skill grabs frames at that moment and reads the board.
- Honest confidence markers: every uncertain piece of math is labeled, so a guess never looks like lecture content.
- Active-recall layout: in-class exercises get a "pause and try it" prompt with the lecturer's solution folded away, plus a review-questions section without answers.
- Review queue export (optional): send chosen questions to Anki (CSV) or your own spaced-repetition script.
- Validation: a checker for frontmatter, timestamp links and balanced
$/$$before the note is handed over.
Example: notes on Gilbert Strang's MIT 18.06 Lecture 1, "The Geometry of Linear Equations", made with this skill. The board equations were confirmed from video frames.
- Read it on GitHub: converted with
export_github.py, because GitHub renders only part of Obsidian's Markdown. - Obsidian source: what the skill actually writes into your vault. Callouts,
[[wikilinks]]and folded solutions show properly in Obsidian.
Confidence markers
| Marker | Meaning |
|---|---|
| (none) | said clearly in the lecture |
[🖼 from frame, mm:ss] |
read from the board or a slide in the video |
[🔁 reconstructed from spoken arithmetic, mm:ss] |
rebuilt from the spoken steps, every step checked |
[❓ check equation, mm:ss] |
unknown. Check it while watching (search ❓ in Obsidian) |
Install
Claude Code (plugin)
/plugin marketplace add Abdelrhman2Fawzy/lecture-to-obsidian
/plugin install lecture-to-obsidian@lecture-to-obsidian
Claude Code (plain skill folder)
git clone https://github.com/Abdelrhman2Fawzy/lecture-to-obsidian
cp -r lecture-to-obsidian/skills/youtube-lecture-notes ~/.claude/skills/
claude.ai
Download youtube-lecture-notes.zip from the latest release and upload it under Settings → Capabilities → Skills. The sandbox there may not be able to reach YouTube. In that case paste the transcript (YouTube: …more → Show transcript), and the rest of the workflow still applies.
Requirements
Python 3.9+ (standard library only), plus:
| Tool | Needed for |
|---|---|
| yt-dlp (recent) | transcripts |
| ffmpeg | board frames |
| deno or node | board frames (yt-dlp needs a JS runtime for YouTube video) |
Check with:
python3 skills/youtube-lecture-notes/scripts/doctor.py
Without ffmpeg or a JS runtime, notes still work, but board equations stay as ❓ markers.
Use
Give Claude a lecture link:
Make Obsidian notes from https://www.youtube.com/watch?v=...
Or, in Claude Code: /youtube-lecture-notes <url>. To fix up an older note: "resolve the ❓ markers in Lectures/….md".
Configure (optional)
Works with no configuration: it finds your vault (and asks once if you have several) and writes to Lectures/. To change defaults, create ~/.config/lecture-to-obsidian/config.json. Start from examples/config.example.json:
{
"vault": "~/Obsidian/Study",
"notes_dir": "Lectures",
"note_language": "en",
"review_queue": {"format": "anki-csv", "anki_csv": "~/Obsidian/Study/anki/lectures.csv"}
}
Every key, including the study-records integration (a personalized "For you" callout) and custom review-queue commands, is documented in references/config.md.
Scripts
All in skills/youtube-lecture-notes/scripts/, standard library only:
| Script | Does |
|---|---|
fetch_transcript.py |
subtitles and metadata for one video (ignores playlist links, prefers manual subs) |
clean_srt.py |
rolling auto-captions → clean minute-stamped paragraphs |
grab_frames.py |
frames at given timestamps (downloads a low-res copy once) |
validate_note.py |
checks frontmatter, marker count, timestamp links, math delimiters |
export_review_questions.py |
review questions → print, Anki CSV, or your command |
export_github.py |
Obsidian note → GitHub-flavored Markdown (alerts, <details>, math fences) for sharing |
log_material.py |
records a new note in your study log (optional) |
config.py |
shows settings, finds vaults, saves a setting |
doctor.py |
checks dependencies and prints fixes |
Privacy and fair use
- Everything runs locally. The only network calls are yt-dlp's requests to YouTube.
- Frames are downloaded only to read the board, and the video is deleted afterwards unless
frames.keep_videois set. Use this for personal study of videos you are allowed to access, and respect the lecturer's rights when sharing notes. - The skill never invents lecture content: no transcript means no note.
Development
python3 -m unittest discover -s tests -v
python3 skills/youtube-lecture-notes/scripts/validate_note.py examples/mit-18.06-lecture-01.md --duration 2389
python3 skills/youtube-lecture-notes/scripts/export_github.py examples/mit-18.06-lecture-01.md # regenerate the GitHub view
python3 tools/build_zip.py # dist/youtube-lecture-notes.zip for claude.ai
Issues and pull requests are welcome. Please include a lecture URL and the problem marker or timestamp when reporting bad notes.
License
Code: MIT. The example notes on MIT OpenCourseWare 18.06 (examples/mit-18.06-lecture-01.md) are derived from a lecture licensed CC BY-NC-SA 4.0 and are shared under that license, with attribution to Prof. Gilbert Strang and MIT OpenCourseWare.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found