Installation
Ricecooker chef scripts are typically developed inside their own project, managed
with uv. Add ricecooker as a dependency in your
chef project’s pyproject.toml and run uv sync to install it and its Python
dependencies. You’ll need Python 3.9-3.13 (matching ricecooker’s supported
range), as well as some software for file conversions: ffmpeg and poppler for
media, and pandoc for converting documents (.docx, .odt, .rtf, .md) to KPUB.
In the next fifteen minutes or so, we’ll setup your computer with all these things so you can get started writing your first content integration scripts.
System prerequisites
The first step will will be to make sure you have python3 installed on your
computer and three additional file conversion tools: ffmpeg for video compression,
the poppler library for manipulating PDFs, and pandoc for converting article-style
documents (.docx, .odt, .rtf, .md, .markdown) to KPUB.
Jump to the specific instructions for your operating system, and be sure to try the Checklist commands to know the installation was successful.
Linux
On a Debian or Ubuntu GNU/Linux, you can install the necessary packages using:
sudo apt-get install git python3 ffmpeg poppler-utils pandoc
You may need to adjust the package names for other Linux distributions (ContOS/Fedora/OpenSuSE).
Checklist: verify your python version is between 3.9 and 3.13 by running python3 --version.
If no python3 command exists, then try python --version.
Run the commands ffmpeg -h, pdftoppm -h, and pandoc -v to make sure they are available.
Mac
Mac OS X users can install the necessary software using Homebrew:
brew install git python3 ffmpeg poppler pandoc
Checklist: verify your python version is between 3.9 and 3.13 by running python3 --version.
Also run the commands ffmpeg -h, pdftoppm -h, and pandoc -v to make sure they are available.
Windows
On windows the process is a little longer since we’ll have to download and install
several programs and make sure their bin-directories are added to the Path variable:
Download Python from https://www.python.org/downloads/windows/. Look under the Python 3.9.x heading and choose the “Windows x86-64 executable installer” option to download the latest installer and follow usual installation steps. During the installation, make sure to check the box “Add Python 3.9 to path”.
Checklist: after installation, open a new command prompt (
cmd.exe) and type inpython --versionandpip --versionto make sure the commands are available.
Download
ffmpegfrom https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-win64-gpl.zip. Extract the zip file to a permanent location where you store your code, likeC:\Users\User\Toolsfor example. Next, you must add thebinfolder that containsffmpeg(e.g.C:\Users\User\Tools\ffmpeg-4.1.4-win64-static\bin) to your user Path variable following these instructions.Checklist: Open a new command prompt and type in
ffmpeg -handffprobe -hto verify the commandsffmpegandffprobeare available on your Path.
Download the latest release archive from poppler-windows. You will need to download and install 7-zip to “unzip” the
.7zarchive. Extract the file to a some permanent location in your files. Add thebinfolderpoppler-0.xx.y\binto your Path variable.Checklist: after installation, open a command terminal and type in
pdftoppm -hto make sure the commandpdftoppmis available.
Install
pandocfor converting documents to KPUB. The simplest option is the MSI installer from https://github.com/jgm/pandoc/releases, which addspandocto your Path automatically; alternatively runchoco install pandocif you use Chocolatey.Checklist: open a new command prompt and type in
pandoc -vto make sure the commandpandocis available on your Path.
We recommend you also download and install Git from https://git-scm.com/downloads. Using git is not a requirement for the getting started, but it’s a great tool to have for borrowing code from others and sharing back your own code on the web.
If you find the text descriptions to be confusing, you can watch this video walkthrough that shows the installation steps and also explains the adding-to-Path process.
Optional: headless page archiving (single-file-cli)
This is only needed if your chef archives a JavaScript/SPA page — i.e. it
adds a node whose source URL serves an HTML page (see the render handler and
examples/pagearchive/sushichef.py). The DOWNLOAD stage detects such URLs and
renders them headlessly; the core ricecooker install and every other file type
work without it.
Page archiving shells out to the single-file-cli Node binary, which drives a headless Chromium/Chrome to render the page. Install both:
single-file-cli (needs Node.js — any recent LTS):
npm install -g single-file-cli
Chromium or Chrome: install via your OS package manager or from google.com/chrome — Linux:
sudo apt-get install chromium(orchromium-browser); Mac:brew install --cask google-chrome; Windows: the Chrome installer. If the browser is not on yourPATH, pass its path to the node viacontext={"browser_executable_path": "..."}.
Checklist: run single-file --help to confirm the binary is available.
Installing Ricecooker
Create a pyproject.toml for your chef project (or use an existing one), then run:
uv add ricecooker
uv resolves and installs ricecooker and all the Python packages required to
create content integration scripts into your project’s .venv, and records the
dependency in pyproject.toml.
Contributing to ricecooker itself
If you’re contributing to ricecooker itself (not just writing a chef script),
see AGENTS.md for the contributor quick start.
Reporting issues: If you run into problems or encounter an error in any of the above steps, please let us know by opening an issue on github.
Okay so now we have all the system software and Python libraries installed. Let’s get started!