Warum kann ich H5P-Inhalt nicht hochladen?

Eines der Ziele von H5P ist es, dir das Weitergeben von Inhalte zu erleichtern. Ein gängiger Weg dafür ist es, Inhalten über die Schaltfläche Reuse direkt unter dem Inhalt  herunterzuladen und die Datei anschließend auf eine andere H5P-Plattform hochzuladen. Das war’s. In manchen Fällen kann das jedoch fehlschlagen. Es kann sein, dass du eine ähnliche Meldung wie diese siehst:

H5P Hub showing the error message: "Validating h5p package failed. Missing required library H5P.CombinationLock 1.0"

Bevor ich diese kryptische Meldung erkläre (die übrigens gar nicht so kryptisch ist, wenn man Moodle’s eigene H5P-Integration verwendet), benenne ich aber die (wahrscheinlichste) Lösung: Einer der Administrator*innen der Plattform wird die Datei für dich hochladen müssen.

Du kannst deine Admins gerne auf die folgende Erklärung verweisen, die schon einige typische Fragen von Admins beantworten dürfte. Du kannst sie aber auch gerne selbst lesen! Ich werde versuchen, zu viel technisches Fachchinesisch zu vermeiden.

Was passiert, wenn ich H5P-Inhalte hochlade?

Die H5P-Inhaltsdateien enthalten alles, was eine H5P-Plattform benötigt, um den Inhalt zu verwenden:

  • die „Parameter“, die du in den Editor eingegeben hast (z. B. einen Text zur Aufgabenbeschreibung oder ob du ein Kontrollkästchen aktiviert hast oder nicht,
  • die Medien, die du möglicherweise hochgeladen haben (z. B. Bilder oder Audiodateien),
  • eine Paketdefinitionsdatei, die der Plattform mitteilt, welche Teile des JavaScript-Codes (Bibliotheken genannt) die Plattform benötigt, um den Inhalt auszuführen und
  • deb bereits erwähnten JavaScript-Code selbst.

Neben einigen anderen Dingen prüft die H5P-Plattform, ob sie schon über alle H5P-Bibliotheken verfügt, die der Inhalt benötigt. Wenn Bibliotheken fehlen, versucht H5P, diese aus der H5P-Inhaltsdatei zu installieren, die du hochlädst. Und genau hier können Dinge schief gehen.

Es kann sein, dass du keine H5P-Bibliotheken installieren darfst – weder gänzlich neue noch solche in einer späteren Version. Das ist eine Sicherheitsmaßnahme. Administrator*innen versuchen, die Plattform von bösartigem Code freizuhalten, und sind daher tendenziell eher vorsichtig. Sie sollten niemandem erlauben, beliebigen JavaScript-Code auf der Plattform zu installieren, und genau das passiert im Wesentlichen, wenn du H5P-Bibliotheken installierst. Klar, H5P-Inhalte, die du von vertrauenswürdigen Websites beziehst, sollten in Ordnung sein. Aber es ist wirklich nicht schwer, H5P-Inhalte mit manipulierten Bibliotheken zu erstellen, die eine Plattform kompromittieren und sich sogar von dort aus verbreiten können. Es ist geplant, eine zusätzliche Sicherheitsebene einzuzuehen (mit Prüfsummen für „offizielle“ H5P-Bibliotheken). Ich weiß aber nicht, wann das passieren wird.

Wenn es dir erlaubt ist, H5P-Bibliotheken zu installieren und du H5P-Inhalte mit Bibliotheken hochlägst, die noch nicht auf der Plattform sind, werden diese installiert. Die von dir hochgeladenen Inhalte können dann auf der Plattform ausgeführt werden. Außerdem kannst du neue Inhalte erstellen, für die diese Bibliotheken erforderlich sein könnten. Das Hochladen von H5P-Inhalten ist also auch eine Möglichkeit, neue Inhaltstypen zu installieren, jenseits der direkten Verwendung des H5P-Hubs oder des für diesen Zweck vorgesehenen Moodle-Tasks: \core\task\h5p_get_content_types_task.

Wer darf neue H5P-Bibliotheken installieren?

Das hängt von der H5P-Integration ab, die du verwendsz, z. B. eines der Plugins oder Lumi.

Einige H5P-Integrationen geben dir einfach alle Rechte. Die Lumi-Desktop-Anwendung ist eine davon. Du bist der Boss, und du bist verantwortlich für das, was du installierst. Denke daran, dass auf Lumi für den Desktop zwar praktisch nichts passieren kann, wenn du einen manipulierten H5P-Inhalt installierst, du aber dennoch Schadcode mit deinem Inhalt verbreiten könntest.

Andere Plattformen wie Moodle oder WordPress bieten Funktionen zur Verwaltung von Benutzerrollen, und die H5P-Plugins für die jeweilige Plattform unterstützen diese Funktionen. Admins können bestimmten Benutzer*innen oder Benutzer*innengruppen bestimmte Rechte (auch Fähigkeiten oder Capabilities genannt) zuweisen. Oder sie können solche Rechte nicht vergeben. So ist es beispielsweise einem Studierenden in den meisten Fällen nicht gestattet, Kurse auf Moodle zu erstellen.

Eine dieser Capabilities ist für die Installation oder Aktualisierung von H5P-Bibliotheken vorgesehen. Admins sollten dieses Recht automatisch haben. Sie können es auch an andere Personen vergeben, wenn es angebracht ist. Hier ist der Name der Capability, nach der sie suchen sollten:

  • hvp:updatelibraries (H5P-Plugin für Moodle)
  • h5p:updatelibraries (Moodle’s benutzerdefinierte H5P-Integration in Moodle core)
  • manage_h5p_libraries (WordPress)
  • H5P -> Bibliotheken aktualisieren (Drupal 7)
  • H5P-Bibliotheken aktualisieren (Drupal 8/9)

Randnotiz: Ja, WordPress unterstützt auch die Verwaltung von Benutzerrollen. WordPress wird allerdings nicht mit einem entsprechenden Editor ausgeliefert, der es Admins erlauben würde, die Standardeinstellungen zu ändern. Für diese Aufgabe muss ein zusätzliches Plugin verwendet werden, z. B. der User Role Editor.