Skip to content

SCORM Validator

A small Streamlit app that opens a package zip and reports structural faults

Active Last commit Checked · 24 Aug 2026

The facts

Licence
MIT — OSI approved
Pricing
Open source
Deployment
Self-hosted
Platforms
Web · Command line

Standards support

Every line says where the claim came from. We do not test conformance ourselves and we issue no badge of our own.

Standards support for SCORM Validator, with the source of each claim and the date it was last confirmed.
Standard Supported Provenance Checked Note
SCORM 1.2 Yes editor-checked · 24 Aug 2026— source, opens in a new tabPackaging-level checks only: manifest presence, well-formed XML, required elements, referenced files present, adlcp:scormType set, SCO launch href. Nothing about run-time behaviour is examined.
SCORM 2004 Yes editor-checked · 24 Aug 2026— source, opens in a new tabdetect_version distinguishes 1.2 from 2004 by the content-packaging namespace on the manifest root, not by the declared schemaversion, so it cannot tell 2004 editions apart and does not attempt to.
xAPI No editor-checked · 24 Aug 2026
cmi5 No editor-checked · 24 Aug 2026
AICC No editor-checked · 24 Aug 2026
LTI Not stated
Claimed
— the vendor states it. We have not confirmed it.
Checked
— an editor confirmed it on the date shown.
Verified
— an official registry lists it, and we link to the entry.

Editor's notes

This is a couple of hundred lines of Python behind a Streamlit upload form. You give it a package zip and it tells you whether the archive is intact, whether imsmanifest.xml is at the root and parses, whether <organizations> and <resources> are present and populated, whether every file the manifest references actually exists in the zip, whether resources carry adlcp:scormType, and whether SCOs have a launch href. It also flags __MACOSX folders, which is a small thing that has broken a genuinely large number of uploads.

Those are the right checks. Missing referenced files and manifests packaged one directory too deep account for a large share of "the LMS rejected my course" tickets, and catching them before upload is worth the two minutes it takes to run.

Its ceiling is equally clear. It is a static structural check, not a conformance suite and not a runtime. It cannot detect that a course never calls Initialize or writes completion to the wrong element, and it does not distinguish SCORM 2004 editions.

The maintenance picture deserves plain statement: four commits, all on 9 June 2026, and nothing since. It is a competent weekend project with a readable test suite — useful as a reference implementation or something to fork and extend, not as a tool you would build a QA process around.

Listed on scorm-tools.com

Maintainers and vendors are welcome to show the listing badge in a README or on a product page. It is free, it does not require a claim, and there is nothing to buy.

Get the embed code