Skip to content

Library Layout

ZornTaov edited this page Oct 11, 2026 · 2 revisions

Library Layout

How a library is arranged, and where a comic's archive goes when you do not say.

update_comics.py finds comics by their mirror_metadata.json, so any arrangement works. The default is:

Comics/
  CBZs/                     what your reader points at
    MyComic.cbz
    SomeAuthor/
      TheirComic.cbz
  Uncompressed/             the loose pages the scraper works against
    MyComic/
      0001_page.jpg
      mirror_metadata.json
    SomeAuthor/
      TheirComic/

Keep archives in their own tree if you read over SMB, or Perfect Viewer and similar readers index every folder of loose pages as a comic. It also lets rsync pull CBZs/ alone to a phone or Chromebook.

  • Archive location without --cbz-path: (1) an archive already beside the output folder, so nothing is orphaned; (2) the mirror path under a sibling CBZs/, so Uncompressed/A/B becomes CBZs/A/B.cbz; (3) beside the folder. Chaptered comics get a folder of archives; see Packing.
  • Nesting: comics can be grouped by author or site; --max-depth (default 5) sets how deep the updater looks. Dot-folders such as .replaced and .uploads are skipped.
  • Moving: output and cbz_path are stored relative to the library root, so the library can move. To move one comic inside it, under its author for instance, use Move to another folder in the web page's Edit dialog. Moving only the pages folder by hand leaves the archive or chapter archives where they were, so the next packing writes a second set. The updater does notice the folder no longer matches output and corrects it rather than scraping a fresh copy.

Clone this wiki locally