What to run
Open H5P Package & Dependency Checker and drop your .h5p interactive package file into the upload zone.
Decompression and manifest analysis run completely in your browser using client-side JavaScript. Proprietary course materials, assessment question keys, and student media files are never transferred to remote servers.
The validator parses the root h5p.json manifest, validates the content/content.json task structure, and constructs a recursive dependency tree mapping all bundled library directories against declared library versions.
// Example h5p.json manifest structure
{
"title": "Interactive Biology Quiz",
"mainLibrary": "H5P.QuestionSet",
"language": "en",
"preloadedDependencies": [
{ "machineName": "H5P.QuestionSet", "majorVersion": 1, "minorVersion": 20 },
{ "machineName": "H5P.MultiChoice", "majorVersion": 1, "minorVersion": 16 },
{ "machineName": "H5P.JoubelUI", "majorVersion": 1, "minorVersion": 3 }
],
"embedTypes": ["div", "iframe"]
}How to read the result
Inspect the status banner and stat cards for Content Title, Bundled Libraries, Missing Dependencies, Missing Media Assets, and Upload Blockers.
Diagnose the "Missing required library" error. An .h5p package is a ZIP archive containing library folders named in the format {machineName}-{majorVersion}.{minorVersion}. When authoring content on newer platforms or H5P.com, modern library versions are often referenced. If those libraries are not bundled in the .h5p file and your target LMS does not have them pre-installed, LMS upload halts immediately.
Review the Dependency Tree tab. Any library node highlighted with a red MISSING badge indicates a library required by the parent content type that is absent from the package archive.
Check the Diagnostics & Errors tab for missing media notices. If an author referenced video or audio files in content/content.json but failed to bundle them into the content/ directory, the validator flags the exact missing filenames so you can re-export your package cleanly.
| LMS Error Message | Root Cause in Package | Actionable Fix |
|---|---|---|
| Missing required library: [LibraryName] | Library referenced in h5p.json or a sub-library is not bundled in package and not installed on LMS | Bundle the library folder in the .h5p ZIP or have LMS administrator install the library via H5P Hub |
| Invalid H5P package: missing h5p.json | The root directory of the archive is missing h5p.json or files were zipped with an extra parent folder wrapper | Ensure h5p.json and content/ are in the root of the ZIP file, not inside a nested subfolder |
| Invalid content parameters: content.json malformed | Syntax error or truncated JSON inside content/content.json | Open content.json in JSON Formatter to repair brackets and quotation marks |
| Missing media file: [filename] | Audio, video, or image file referenced in content.json is absent from content/ folder | Add the missing media file into the package content/ folder before distributing |
| Core API version incompatible | Library requires a newer H5P Core API version than supported by your LMS plugin | Upgrade the Moodle or WordPress H5P plugin to the latest release |
What to open next
If you need to validate or format raw JSON manifests extracted from your package, inspect them with JSON Formatter.
If your LMS course package includes course documentation or syllabus tables, convert document tables into spreadsheets with Word Tables to Excel.
If you encounter CSV export issues when transferring quiz grades or user lists, run your files through CSV Fixer.
Inside Moodle: Navigate to Content bank > Upload, select your validated .h5p file, and confirm import.
Stop when
Stop when Upload Blockers reaches zero and all required libraries display a BUNDLED status in the dependency tree.
Remember that while client-side validation ensures package integrity and self-contained dependencies, destination LMS platforms may have additional site-wide file size caps or restricted library permissions.
References
Use the linked specifications and product documentation to check behavior in your own environment.
Continue troubleshooting
Related tools
Frequently asked questions
Why does Moodle reject my H5P upload with "Missing required library"?
This occurs when an H5P module references a library that is not bundled inside the .h5p archive and has not yet been installed by your Moodle administrator in the site library repository.
How do I avoid the "extra parent folder" error when creating an H5P file manually?
When compressing an H5P package, select the files (h5p.json, content/, and library folders) directly and create the ZIP archive, rather than compressing the enclosing folder.
Can this tool be used with H5P packages created in WordPress or Canvas?
Yes. The .h5p package format is standardized across Moodle, WordPress, Canvas, Brightspace, and standalone H5P tools. All packages follow the same manifest and directory specification.