icaoberg / py-ppt2movie

Created Tue, 14 Apr 2026 00:00:00 +0000 Modified Tue, 14 Apr 2026 03:04:59 -0400

py-ppt2movie

Creating a narrated presentation video usually means recording yourself talking through each slide — finding a quiet room, managing retakes, syncing audio, and editing the result. It works, but it’s slow and the bar for “good enough” is higher than it sounds.

py-ppt2movie skips all of that. You give it a PowerPoint file with presenter notes, and it produces a video where an AI voice reads those notes aloud over each slide.


What it does

The workflow is straightforward:

  1. Extract each slide from the .pptx file as an image.
  2. Read the presenter notes attached to each slide.
  3. Synthesize speech from those notes using an AI text-to-speech engine.
  4. Stitch the slide images and audio clips together into a single video file.

The result is a complete, watchable presentation video — without ever opening a microphone.


Why presenter notes?

Presenter notes are the natural place to write what you’d say about a slide. Most people already have them (or could write them quickly), and they live right inside the .pptx file — no extra files, no separate scripts. Using them as the narration source keeps everything in one place and makes it easy to revise: update the note, regenerate the video.


Use cases

  • Async course content. Record lecture videos without a recording setup.
  • Conference submissions. Some venues require a pre-recorded talk; this produces one in minutes.
  • Accessibility. Add a narrated version of slides for audiences who prefer audio.
  • Rapid prototyping. Quickly preview how a deck “sounds” before committing to a full recording.

Getting started

Clone the repo and install the dependencies:

git clone https://github.com/icaoberg/py-ppt2movie
cd py-ppt2movie
pip install -r requirements.txt

Run the script against your PowerPoint file:

python ppt2movie.py --input your_presentation.pptx --output output_video.mp4

The script will process each slide in order, generate an audio clip for the presenter notes, and write the final video to the path you specify.


Requirements

  • Python 3.8+
  • A .pptx file with presenter notes on the slides you want narrated
  • Dependencies listed in requirements.txt (LibreOffice or python-pptx for slide rendering, an AI TTS backend for audio synthesis)

Slides without presenter notes are included in the video with silence, so a deck that’s only partially annotated still works.


Roadmap

  • Support for multiple TTS voices and languages
  • Configurable slide duration for note-free slides
  • Output format options (.mp4, .webm, .avi)
  • A simple web front-end for non-technical users

Repo: https://github.com/icaoberg/py-ppt2movie


This project is open source. Contributions, bug reports, and feature requests are welcome via GitHub Issues.