Skip to main content

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

  1. Downloads a YouTube video at 1080p (strict by default).
  2. Detects slide changes using SSIM-based frame comparison (same behavior as your existing app).
  3. Transcribes audio with Whisper.
  4. Aligns transcript chunks to detected slide timestamps.
  5. Writes:
    • A markdown file with slide sections + transcript text.
    • Slide images to one shared images folder.

Install

pip install slidecap

System dependencies:

  • ffmpeg in PATH
  • yt-dlp in 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 (default 0.85): Slide detection threshold.
  • --sample-rate (default 1.0): Frame sampling interval in seconds.
  • --whisper-model (default base): Whisper model name. See Whisper Models below.
  • --language: Optional transcription language code (e.g. en, de, ja).
  • --image-format (default jpg): jpg or png.
  • --image-quality (default 90): 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 (default info): 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

slidecap-0.2.0.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

slidecap-0.2.0-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

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

Hashes for slidecap-0.2.0.tar.gz
Algorithm Hash digest
SHA256 4b9d88dfb7e7e2d872851852ad64aaa9068b07397133b3de2ca42d05b8f7da23
MD5 ac317e7b8f7c67744a42277baa9b61c5
BLAKE2b-256 1a4ee42a1a644a755ec598a99e6eb64fa5d175a41dbf833ca2130539ff72278b

See more details on using hashes here.

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

Hashes for slidecap-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 de429bc00a29ee8331defd0cf6b60e3b60c1123d683e74a09a6b677cbc002f31
MD5 536c1e6638a12694a3e0ec7d15200960
BLAKE2b-256 35730a6083ef580a815a2775921db1893c965a45ddf704a59dd860d6321e6dc9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page