Madrasco

All tools

H5P Package Checker

Check your .h5p files for broken structure before you upload them.

What it does

Give it links to your .h5p files and it opens each one and reads it the way the H5P file format says a package should be built: the h5p.json at the top, each bundled library's library.json, the content file and the file types inside. You get a pass or fail for each file, with every problem listed by where it is in the package and what's wrong. It checks up to 50 files in one run, so you can check all of a course's files in one run before an upload.

For e-learning developers and course teams who build or collect H5P content for Moodle, WordPress, Drupal or another site that runs H5P.

What you get

  • A pass or fail for each file, plus its title, main content type and version, and how many libraries it bundles.
  • A plain reason when a file isn't a usable package at all, such as "Cannot open as a zip archive" for a file that isn't a zip.
  • A fix when the package was zipped from its parent folder: "zip the folder's contents instead".
  • A row for every link, including ones that didn't download, with the reason (for example HTTP 404), so one dead link doesn't stop the rest.
  • Results as a table you can export to CSV, Excel or JSON, and a readable report covering every file in the run.

Example: a package zipped the wrong way

SeverityWhereMessage
Errorh5p.jsonh5p.json is not at the root of the archive. Found 'h5ptest/h5p.json': the package was zipped from its parent folder; zip the folder's contents instead.
Errorh5ptest/library.jsonFolder 'h5ptest' at the package root is not 'content' and has no library.json.

One of Moodle's test files, zipped with its folder instead of the folder's contents. The report says what went wrong and how to fix it.

Best for

  • Checking a batch of .h5p files from colleagues, a repository or an old site before you import them.
  • Ruling out a damaged or wrongly zipped file when an upload fails.

Not for

  • A promise that a file will upload. Each site has its own installed library versions, allowed file types and upload limits, and those aren't visible from the file.
  • Testing how the content plays. It reads the package; it doesn't run it, check its JavaScript or scan for viruses.

Cost and how to start

  1. Open it on Apify Store and sign in, or create a free Apify account.
  2. Give it direct download links to your .h5p files (up to 50 per run) and start the run.
  3. Download a row for each file, with its problems listed, or the run's report.

Free while launching. Apify charges its own small usage fee to your account: under US$0.001 for a run of 26 links when we tested it.

If we start charging, the price is shown on the Store page and existing users get notice first.

Questions

My files are on my computer. How do I check them?
It needs a link that downloads the file itself, without a login. A share link that opens a preview page won't work.
Does it keep my files?
No. Each file is downloaded into your own run, checked in memory, and not sent anywhere else.

Common problems

How we tested it

  • Working packages came back clean. We ran 18 published packages covering 15 content types, from Moodle's test files, the H5P.org example pages and two open-source projects. None got an error. 17 had no warnings either; the other had a stray text file next to h5p.json, which the report pointed out.
  • Broken files were caught. We also ran six real files that won't upload: a text file named .h5p, a script file named .h5p, a Git LFS pointer saved in place of the package, a package with no h5p.json, a zip of libraries only, and a package zipped from its parent folder. Each one failed, with the reason first in the report.