H5P Platform Integration Experiences and Suggestions


Hey folks,

as you may know already, we are developing and mainting a H5P platform integration plugin for NeosCMS (which can be found on GitHub). I would like to share some of our experiences in developing and maintaining that plugin with you, and suggest a few things that may benefit other developers of platform integration plugins as well as yourself.

There are two things which make life quite difficult for us:

* There are no change logs for changes to the public API of the H5P core. When I upgraded the core from 1.18 to 1.20, I needed to trace through the changes on GitHub and try to reflect them in our platform code. Since I couldn't always see how data types/formats changed (especially when metadata were added to the H5P content params), I additionally had to run the wordpress plugin locally and check which data it sent to the backend in some cases. That took a very long time and introduced some nasty bugs which we didn't find until later. Some changelogs would help out massively here, especially when you change data formats / types for APIs.

* That brings me to the second point: It's very hard to understand in which format Content and Library objects are passed from one function to the next within H5P and to the platform integration functions. You're using associative arrays everywhere, but not in a consistent way - sometimes a full content array is passed, sometimes only the Id, only the parameters, with and without metadata.. that makes it very hard to understand which data is needed where. You're doing a very good job by providing interfaces to implement for the H5P core (e.g. H5PFrameworkInterface, H5PFileStorage etc) - it would be a huge help if you could also create interfaces to implement for the Content and Library objects and use them consistently throughout the H5P core).

I am aware that this may not be your first priority. Still I think these are suggestions that benefit the project in the long run. We'd love to start a conversation about that and see how we can maybe even support with making some of these changes.

Best regards,
Bastian Heist

BV52's picture

Hi Bastian,

Thank you for the well written observations and suggestions I've forwarded this to the H5P core team.


Hey, thanks for the quick reaction! When reading my post again, I noticed I totally forgot to add that overall, I find H5P to be a fantastic project and really enjoy working with it! ;) Looking forward to getting some feedback on the above points.


Hi BV52,

I work in the institute that supports the development of the above mentioned H5P plugin for NeosCMS. We are very happy with H5P and make extensive use of the wide range of different content types in our learning environment, which we expect to make freely available to everyone early next year.

Of course our editors would like to use the latest content types and are already working on concepts for using the Interactive Book in our learning environment. For our developers, however, it is difficult to estimate how complex it would be to update the NeosCMS plugin to support the current H5P core and editor. Due to the challenges described above during the last update, we are very interested to hear how Bastian's observations and suggestions were received by the core team.