Self-hosted H5P in one web component
A standalone H5P player: no H5P server, headless in any front end, and offline as an app.
Paste a link to a .h5p file below, or pick one from disk, and it plays on this
page.
- No H5P server Static hosting is enough: no backend, no third-party service in between.
- Nothing unpacked The archive is read in place, its files served by a Service Worker.
- Any export Missing or older libraries come from a pinned pack, only those needed; untrusted packages play as checked data.
- Learning records xAPI that names the package's build, save and resume, cmi5, and SCORM for Moodle, ILIAS, OpenOLAT or Chamilo.
Opens a bug report on GitHub, filled in from the events below, for you to check and send. Your file goes with it only if you attach it.
Events
Standalone, headless, offline
Standalone. The player is static files on your own site: no H5P server, no
Moodle, WordPress or Drupal, no backend. A .h5p file plays as it is, from a URL
or from disk, where h5p-standalone needs each package
unzipped into a folder first.
Headless. The .h5p file is the content, kept with your other
files: in a CMS, in object storage, in your repository. One element plays it in any front
end, from plain HTML to React or Vue, and the results reach your own code as xAPI events.
Setting it up covers bundlers, frameworks and pages with no
build step. In VS Code,
H5P Preview by Missing Elements
opens a .h5p in an editor tab and plays it, offline; Cursor and VSCodium
install it from Open VSX.
In CI,
h5p-verify
plays a package in a headless browser and says whether it works.
Offline. The installable app plays .h5p
files with no network, on a computer, an iPhone or iPad, or Android. It carries the
libraries for every content type the H5P hub serves, so an export without its own plays
too.