ricecooker: Kolibri Content Integration Tools

The Kolibri channels used by Kolibri are created using Kolibri Studio, which is a central content repository, an online channel editor, and the home of the Kolibri Content Library. Using ricecooker you can convert existing educational content (documents, audios, videos, HTML apps, etc.) into Kolibri channels ready to be uploaded to Kolibri Studio and used offline in Kolibri.

The basic process of getting new content into Kolibri is as follows:

  • UPLOAD your content to Kolibri Studio using one of two methods: (1) manually uploading through the Kolibri Studio web interface, or (2) using a content integration script based on the ricecooker framework.

  • PUBLISH the channel on Kolibri Studio to make it accessible for use in Kolibri.

  • IMPORT the channel into Kolibri using the channel token displayed in Kolibri Studio after the PUBLISH step is done.

Overview of steps for integrating external content sources for use in the Kolibri Learning Platform.

Content flow within the Kolibri ecosystem. External content sources (left) are first uploaded to Kolibri Studio (middle) so they can be imported into the Kolibri Learning Platform (right).

Non-technical documentation redirects

The ricecooker docs are mainly a technical documentation project intended for readers with prior experience with programming and running command line scripts. If you’re not a tech person, no worries. You can do everything that ricecooker scripts can do through the Kolibri Studio web interface. We redirect you to the channel create and add your content info in the Kolibri Studio docs.

We recommend reading the Kolibri Content Integration Guide which is a comprehensive guide to the decisions, processes, and tools for integrating external content sources for use in the Kolibri Learning Platform.

Technical documentation

If you’re still reading this, we’ll assume you’ve got access to the internet, and some prior experience with Python, in which case the technical documentation is for you.


Guide to installing the ricecooker package and system dependencies on Linux, Mac, and Windows.

Getting started

A step-by-step guide to writing your first content integration script based on the Ricecooker framework including sample code.

Intermediate topics

Once you’ve completed the Getting started steps, you can read the following pages to take your ricecooker game to the next level.

Ricecooker API reference

Discover the kinds of content nodes like HTML5App, video, audio, document, and exercises nodes you can use to build Kolibri channels.

HTML5 Apps

Learn how to scrape websites, parse HTML, and debug the HTML5 App nodes.

Concepts and workflow

Understand the main concepts, terminology, and workflows for creating Kolibri channels, as well as the review process.

Advanced topics

Developing your Python automation superpowers, requires mastering lots of different techniques specific for different kinds of content sources. Use the links below to jump to the specific topics that you want to learn about.

Command line interface

Use command line options like --thumbnails (auto-generating thumbnails), and --compress (video compression) to create better channels.

Utility functions

Learn what tools are available for: downloading, creating and debugging HTMLZip files, video compression, splitting PDFs into chapters, and the CSV metadata workflow.

Developer docs

Explanations about how the ricecooker works in full details, including the computed ids, the upload process, and bulk corrections scripts.