Home
Softono
pesu-slide-download-automator

pesu-slide-download-automator

Open source Python
41
Stars
9
Forks
0
Issues
1
Watchers
1 month
Last Commit

About pesu-slide-download-automator

Automates the process of downloading all PESU Academy Slides + helps merge them + helps convert them from PPTX to PDF

Platforms

Web Self-hosted

Languages

Python

Links

PESU Academy Slide Download Automation


Index

  1. Overview

  2. Installation

  3. Auto Download Slides

  4. Features for Pre-Existing Folders

  5. Hide View Playwright Automation

  6. Notes


Overview

This Python script automates the process of logging into PESU Academy, selecting a course, selecting a unit, opening the first slide, downloading and optionally merging available files using Playwright. All session data is stored only in memory, and the script prompts for your credentials at runtime. It is designed to simplify navigation inside PESU Academy without saving any user data locally.


Installation

  1. Install requirements:

    pip install -r requirements.txt
  2. Install Playwright browsers:

    playwright install

Auto Download Slides

  1. Run the main script:

    python main.py
  2. Enter your SRN/PRN and password when prompted.

  3. Follow the on-screen prompts to select a course and unit.

  4. The script will open the first slide, download available files, automatically convert pptx to ppt files, and optionally merge them.


Features for Pre-Existing Folders

Converting PPTX to PDF

You can automatically convert PPTX files to PDF using file_conversion.py for pre existing folders:

python file_conversion.py --folder "FolderName"

Merge PDFs

You can merge PDFs from any folder using the merge.py script:

python merge.py --folder "FolderName" --output "merged.pdf"
  • If merged.pdf already exists, the script will automatically create merged[1].pdf, merged[2].pdf, etc.
  • --folder is required, --output is optional.

Hide View Playwright Automation

To not see the browser while automating

  1. Change headless mode in main.py and file_conversion.py from False to True:
browser = p.chromium.launch(headless=True)
  1. Uncomment out resource blocking:
page.route(
    "**/*",3
    lambda route: route.abort()
    if route.request.resource_type in ["image", "media", "font"]
    else route.continue_()
)

Notes

  • All scripts are designed to keep your credentials in memory only.
  • PDF ordering after conversion relies on existing filenames, no renaming is done automatically.
  • iLovePDF free version limits batch conversion to 3 files at a time; file_conversion.py automatically batches files.

License

Copyright (C) 2026 Shakirth Anisha

This project is licensed under the GNU GPL v3.0. See the LICENSE file for details.