A Python-based automation tool designed to standardize and reformat ProPresenter 7 song files (.pro) at scale. This tool is particularly useful for cleaning up large libraries (1000+ songs) to ensure consistent typography, slide length, and layout.
- Automatic Slide Re-segmentation: Automatically splits song lyrics into slides with a maximum of 2 lines per slide, ensuring optimal readability.
- Consistent Typography: Applies a standardized RTF-based format (White text, Center Aligned, Arial Black, 40pt) to all slides.
- Bulk Processing: Processes all
.profiles in an input directory and outputs them to a designated folder. - Structure Preservation: Maintains original song components including Groups (Verse, Chorus, Bridge, etc.) and Arrangements.
- Background Cleanup: Strips existing media actions/backgrounds from slides to provide a clean slate for new visual themes.
- Protobuf Driven: Uses ProPresenter 7's native Protocol Buffer format for high-fidelity file manipulation.
- Python 3.8 or higher
pip(Python package installer)
-
Clone the repository:
git clone https://github.com/gitoonga/pro_proto.git cd pro_proto -
Setup the Virtual Environment:
- Windows (PowerShell):
.\setup_venv.ps1
- Windows (CMD):
setup_venv.bat
- Windows (PowerShell):
-
Activate the environment:
.\.venv\Scripts\Activate.ps1
- Prepare Input Files: Place the
.profiles you want to reformat into thetest_files/directory. - Run the Script:
python batch_reformat.py
- Retrieve Results: The reformatted files will be generated in the
output_files/directory.
You can specify custom input and output directories using command-line arguments:
python batch_reformat.py --input "C:\Path\To\My\Songs" --output "C:\Path\To\Output"Or using short flags:
python batch_reformat.py -i "C:\Path\To\My\Songs" -o "C:\Path\To\Output"You can easily customize the formatting by editing the SETTINGS block in batch_reformat.py:
# batch_reformat.py
# Formatting Settings
font_name = "Arial-Black"
font_size = 80 # Half-points (e.g., 80 = 40pt)
max_lines = 2 # Maximum lines per slidebatch_reformat.py: The main automation script.ProPresenter7-Proto/: Contains the protobuf definitions and generated Python classes.test_files/: Input directory for original.profiles.output_files/: Output directory for processed files.requirements.txt: Python dependencies (protobuf,striprtf).
This project is licensed under the MIT License.