A small command-line tool I built that turns a SCORM package (the standard way eLearning courses are packaged for a learning platform) into a clean, paginated PDF of every screen. Reviewers and regulators get a static record of an interactive course without opening a course player. It handles pages built with JavaScript, click-to-reveal interactions, and screens that advance on a timer.
Reviewers don’t want to launch a SCORM package. Regulators definitely don’t want to launch a SCORM package. They want a PDF. I built this tool because I needed it on a Tuesday afternoon and writing it took less time than explaining to someone else why I needed it.
What I built
The tool unpacks a SCORM zip, walks the manifest to find every page, renders each page in headless Chromium with the right viewport and the right wait conditions, and stitches the results into a single paginated PDF. There’s a small domain-specific language (DSL) for handling annoyances: pages that need an interaction to reveal content, pages that auto-advance, pages that need cookies set, pages that lazy-load images.
What it improved
It exists because a 200-page interactive course used to take half a day to walk through manually for review purposes, screen by screen, snapping screenshots. The tool runs the same job in under a minute, with 100% page coverage including the JavaScript-rendered content that a casual screenshot tool would miss. The reviewer gets a clean, paginated PDF they can mark up. The regulator gets the static record they wanted. Nobody has to launch a SCORM player.
I now use the tool on every audit and external review I run.