H5P Package Checker (.h5p Preflight) avatar

H5P Package Checker (.h5p Preflight)

Pricing

Pay per usage

Go to Apify Store
H5P Package Checker (.h5p Preflight)

H5P Package Checker (.h5p Preflight)

Checks .h5p e-learning packages against the published H5P file specification: h5p.json and library.json fields, bundled library versions, content.json, file types, missing image alt text and oversize files. One report row per package, plus HTML/Markdown report.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Madrasco

Madrasco

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

an hour ago

Last modified

Share

Check .h5p interactive-content packages before you upload them to Moodle, WordPress, Drupal, an LMS or H5P.com. Give the actor one or more .h5p file URLs; for each package it returns one dataset row with a pass/fail verdict, the package facts (title, main content type and version, bundled libraries, size) and a list of findings. Each finding has a severity, the rule it breaks, the location in the package, a plain-English message and the source it is based on. A readable HTML and Markdown report goes to the key-value store.

What it checks

Against the published H5P file specification (h5p.org: The .h5p Specification, File Structure, Package Definition, Library Definition, Semantics Definition, Allowed File Extensions):

RuleSeverityBased on
File is a readable zip; h5p.json at the root (with a hint when the package was zipped from its parent folder)error.h5p Specification, File Structure
h5p.json is valid JSON with the mandatory title, mainLibrary, language, preloadedDependencies, embedTypeserrorPackage Definition
embedTypes only div/iframe; dependencies well-formed; main library listed in preloadedDependencieserrorPackage Definition
Language is a two-letter ISO 639-1 code or undwarningPackage Definition
License code is one of the listed codesnotePackage Definition
Every library folder has a valid library.json with title, machineName, majorVersion, minorVersion, patchVersion, runnable; version numbers are whole numbers; machine name uses allowed characterserrorLibrary Definition
Library folder is named machineName or machineName-major.minor; no library bundled twiceerrorLibrary Definition, H5P core validator
Files listed in preloadedJs / preloadedCss existerrorLibrary Definition
Runnable libraries have a valid semantics.json; translation files (language/*.json) are valid JSONerror.h5p Specification, Semantics Definition, H5P core validator
Dependencies resolve: every preloadedDependencies / dynamicDependencies entry (package and libraries) is bundled in the required major.minor versionerror if a different version is bundled; warning if not bundled at all (the target site must already have it).h5p Specification, Library Definition
Editor libraries resolve: every editorDependencies entry (e.g. H5PEditor.*) is bundled. H5P's upload check counts editor dependencies as required, so a missing one usually makes the upload fail with "Missing required library …" unless the site already has it installed (H5P skips this check when the site has a newer version of the package's main content type)warningH5P core validator (h5p-php-library)
content/content.json present and valid JSON; every file it refers to is in the packagewarning / error.h5p Specification, Semantics Definition
File types on the H5P allowed-extensions list (HTML files are flagged)error (note when the type is missing from the published list page but the H5P core default whitelist accepts it, e.g. .woff2, .eot: default installs accept these)Allowed File Extensions, H5P core default whitelist
File types the core validator rejects in content/: .svg, .js, .css, .xml are on the published list, but the H5P core default whitelist accepts them only inside library folders. Default installs of the H5P plugins for Moodle (mod_hvp), WordPress and Drupal reject them in content/warningH5P core validator (h5p-php-library default content whitelist)
Images without alternative text, where the content type's own semantics.json provides an alt-text field (e.g. H5P.Image "Alternative text"), including images inside nested content (for example the slides of an Image Slider, or Course Presentation slides inside an Interactive Book page), found by following each bundled content type's semantics; images marked decorative are counted but need no alt textwarningSemantics Definition
Oversize files and packages (limits you set)warningpractice check
__MACOSX, .DS_Store, stray root files, unused content files, unsafe archive pathswarning / note / errorpractice checks

Practice checks are labelled as such in the source field; they are not rules of the specification.

What it does not do

  • It checks against the published H5P file specification; it does not guarantee that a package uploads or runs on every platform. Sites can allow other file types, have other library versions installed and set their own upload limits.
  • It does not run the content, check JavaScript, scan for viruses or check the accessibility of anything other than image alt-text fields the content type exposes.
  • Alt-text checks only cover content types whose semantics.json is bundled in the package.

Input

  • .h5p file URLs (required): direct download links, up to 50 per run. Links must work without a login (for example a share link from your storage).
  • Include notes (default on), Flag single files larger than (default 20 MB), Flag packages larger than (default 200 MB), Maximum download size (default 200 MB; the run needs about twice this in memory, and the default 512 MB run memory covers it; raise the run memory before raising this limit).

Output

Dataset: one row per package (view "Packages"), with the findings listed in issues (view "Issues" shows one line per finding):

{"url": "https://example.com/quiz.h5p", "verdict": "fail", "errors": 1, "warnings": 1, "infos": 0,
"title": "Demo", "mainLibrary": "H5P.CoursePresentation", "mainLibraryVersion": "1.22", "libraries": 31,
"issues": [{"severity": "error", "rule": "library-file-missing", "location": "H5P.Image-1.1/image.js",
"message": "preloadedJs lists 'image.js' but the file is not in folder 'H5P.Image-1.1'.",
"source": "H5P, Library Definition (library.json), https://h5p.org/library-definition"}]}

A package that cannot be downloaded gets a row with verdict fetch-failed.

Key-value store: REPORT.html and REPORT.md (verdict per package, issues by rule, issue table, sources), OUTPUT (JSON totals).

Privacy

Your package is downloaded into the run, checked in memory and not kept by us beyond your own Apify storage. Nothing is sent anywhere else.

Support

Open an issue on the actor's Issues tab. This actor is built and maintained with AI assistance by Madrasco; a human owner can be reached on request through the Issues tab.

H5P is a registered trademark of H5P Group. This actor is independent and not affiliated with or endorsed by H5P Group.