compressPPTX is a small Python utility for reducing the size of PowerPoint .pptx files by recompressing embedded media and removing unused package parts.
Repository: https://github.com/beigl/compressPPTX
- Direct EXE download: https://github.com/beigl/compressPPTX/releases/latest/download/compressPPTX.exe
- Latest release page: https://github.com/beigl/compressPPTX/releases/latest
- Windows build workflow: https://github.com/beigl/compressPPTX/actions/workflows/windows-exe.yml
If the EXE is attached to a release, download compressPPTX.exe from the release page.
If not, open the latest successful Windows EXE workflow run and download the artifact compressPPTX-windows-exe.
- recompresses embedded JPEG, PNG, GIF, WAV, and MP4 media
- updates PPTX relationship and content-type references after media conversion
- removes custom document properties
- strips selected document metadata
- prunes unreachable package parts before rebuilding the archive
compressPPTX/
|-- src/compresspptx/ # packaged application code
|-- tests/ # lightweight regression tests
|-- compress_pptx.py # compatibility wrapper
`-- pyproject.toml # project metadata
- Python 3.10 or newer
- ffmpeg available in
PATH
Install the package locally with:
pip install -e .This creates the command-line tool:
compress-pptxYou can build a standalone Windows executable with:
powershell -ExecutionPolicy Bypass -File .\scripts\build_windows.ps1The build output is:
dist/compressPPTX.exe
Notes:
- For JPEG/PNG/GIF-only presentations, the EXE works by itself.
- For WAV/MP4 recompression,
ffmpeg.exemust be available inPATHor placed next tocompressPPTX.exe. - The repository can be shared as a GitHub link. For non-technical users, the better download path is a GitHub Release or Actions artifact containing the EXE.
Place source presentations in input/ and run one of these commands:
python compress_pptx.py --input-dir input --output-dir output
python -m compresspptx --input-dir input --output-dir output
compress-pptx --input-dir input --output-dir outputCompression profiles:
aggressivebalancedlight
Example:
python -m compresspptx --compression-strength balancedFor the Windows EXE:
.\dist\compressPPTX.exe --input-dir input --output-dir outputRun the basic regression tests with:
python -m unittest discover -s testsGitHub Actions runs the same test suite automatically on pushes and pull requests.
If the repository is public, you can already share this link:
Others can then:
- download the source as ZIP from GitHub
- or, if you publish a Release, download the ready-made
compressPPTX.exe
Without a Release or uploaded artifact, users do not automatically get a downloadable EXE from the repository homepage alone.
- The repository is intentionally source-only; no sample presentations are tracked.
ffmpegis required for audio and video recompression paths.- The current tests focus on deterministic helper functions and packaging integrity.
This repository intentionally excludes presentation files, generated outputs, private credentials, and local tooling files from version control.
Author: Michael Beigl License: CC-BY 4.0