Ho-ho-ho, now I have a content type starting with T

It’s been a while since I have posted about new content types. Partially, that’s because I have created some which would be very nice to have, but which have been sponsored by a private company that doesn’t allow reuse. Partially, there has not been a new content type because I had not created any 🙂 But maybe that was just the silence before the storm. Wink. Wink.

For starters, as an early X-Mas present, here’s H5P.Transcript that has been sponsored by the Hochschule für Angewandte Wissenschaften (HAW) in Hamburg, Germany. The content type’s name basically gives it all away. You can use H5P.Audio, H5P.Video or H5P.InteractiveVideo, upload a WebVTT file that holds the text transcript including time stamps, and then you get something like this:

Don’t mind the video, it’s old … 😉 You could use an audio file as well, and if your WebVTT features voice tags – that’s fine with Transcript. It will display them.

The current position will be highlighted in the text, and in the interactive variant, you can click on a text snippet and let the medium seek to that position.

As you can see, you can hide the transcript altogether, toggle between a plain text mode and an interactive mode that highlights the current text snippet (both the needs for accessibility for visually impaired people and keyboard use for others can be served this way), you can toggle line breaks to suit your preference and you can choose whether in interactive mode the text should scroll automatically in order to keep the highlighted text visible within the text box. Oh, and there’s a search box for you, so you can look for text in the transcript text and highlight it. And maybe I have even added a feature that’s not active yet, because after having implemented it, I didn’t think it was too useful. If you find the Easter egg and you think it’s relevant, let me know 🙂

You can use the content type with the keyboard if you prefer, accessibility should be fine, scores from interactive videos will be transferred to gradebooks (so xAPI is supported), the current state can be saved/restored (using H5P’s “save content state” feature), and I guess that’s it.

Update (March 1, 2023): Hochschule Hannover sponsored two new features that are available as of version 1.1.0:

  • Multiple transcripts: One could add transcripts in different languages – yes, fully aware that then those are not transcripts 🙂
  • Chapter marks: One can optionally add chapter marks in mp4chaps format (or automatically reuse bookmarks of Interactive Videos).

Why a separate content type?

You wonder why this feature was not included in H5P.Audio, H5P.Video and H5P.InteractiveVideo directly? That would definitely make sense, because that might save you a little time when setting up a transcript, and those can already be used as subcontent in other content types such as H5P.Column. While I could have done this as “pull requests” to the original code repositories, I could not control in any way if and when my code would actually make it into the official code base. There are plenty of other pull requests that the H5P core team needs to take care about already, they are busy, busy, busy, and testing all the possible combinations for problems of contents and subcontents really takes some time. You (and the HAW) would likely have to wait quite a while. BUT: That transcript functionality is nicely encapsulated in a separate library that could easily be used if the H5P core team decides to add support for transcripts in one of the other H5P content types.

Why not plain text files? How do I obtain WebVTT files?

If you don’t need an interactive transcript: You can simply use H5P.Column and put a text field with the transcript underneath 🙂

WebVTT files are merely plain text files with some very simple syntax that defines when to show a text snippet in a video – or highlight in this case. Also works for audio, of course, even though it was not intended for that medium.

A nice tool for generating these is YouTube. Option #1 it to upload a video and use YouTube’s subtitle editor to create subtitles from scratch. Option #2 is to use the automatically generated version and create a duplicate. Creating a duplicate is important, because the resulting WebVTT file is not feasible otherwise. Then download the file you created or the duplicate as .vtt file.

Want to use it already?

I will ask the H5P core team to review the content type. Afterwards, they should release it on the H5P Hub, but this process usually takes some time. If you want to use the content type right away, look for the Reuse button underneath the content. Use that button to download the demo content, and then upload the .h5p file onto your H5P platform in the H5P Hub. Please note that you will need to have permission to install H5P libraries. Otherwise, you cannot install the content type this way. In that case, your system admin will need to assist you.
The source code is available as well:

Any future plans for that content type?

You may wonder what I intend to add to this content type. I don’t know. Could be something, could be nothing at all. I am open for ideas either way. But please keep something in mind: I coded this content type, but it’s not mine. I coded it at a discount rate as I usually do if the result bears an open source license. I’ll take care of all the change requests that the H5P core team may have to bring the content type onto the H5P Hub. Additionally, I suppose that I will find time to help you on the H5P forum if you have questions. That’s what I usually do anyway. But if you claim free support as if it was your right, you’ll most likely get a “no” from me. The same applies if you expect me to add features pro bono to solve your specific problems. I may add things, but at my own time – or expect you to toss me a coin. I hope you understand that. Not all do, as I know from bad experience.