Skip to main content

turns a collection of documents into a browsable ZIM file

Project description

Nautilus

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

CodeFactor License: GPL v3 codecov PyPI version shields.io PyPI - Python Version Docker

It downloads the video (webm or mp4 format – optionally recompress it in lower-quality, smaller size), the thumbnails, the subtitles and the authors' profile pictures ; then, it creates 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 it can also be provided separately (see below).
  • it should only contain to-be-included files. No filtering is done.
  • Audio and video files should be in ogg format with an .ogg/.ogv extension to be supported on all platforms (mp3/mp4 would work only on platforms with native support).
cd content/path
zip -r -0 -T ../content_name.zip *

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 file needs to provide the following fields for each item in an array:

[
    {
        "title": "...",
        "description": "...",
        "authors": "...",
        "files": ["relative/path/to/file"]
    },
    {
        "title": "...",
        "description": "...",
        "authors": "...",
        "files": [
            {
                "archive-member": "01 BOOK for printing .pdf",  // optional, member name inside archive (same as simpler format)
                "url": "http://books.com/310398120.pdf",  // optional, has precedence over `archive-member`, url to download file from
                "filename": "My book.pdf",  // optional, filename to use in ZIM, regardless of original one
            }
        ]
    }
]

About page

Either inside the archive ZIP as /about.html or elsewhere, specified via --about myabout.html,

  • You may supply an about page in HTML format. It will be displayed in a modal popup and will be included.
  • At its bottom your secondary-logo if provided.
  • Use only content tags (no <html /> nor <head /> nor <script /> etc)
  • Use inline styling if required, but no styling is recommended.
  • Include one logo inline if required.

Usage

 nautuluszim --help
usage: nautuluszim [-h] [-V]

# everything bundled in a ZIP
nautiluszim --archive my-content.zip

# In this mode every file entry must have a valid url.
nautiluszim --collection https://example.com/to-your-collection-file

Installation

You'd want to install it in a dedicated virtual-environment (python3 -m venv some-env && source ./some-env/bin/activate)

 pip install nautiluszim

Contributing

 pip install -e .

Notes

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

Nautilus adheres to openZIM's Contribution Guidelines.

Nautilus has implemented openZIM's Python bootstrap, conventions and policies v1.0.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nautiluszim-1.2.0.tar.gz (46.6 kB view details)

Uploaded Source

Built Distribution

nautiluszim-1.2.0-py3-none-any.whl (43.7 kB view details)

Uploaded Python 3

File details

Details for the file nautiluszim-1.2.0.tar.gz.

File metadata

  • Download URL: nautiluszim-1.2.0.tar.gz
  • Upload date:
  • Size: 46.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for nautiluszim-1.2.0.tar.gz
Algorithm Hash digest
SHA256 4e422501435470de66d6f602df33fc1b83fb3c90db214bb6b76ebe842b2e7de3
MD5 34aecabd7bb530d1569ed48a841c939c
BLAKE2b-256 8eefa5d3865131d7e1ec1f338b1c745184f18f59b11c18433443cc3bfbee7f45

See more details on using hashes here.

File details

Details for the file nautiluszim-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: nautiluszim-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 43.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for nautiluszim-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d25f40325e819bf6f8781b2adb2b1a8d4fac988c38ad764f916f39e6c444b3fd
MD5 889cea07a3bda94e9a043547d055307e
BLAKE2b-256 db29b6c30ab2f8a5523d61c1dc49cfcdaecc5740b3dc66a44b27daebc6a53f39

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page