Adds all required Fedora objects to allow users to ingest and retrieve Oral Histories (video/audio) files through the Islandora interface
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Oral Histories Solution Pack

DOI Build Status


Provides a content model for Oral Histories and a viewer for displaying timed text content (XML or WebVTT) alongside video and audio files.

The software leverages the existing Video and Audio solution packs to create derivatives from source files, and provides the ability to append a transcript and closed captioning file that is then exposed in a video.js based player. Transcripts can contain multiple tiers corresponding to different languages and speakers. The module is designed to acommodate any time-encoded description of a video or audio file.


This module requires the following modules/libraries:


Install as usual, see this for further information.

A fork of Pinedrop's Transcripts UI has been included as a submodule. As part of the installation, you will need to enable this submodule either through Drupal's module administration interface or via drush on the command line.



The module configuration requires a modification to the Gsearch XSLT in order to index XML and WebVTT datastreams. Informaiton for how to do this is provided in the project wiki.

Transcripts UI

Navigate to Islandora » Solution Pack Configuration » Oral Histories Solution Pack and then click the TRANSCRIPTS UI tab. (admin/islandora/solution_pack_config/oralhistories/transcripts). "Tiers" and "Speaker names" need be configured based on the transcript xml file. It will look like this: TIER_ID|TIER_NAME.

For example, in the example transcript xml file below, the TIER_ID will be or_transcript (xml tag with 'or_' prefix). TIER_NAME could be any text label that users will see, such as Transcript. Together they should look something like: or_transcript|Transcript.

There are a number of options included by default; you'll want to get rid of most of them.

  • Entering at least one value here is required, or your transcripts will not display

You must add all TIER_ID|TIER_NAME pairs relevant to your collection to the configuration, as different transcript files may have different tiers (xml tags) and tier_names.

Oral Histories Module

There are some configuration options in Administration » Islandora » Oral Histories Solution Pack (admin/islandora/solution_pack_config/oralhistories) page:

  • Check the boxes which are relevant to your use; these might include:
    • "Create WEBVTT file for captions or subtitles" -- if you'd like the module to automatically create a caption file
    • "Enable captions/subtitles display" -- if you'd like to display the captions
    • "Enable transcript display" -- this one is the most important because it's what allows your transcript scroller to display


The viewer currently works with the Bootstrap theme. For non-Bootstrap themes, including certain Bootstrap-based themes, additional files are provided to enable bootstrap elements required by the viewer. View the project wiki for additional details.

Transcript File Formats

This module supports transcript files in WebVTT and in a custom XML format. For additional information on ingest processes, visit our project wiki. The XML format should look similar to the following:

<?xml version="1.0" encoding="UTF-8"?>
    <!-- If the entire transcript has one speaker only, use 'solespeaker' element.
         Then skip 'speaker' element in 'cue' element level. But DO NOT use them in both places.
         If 'solespeaker' element presents in the document, following 'speaker' elements will be ignored. -->
    <solespeaker>One Speaker</solespeaker>
        <speaker>Different Speaker</speaker>
        <!-- 'start' and 'end' elements are start time and end time in seconds for the cue. -->
        <!-- 'transcript' and/or 'translation' are default content tiers of the cue.
              Extra tier(s) can be added as long as they are listed in the configuration page.
             'transcript' element is required if 'Enable captions/subtitles display' is configured to be true. -->
        <transcript>This is the transcript text content.</transcript>
        <translation>This is the annotation content.</translation>

    <!-- add more cues with above structure.-->


Once you have chosen xml tags for your use case, please make sure the structure of the child elements in tag are consistent in the same transcript xml file, even if some child elements are empty. This will ensure sure those child elements are indexed with the correct sequence numbers so they can be assembled properly when displaying on 'Transcript' tab.


In order to view transcripts in the user-interface, double check that anonymous and authenticated users have the Islandora - View repository objects permission enabled. You can check via the Drupal administration user-interface People > Permissions.


Current maintainers:



Note: This module would not have been possible without the support of Chris Berkowitz from the Scarborough Oral Histories Project at the Department of Historical and Cultural Studies at UTSC.


We welcome community development partners. The file provides guidelines on how you can contribute to the development of the Islandora Oral Histories Solution Pack.


GNU General Public License, version 3 or later.