Ich gebe H5P einen Link zu einer Mediendatei – aber das funktioniert nicht. Warum?

Gibst du H5P wirklich einen Link zu einer Mediendatei? Die Betonung liegt hier auf Datei. Aber gehen wir erst einmal ein paar Schritte zurück.

Wenn du Medien in H5P-Inhalte einfügst, hast du oft mindestens zwei Möglichkeiten zur Auswahl: Du kannst eine Datei hochladen, oder du kannst einen URL zu einer Ressource einfügen. Letzteres ist das, worum es geht. Dieser URL muss direkt auf eine Mediendatei zeigen. Eine URL zu einer Seite, die das Medium bloß hostet oder zum Herunterladen bereithält, ohne die eigentliche Quelle preiszugeben, reicht nicht.

H5P Editor mit offenem Audio-Upload-Widget. Zur Auswahl stehen der Upload einer Datei und das Eingeben eines Linkt zu einer Audioquelle.

Diese Beispiele funktionieren nicht:

URLs, die direkt auf die Datei verweisen, funktionieren. Sie enden normalerweise mit der Dateierweiterung des Mediums, beispielsweise .mp4 für ein Video. Oft verbergen Websites wie Google Drive oder YouTube den direkten Link zu den Dateien absichtlich, aber wenn du Glück hast, macht die von dir genutzte Website für die Medien nicht.

Brauchst du ein Beispiel? Schauen dir die PeerTube-Instanz, die ich oben erwähnt habe, noch einmal genauer an. Die Seite ermöglicht es, einen Download-Link abzurufen (https://ebildungslabor.video/download/streaming-playlists/hls/videos/2a4b23c5-692a-4194-86fe-347448d690c2-1080-fragmented.mp4), dieser Link endet auf .mp4, und du kannst ihn etwa in Interactive Video verwenden. Vielleicht bietet deine jeweilige Hosting-Seite etwas Vergleichbares.

Lügen!

In meinem Text waren bisher mindestens zwei Lügen enthalten. Oder Vereinfachungen. Schauen wir uns die mal an.

Vereinfachung Nr. 1: URLs, die direkt auf die Datei verweisen, funktionieren

Das stimmt nicht immer. Wie könnte es auch anders sein? Ein Grund dafür, dass das möglicherweise nicht funktioniert, ist die Tatsache, dass H5P die Verwendung von Medientypen auf bestimmte Erweiterungen beschränkt. Standardmäßig gehören dazu:

  • Audio: .ogg, .mp3, .m4a und .wav
  • Video: .webm und .mp4

Aber auch wenn H5P einen Dateityp akzeptiert, spielt H5P die Medien nicht selbst ab. Das macht dein Browser. Oder der Browser der Nutzer*innen. Und leider können einige Browser ein bestimmtes Format verarbeiten, andere aber nicht. Ein häufiges Problem sind Videos im WebM-Format. Während zum Beispiel Chrome, seine Verwandten Chromium und Edge sowie Opera und auch Firefox problemlos mit WebM umgehen können, hatte (und hat) Safari in einigen Versionen Probleme damit. Aber es gibt nichts, was H5P hier tun könnte.

Und natürlich kann es sein, dass der Server, auf dem das Medium gehostet wird, einfach nicht erreichbar ist, oder die Datei gelöscht wurde, oder der Server Zugriffsbarrieren errichtet, oder …

Vereinfachung #2: Die URL muss direkt auf eine Mediendatei verweisen

Es gibt Ausnahmen von dieser Regel. Klar. Du kannst einen YouTube-Link wie https://www.youtube.com/watch?v=zqLEO5tIuYs auf H5P werden, und es wird problemlos funktionieren. Warum ist das so? Die URL endet nicht auf .mp4 oder .webm!

Das funktioniert, weil einerseits YouTube eine Schnittstelle anbietet, um auf das Video zuzugreifen und es zu steuern, ohne den direkten Link zur Datei preiszugeben. Und weil andererseits H5P einen Handler für diese Schnittstelle implementiert. YouTube hostet das Video und spielt es ab, aber H5P kann das Filmmaterial einbetten und Kommandos wie „Abspielen“ oder „Pause“ abgeben.

Das gleiche Konzept funktioniert derzeit für Videos, die auf Panopto oder Vimeo gehostet werden. Und theoretisch könnte man sogar weitere Handler für weitere Dienste erstellen (und pflegen), wenn diese eine praktikable API anbieten, aber dafür muss jemand die Zeit/das Geld aufbringen …