Kolibri content platform

Educational content in the Kolibri platform is organized into content channels. The ricecooker library is used for creating content channels and uploading them to Kolibri Studio, which is the central content server that Kolibri applications talk to when importing their content.

The Kolibri content pipeline is pictured below:

../_images/content_pipeline_diagram.pngThe Kolibri Content Pipeline

This ricecooker framework is the “main actor” in the first part of the content pipeline, and touches all aspects of the pipeline within the region highlighted in blue in the above diagram.

Supported Content types

Kolibri channels are tree-like data structures that consist of the following types of nodes:

  • Topic nodes (folders)
  • Content types:
    • Document (ePub and PDF files)
    • Audio (mp3 files)
    • Video (mp4 files)
    • HTML5App zip files (generic container for web content: HTML+JS+CSS)
    • Exercises, which contain different types of questions:
      • SingleSelectQuestion (multiple choice)
      • MultipleSelectQuestion (multiple choice with multiple correct answers)
      • InputQuestion (good for numeric inputs)
      • PerseusQuestion (a rich exercise question format developed at Khan Academy)

You can learn more about the content types supported by the Kolibri ecosystem here.

Content import workflows

The following options are available for importing content into Kolibri Studio.

Kolibri Studio web interface

You can use the Kolibri Studio web interface to upload various content types and organize them into channels. Kolibri Studio allows you to explore pre-organized libraries of open educational resources, and reuse them in your channels. You can also add tags, re-order, re-mix content, and create exercises to support student’s learning process.

To learn more about Studio, we recommend reading the following pages in the Kolibri Studio User Guide:

When creating large channels (50+ content items) or channels that need will be updated regularly, you should consider using one of the bulk-import options below.

Bulk-importing content programatically

The ricecooker library is a tool that programmers can use to upload content to Kolibri Studio in an automated fashion. We refer to these import scripts as sushi chefs, because their job is to chop-up the source material (e.g. an educational website) and package the content items into tasty morsels (content items) with all the associated metadata.

Using the bulk import option requires the a content developer (sushi chef author) to prepare the content, content metadata, and run the chef script to perform the upload to Kolibri Studio.

Educators and content specialists can assist the developers by preparing a spec sheet for the content source (usually a shared google doc), which provides detailed instructions for how content should be structured and organized within the channel.

Consult this document for more info about writing spec sheets.

CSV metadata workflow

In addition to the web interface and the Python interface (ricecooker), there exists a third option for creating Kolibri channels by:

  • Organizing content items (documents, videos, mp3 files) into a folder hierarchy on the local file system
  • Specifying metadata in the form of CSV files

The CSV-based workflow is a good fit for non-technical users since it doesn’t require writing any code, but instead can use Excel to provide all the metadata.

Organizing the content into folders and creating the CSV metadata files is most of the work, and can be done by non-programmers. The generic sushi chef script (LineCook) is then used to upload the channel.