Integration examples for using H5P in Flask, FastAPI, Django, PHP, .NET (via h5p-server)

chris-honselaar's picture
Forums: 

I've been using Lumi Education's excellent @lumieducation/h5p-server library to run H5P outside of WordPress/Moodle. The library handles all the heavy lifting, but I found myself writing the same integration glue in different projects - callback URLs, xAPI webhook handling, iframe embedding, etc.

I put together some examples that might save others time:

  • Flask (~150 lines)
  • FastAPI (~200 lines)
  • PHP (~300 lines)
  • .NET 8 (~300 lines)
  • Django (reusable plugin)
  • LTI 1.3 provider (for LMS integration)

All examples follow the same pattern: your app opens the H5P editor in a popup, receives a callback with the contentId, embeds the player in an iframe, and receives scores via webhook.

Repo: https://github.com/chrishonselaar/h5p-integration-kit

This is entirely built on top of the work by H5P.org and Lumi Education - just wrapper examples to help people get started faster. Sharing in case it's useful to anyone else trying to integrate H5P into a custom application. Included is a ready-to-go Docker image based on @lumieducation/h5p-server that provides simple user-facing screens so everything works with near-zero setup.

otacke's picture

Nice! 

chris-honselaar's picture

I hope so! Let me know if I should add anything. I've tested every example and am using the Django plugin myself in a custom-written mini LMS (pathology training platform), so I will probably be adding more functionality, perhaps even contribute a few strange H5P content types of my own :-)

otacke's picture

Thanks! It's nothing that I require myself, but I am glad that slowly more and more developers publish things for H5P.