Skip to content
Turns a collection of documents into a browsable ZIM file
Python JavaScript CSS HTML Shell Dockerfile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


CodeFactor License: GPL v3 PyPI version

nautilus turns a collection of documents into a browsable ZIM file.

It downloads the video (webm or mp4 format – optionnaly recompress them in lower-quality, smaller size), the thumbnails, the subtitles and the authors' profile pictures ; then, it create a static HTML files folder of it before creating a ZIM off of it.

Preparing the archive

To be used with nautilus, your archive should be a ZIP file.

  • it doesn't need to be structured, but it can.
  • it doesn't need to be compressed. It's usually recommended not to.
  • it should contain a collection.json file, but not required (see bellow).
  • it should only contain to-be-included files. No filtering is done.
  • Audio and video files should be in ogg format with .ogg/.ogv extension to be supported on all platform (mp3/mp4 would work only on platform with native support).
cd content/path
zip -r -0 -T ../ *

JSON collection file

Either inside the archive ZIP as /collection.json or elsewhere, specified via --collection mycollection.json, you must supply a JSON file describing your content.

The user-interface only gives access to files referenced properly in the collection.

At the moment, the JSON files needs to provide the following fields for each item in an Array:

        "title": "...",
        "description": "...",
        "authors": "...",
        "files": ["relative/path/to/file"]


  • zimwriterfs for ZIM file packaging. Use --no-zim to skip this step.
  • wget and unzip to install JS dependencies. See if you want to do it manually.
  • wget is used to download archive files as well.


nautilus is a python program. if you are not using the docker image, you are advised to use it in a virtualenv. See requirements.txt for the list of python dependencies.


docker run -v my_dir:/output openzim/nautilus nautiluszim --help


pip install nautiluszim
nautiluszim --help


nautiluszim --archive


  • On macOS, the locale setting is buggy. You need to launch it with LANGUAGE environment variable (as ISO-639-1) for the translations to work.
LANGUAGE=fr nautiluszim --language fra



You can’t perform that action at this time.