H5pxblock and phantom library.json calls

I just discovered h5p and I am trying to get Edly’s h5pxblock working. I seem to have got things uploading to the right place on my minio and, and can curl the main h5p.json (public bucket):

https://files.local.openedx.io/h5pcontent/h5pxblockmedia/testorg/testcn/29cda3c9b654427fa525f0793e2d2a3f/h5p.json

This returns:

{"title":"Example Content - Single Choice Set","language":"en","mainLibrary":"H5P.SingleChoiceSet","embedTypes":["iframe"],"license":"U","preload
edDependencies":[{"machineName":"H5P.SingleChoiceSet","majorVersion":"1","minorVersion":"11"}]}

(This example is one of the examples downloaded from h5p.org). However, it never actually loads and I see an error in the console because it is trying to download:

https://files.local.openedx.io/h5pcontent/h5pxblockmedia/testorg/testcn/29cda3c9b654427fa525f0793e2d2a3f/H5P.SingleChoiceSet-1.11/library.json

And that file doesn’t exist. It definitely isn’t in the .h5p either - so I’m assuming that it should be provided as a library somehow, and when it doesn’t have that it’s trying as a last ditch to see whether it was included as a library in the original h5p package. Is that more or less correct?

If so… I see the xblock iframe downloading https://cdn.jsdelivr.net/npm/h5p-standalone@3.5.1/dist/main.bundle.js, it then gets the content.json and then tries to get the missing library.json file.

I’m not super au fait with h5p to begin with… do these need to get installed separately somehow? Do I need to download the examples, then (for example in the Lumi editor) do something so it will vendor the missing libs somehow?

Thanks for any pointers!

Ok, so for posterity and anyone else, it turns out that the h5p.org examples no longer contain all the required libraries. Opening the file and resaving it in the Lumi Desktop editor will add the required libs to the saved package, provided they are all standard ones.

It does, however, appear that the underlying library that supports running h5p in h5pxblock does allow the libraries to be in a separate directory than the content directory, but h5pxblock doesn’t include that feature, and requires everything to be in the same directory in storage.