Serve and update H5P content types more conveniently

H5P features a central H5P Content Type Hub Server which – exactly – serves H5P content types. That’s where you install or update content types from when you use the H5P Hub client. That’s where Moodle‘s own H5P integration can automatically fetch newer content type versions from.

Having the server and the corresponding client is great: You can install content types conveniently, and you can check for and install updates easily. But it also comes with a couple of caveats. In particular, H5P Group is not very quick with putting content types of contributors on there, and contributors need to go through a lengthy process in order to get updates out. In consequence, that means:

  • There’s a growing two digit number of content types that you will not find on the H5P Content Type Hub Server. You may not even know about them. And some organizations are not allowed to install any H5P content type that’s not found on the Hub because of what I’d call politics. Not so fun fact: Some organizations have funded the development of content types that they themselves cannot even use for that reason.
  • If you have found out about some of those content types, you need to install those by either uploading an H5P library file that needs to be provided somewhere, or you need to upload an H5P content file holding the desired content type. That’s not too big a hassle, but still feels a little awkward.
  • The real annoying part concerns updating those content types that are not on the H5P Content Type Hub. First of all, you need to know there’s an update. And then you have to repeat the manual upload procedure again and again for every update.

I could write a lot more here, but I’ll keep it short: There’s an alternative now.

Sustainum developed a couple of new H5P content types that they would want to be openly available, but they also wanted to have a simple way for their partners to install and update content types beyond what’t found on H5P Group’s H5P Content Type Hub Server. They now can with Catharsis.

Catharsis

Catharsis is a free and openly sourced H5P Content Type Hub Server that you can set up yourself on your own infrastructure. It understands and talks the API of H5P Group’s Content Type Hub Server (which is undocumented by the way), so it’s fully compatible. With Catharsis, you can serve your own H5P content types. You can also automatically mirror what’s on H5P Group’s Content Type Hub Server or on another Catharsis server. If that sounds nice: Please have a look at the Catharsis repository. It contains the code and the readme where admins will find the information that they need to set it up.

Okay, so you can set up a server. How will I let my H5P instance know that it should use that one instead of H5P Group’s Content Type Hub Server? That’s a little tricky at least. The server endpoint (api.h5p.org/v1/content-types/) is hardcoded into H5P’s core library into the h5p.classes.php file. You can overwrite it manually with your own server endpoint, but with every update of the H5P core library, you would need to repeat that process. That’s not elegant.

Lumi version 1.x

If you don’t know Lumi yet, head over to Lumi’s website right now. It allows you to view and create H5P content offline on your desktop computer. Since version 1.0.0-beta 23, the Lumi desktop application allows to configure the endpoint for fetching H5P content types. You will find the respective Content Types Hub Endpoint option in the library settings.

SNORDIAN’s H5P Content Type Repository Manager (WordPress)

There’s a better solution for the H5P plugin for WordPress already: SNORDIAN’s H5P Content Type Repository Manager. It’s a tiny extra plugin that allows you to configure the endpoint and it will take care of updates, too. As a bonus – even without changing what server you use – you can set it up to regularly check for updates of H5P content types and to install them automatically just like Moodle’s own H5P integration can. You can find that plugin in the WordPress plugin repository.

The source code is, of course, openly sourced. Have a look at the repository. Please feel free to create an equivalent for Drupal, Moodle or whatever platform also features an H5P integration and should be able to use a different H5P Content Type Hub Server (or learn automated content type updates).

Will you set up a Catharsis instance with your content types?

I have! But I am not sure how long I will be able to sustain it.  It’s hard for me to estimate what load and traffic that would generate on my servers. I’d not want the server to go down or my webspace provider knocking on my door with an extra bill for me to pay.

Those things that you use for free and take for granted mean costs for other people, you know …

So, if you want to try out, then use the base domain name catharsis.snordian.de for the WordPress plugin or the full endpoint URL https://catharsis.snordian.de/content-types/ for Lumi. You should then see a couple more content types then you are used to.

Again, please note that I may shut that server down without a warning if it receives too much traffic or causes me other trouble! So you may want to remember api.h5p.org/v1 which is the original base domain name or https://api.h5p.org/v1/content-types/ for the original full endpoint URL.

Sponsor note

The plugin was developed by Sustainum within the XR Energy project. Development work was carried out by Snordian as a contractor.

“Funded by the European Union. Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union or the European Education and Culture Executive Agency (EACEA). Neither the European Union nor EACEA can be held responsible for them.”