SCORM Validator
A small Streamlit app that opens a package zip and reports structural faults
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.
| Standard | Supported | Provenance | Checked | Note |
|---|---|---|---|---|
| SCORM 1.2 | Yes | editor-checked · 24 Aug 2026— source, opens in a new tab | Packaging-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 tab | detect_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