All work
Tools, software & programs

SCORM-to-PDF Extractor

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.

Node.jsPuppeteerTypeScript
Outcomes
<60s
200-page deck processed
100%
Page coverage incl. JS
30+
Courses extracted

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.