skill
lecture-processing
Grab video of lecture, extract slides, transcribe audio, build markdown document
Set up
Skills are installed by placing their folder where your agent loads skills.
The download comes from github.com/yshestakov/lecture-processing itself, not from our server, so what you get is exactly what its author published.
Install instructions come from the README
Skills do not use an MCP config. Follow the steps in the README below.
README
synced Oct 26, 2026process — lecture video → Obsidian notes
Everything needed to turn a recorded lecture into notes: the scripts, a Docker image with the tools, and the agent skill for the LLM steps. The full write-up of how and why is in process.md; the diagram is pipeline.svg.
Layout
process/
├── README.md this file
├── process.md, pipeline.svg, Lecture processing.pdf the process, step by step
├── AGENTS.md vault conventions for coding agents (language, markers, Obsidian links)
├── Dockerfile tools image; `--target agent` adds Node, Pi and OpenCode
├── docker-run.sh runs the image with the current folder mounted at /work
├── requirements.txt Python packages (faster-whisper, scenedetect, imagehash, …)
├── scripts/
│ ├── lecture.sh pipeline driver: probe | audio | transcribe | proxy | scenes | slides | build | check | all
│ ├── transcribe.py faster-whisper → "[start → end] text" lines
│ ├── extract_slides.py one image per scene from the original video, slides/index.csv
│ ├── build_lecture_md.py transcript + slide index → lecture.md (--obsidian)
│ ├── dump_slides.py compact, chunked dump of lecture.md for LLM reading
│ └── check_links.py verifies Obsidian links; exit 1 on broken links
├── skills/lecture-to-notes/
│ ├── SKILL.md the LLM half: Q & A digest, topic notes, references
│ └── templates/ topics_template.md, qa_digest_template.md
└── legacy/ one-off scripts from the first lectures (kept for reference)
Quick start (local, with the existing .venv)
source ../.venv/bin/activate
S=process/scripts # from the vault root
$S/lecture.sh probe -c 1238:804:342:0 Course/lecture.mp4 # check probe.png / check.png
$S/lecture.sh all -c 1238:804:342:0 -e 3:52:37 \
-p "Лекція про Harness в агентах типу Codex, Claude Code, Pi" \
-t "Harness Engineering, частина 1" Course/lecture.mp4
Outputs go to Course/lecture/:
audio.wavtranscript.txtproxy.mp4scenes.csvslides/lecture.md
Steps whose output exists are skipped; -f redoes them. lecture.sh -h lists all options.
Docker
cd process
docker build -t lecture-tools . # add --build-arg VAAPI=1 for h264_vaapi on Linux
cd ../Harness_Engineering
../process/docker-run.sh lecture.sh all -c 1238:804:342:0 lecture.mp4
- Whisper models are cached in the
lecture-modelsvolume. The first run downloads about 1.6 GB for large-v3-turbo. - On macOS, Docker has no GPU access. Transcription runs on CPU (int8), and the proxy uses libx264 instead of VideoToolbox. For long lectures, the native
.venvon the Mac is faster. The container is for Linux boxes and reproducibility. - On Linux with an Intel or AMD iGPU,
docker-run.shpasses/dev/drithrough, andlecture.shpicksh264_vaapiautomatically.
Agent layer (optional)
docker build -t lecture-agent --target agent .
IMAGE=lecture-agent ANTHROPIC_API_KEY=… ../process/docker-run.sh pi # or: opencode
- The image has Node 22, Pi (
@mariozechner/pi-coding-agent) and OpenCode (opencode-ai). Change them with--build-arg AGENT_PACKAGES="…". - The
lecture-to-notesskill is installed in~/.agents/skills/, which both agents read.AGENTS.mdis installed as their global instructions. - API keys are passed from the environment at run time and never stored in the image.
- Claude Code / Cowork: copy or symlink
skills/lecture-to-notesinto~/.claude/skills/(or the vault's.claude/skills/). The same SKILL.md works there.