Skip to main content

Convert YouTube educational video to crisp PDF notes

Project description

Glimpsify (ytvideo2pdf)

Glimpsify extracts slide-like frames from educational videos and builds a PDF of the key visuals (diagrams, formulas, charts). It is optimized for lecture-style videos where text appears on screen over time.

Try now (without setup)

Try it out here: https://colab.research.google.com/drive/1xz6uHeY0QAzMTR8DbXJY8BSvNmKhI24Q?usp=sharing

Quick start

  1. Install OCR engine (required for text detection)

    • Windows: install Tesseract OCR and make sure tesseract is on PATH.
    • macOS: brew install tesseract
    • Debian/Ubuntu: sudo apt-get install tesseract-ocr
  2. Install the package

pip install ytvideo2pdf
  1. Run the CLI
ytvideo2pdf --input=youtube --url="https://youtu.be/Z_MLrbI1s2E"

Common usage

Extract from a local folder (expects a single video file in the directory):

ytvideo2pdf --input=local --dir="C:\path\to\video_dir"

Run with a specific extraction strategy:

ytvideo2pdf --input=youtube --url="https://youtu.be/Z_MLrbI1s2E" --extraction=prominent_peaks

Extract a fixed number of frames:

ytvideo2pdf --input=youtube --url="https://youtu.be/Z_MLrbI1s2E" --k=10

Extract frames at explicit timestamps (seconds):

ytvideo2pdf --input=youtube --url="https://youtu.be/Z_MLrbI1s2E" --extraction=timestamps --timestamps="30, 95.5, 120"

What you get

  • A PDF file in output/ with the extracted frames.
  • A JSON metadata file alongside the PDF (same name, .json).
  • Intermediate folders (unless --no-cleanup) for extracted frames and cached objects.

Key features

  • Multiple extraction strategies to pick the most informative frames.
  • OCR-based signal processing (Tesseract by default).
  • Optional caching of processed frames for reuse.
  • Optional plots of the OCR signal (for debugging and tuning).

CLI options (summary)

  • --input: youtube | local | pickle
  • --url: YouTube video or playlist URL (for youtube input)
  • --dir: local directory path (for local or pickle input)
  • --ocr: tesseract | easy_ocr | paddleocr
  • --ocr_approval: phash | pixel_comparison | approve_all | reject_all
  • --extraction: prominent_peaks | k_transactions | key_moments | timestamps | rate_change_threshold
  • --k: number of frames to extract, or auto
  • --timestamps: comma-separated seconds (for timestamps extraction)
  • --threshold: integer threshold for rate_change_threshold
  • --cache-frames/--no-cache-frames
  • --skip-plot/--no-skip-plot
  • --cleanup/--no-cleanup

For Python API usage, see LIBRARY.md.

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

ytvideo2pdf-0.3.0.tar.gz (26.3 kB view details)

Uploaded Source

Built Distribution

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

ytvideo2pdf-0.3.0-py3-none-any.whl (39.0 kB view details)

Uploaded Python 3

File details

Details for the file ytvideo2pdf-0.3.0.tar.gz.

File metadata

  • Download URL: ytvideo2pdf-0.3.0.tar.gz
  • Upload date:
  • Size: 26.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for ytvideo2pdf-0.3.0.tar.gz
Algorithm Hash digest
SHA256 156ec162e346efe28ebf97d33d2dedcdde163dc7843cea0e9b22589847aa6601
MD5 5289c48620c483ee2502a7bb83050c5d
BLAKE2b-256 36682ef4d632e92127455d162444e81ad727c599e2d09f32f13c551464e5c9cb

See more details on using hashes here.

File details

Details for the file ytvideo2pdf-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: ytvideo2pdf-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 39.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for ytvideo2pdf-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 82e8a0b15c3d5408ff6df4bcda2621b7b3fc72730db769323cb153aecfbbb4b8
MD5 3b7dff54fb7cdfb8d36b1ff3eedf6497
BLAKE2b-256 632ae3421c926ef798c1287c0ef7baab8f48af285fc266cdf67d4d6610890c00

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