CLI tool to generate slide-aligned markdown notes from YouTube videos.
Project description
slidecap
CLI tool that turns a YouTube video into slide-aligned markdown notes for agent/LLM workflows.
What It Does
- Downloads a YouTube video at 1080p (strict by default).
- Detects slide changes using SSIM-based frame comparison (same behavior as your existing app).
- Transcribes audio with Whisper.
- Aligns transcript chunks to detected slide timestamps.
- Writes:
- A markdown file with slide sections + transcript text.
- Slide images to one shared images folder.
Install
pip install slidecap
System dependencies:
ffmpegin PATHyt-dlpin PATH
Usage
Minimal — just pass a URL:
slidecap --url "https://www.youtube.com/watch?v=abc123"
This creates:
./slidecap/
My Video Title.md
slides/
yt_abc123_slide_001_t000005.jpg
...
Custom output paths:
slidecap \
--url "https://www.youtube.com/watch?v=abc123" \
--out-md "/path/to/vault/notes/abc123.md" \
--images-dir "/path/to/vault/assets/youtube-slides"
JSON output (for agents):
slidecap --url "https://www.youtube.com/watch?v=abc123" --json
Flags
--url(required): YouTube URL.--out-md(optional): Output markdown path. Defaults to./slidecap/<video title>.md.--images-dir(optional): Slide images folder. Defaults to./slidecap/slides/.--similarity-threshold(default0.85): Slide detection threshold.--sample-rate(default1.0): Frame sampling interval in seconds.--whisper-model(defaultbase): Whisper model name. See Whisper Models below.--language: Optional transcription language code (e.g.en,de,ja).--image-format(defaultjpg):jpgorpng.--image-quality(default90): JPEG quality.--allow-lower-quality: Fallback below 1080p if exact 1080p is unavailable.--overwrite: Overwrite existing markdown output.--keep-temp: Keep temp downloads for debugging.--log-level(defaultinfo):debug|info|warn|error.--json: Print structured JSON result (success or error) for agent workflows.
Whisper Models
| Model | Speed | Accuracy | Notes |
|---|---|---|---|
tiny |
Fastest | Lowest | Quick drafts |
base |
Fast | Good | Default |
small |
Moderate | Better | Good general choice |
medium |
Slow | Strong | |
large |
Slowest | Best | |
large-v2 |
Slowest | Best | Improved large |
large-v3 |
Slowest | Best | Latest multilingual |
turbo |
Fast | Very good | Efficient alternative to large |
English-only variants (tiny.en, base.en, small.en, medium.en) are faster than their multilingual counterparts when transcribing English content.
Output Format
The markdown file includes:
- source metadata
- table of contents
- per-slide sections with:
- timestamped YouTube link
- relative markdown image link
- transcript chunk aligned to that slide
Images are named to avoid collisions:
yt_<video-id>_slide_<nnn>_t<seconds>.<ext>
JSON Response Shape
Success:
{
"status": "ok",
"url": "https://www.youtube.com/watch?v=abc123",
"video_id": "abc123",
"output_markdown": "/path/to/vault/notes/abc123.md",
"images_dir": "/path/to/vault/assets/youtube-slides",
"slide_count": 12,
"image_files": [],
"downloaded_resolution": "1920x1080",
"downloaded_fps": "30",
"format_note": "1080p",
"download_format": "bestvideo[height=1080]+bestaudio/best[height=1080]",
"similarity_threshold": 0.85,
"sample_rate": 1.0,
"whisper_model": "base",
"language": "en",
"started_at": "2026-02-23T00:00:00+00:00",
"completed_at": "2026-02-23T00:03:00+00:00",
"duration_seconds": 180.123,
"warnings": []
}
Error:
{
"status": "error",
"error": "message",
"error_type": "RuntimeError"
}
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file slidecap-0.2.0.tar.gz.
File metadata
- Download URL: slidecap-0.2.0.tar.gz
- Upload date:
- Size: 12.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b9d88dfb7e7e2d872851852ad64aaa9068b07397133b3de2ca42d05b8f7da23
|
|
| MD5 |
ac317e7b8f7c67744a42277baa9b61c5
|
|
| BLAKE2b-256 |
1a4ee42a1a644a755ec598a99e6eb64fa5d175a41dbf833ca2130539ff72278b
|
File details
Details for the file slidecap-0.2.0-py3-none-any.whl.
File metadata
- Download URL: slidecap-0.2.0-py3-none-any.whl
- Upload date:
- Size: 11.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de429bc00a29ee8331defd0cf6b60e3b60c1123d683e74a09a6b677cbc002f31
|
|
| MD5 |
536c1e6638a12694a3e0ec7d15200960
|
|
| BLAKE2b-256 |
35730a6083ef580a815a2775921db1893c965a45ddf704a59dd860d6321e6dc9
|