---
title: "Scorm Converter 2004"
description: "This is a hundred-line Python utility across three files, written for one migration and published as-is. The author's organisation was moving from ILIAS to SAP SuccessFactors and found that SCORM 2004 3rd Edition packages which ran happily in the old system were rejected by the new one. Rather than re-author, they wrote a script that unzips each package, rewrites the schemaversion element in imsmanifest.xml to \"2004 4th Edition\", strips the imsss:sequencing and metadata elements out of the organization and its items, and zips it back up."
canonical_url: "https://scorm-tools.com/tools/scorm-converter-2004"
last_updated: "2026-10-31T10:22:03.384Z"
---

This is a hundred-line Python utility across three files, written for one migration and published as-is. The author's organisation was moving from ILIAS to SAP SuccessFactors and found that SCORM 2004 3rd Edition packages which ran happily in the old system were rejected by the new one. Rather than re-author, they wrote a script that unzips each package, rewrites the `schemaversion` element in `imsmanifest.xml` to "2004 4th Edition", strips the `imsss:sequencing` and `metadata` elements out of the organization and its items, and zips it back up.

Understanding what that is, and is not, matters. It is not a conversion between editions — no data-model migration, no sequencing translation, no validation of the result. It is a workaround for an importer stricter than the specification requires, and dropping the sequencing rules is a silent behavioural change rather than a side effect.

Judged as a product it is unremarkable: three commits, all on one day in October 2024, no stars, no tests, and a README that documents its own dependencies as `os`, `ZIP` and `ParseXML`. Two details should stop you running it unattended: it deletes each source zip after extraction, and it joins paths with hardcoded Windows backslashes.

Judged as what it is — a shared workaround for a common and badly documented import failure — it is worth reading. The forty lines of `ParseXML.py` will tell you in two minutes whether your rejected package has the same cause, which is more than most vendor support tickets achieve.
