
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:
- Extract each slide from the
.pptxfile as an image. - Read the presenter notes attached to each slide.
- Synthesize speech from those notes using an AI text-to-speech engine.
- 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
.pptxfile with presenter notes on the slides you want narrated - Dependencies listed in
requirements.txt(LibreOffice orpython-pptxfor 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.