h5p-offline-player by Missing Elements
Star

The whole integration

Set src, and it plays.

The Service Worker registers itself, and setting src loads the way it does on <video>. Nothing is unpacked on a server: the archive is read in place and its files are served to the H5P runtime from inside the browser, on a site you host.

Markup

HTML
<script type="module" src="h5p-player.js"></script>
<h5p-player src="/demo/content/how-it-works.h5p"></h5p-player>

That is all this page needs because this site serves the H5P runtime, @missing-elements/h5p-runtime, as frame-assets/ next to h5p-player.js, where the element looks by default. With a bundler, hand the element the runtime package's export instead; from a CDN, point assets-base at it. The setup page has both, and when to frame it from a domain of your own instead.

More ways to host it