# Changelog of MOBI to EPUB Converter - AZW3, AZW and PRC (`marcel-rbro/mobi-to-epub`) Actor

- **URL**: https://apify.com/marcel-rbro/mobi-to-epub/changelog.md
- **Full Actor documentation**: https://apify.com/marcel-rbro/mobi-to-epub.md

## Changelog

### 0.2 - 2026-08-26

Batch conversion.

- Converts up to 100 books in one run. The new `files` input is a multi-file upload in Console and an
  array of URLs from the API; `filesBase64` is its base64 equivalent. The single-file `file` and
  `fileBase64` inputs still work as aliases, so existing callers and saved input configurations do not
  change.
- A book that cannot be converted no longer fails the run. It gets a dataset record with `ok: false`
  and the reason, and the rest of the library converts. The run only fails if nothing converted. This
  matters most for DRM: most `.azw` and `.mobi` files bought from Amazon are protected, so a real
  folder of ebooks contains some that cannot be converted at all. The run's last log line reports how
  many books converted, how many failed and how many failed on DRM.
- `OUTPUT`, which is what `run-sync` returns, is the converted EPUB when the run produced one and
  `epubs.zip` when it produced several. Past 192 MB of EPUBs the archive is skipped and `OUTPUT`
  becomes a `MANIFEST.json` listing the individual records.
- Output keys no longer overwrite each other. A second `book.mobi` is stored as `book-2.epub`.
- The dataset holds one record per source file rather than one per run, with `ok`, `error`,
  `drmProtected` and `conversionSeconds` fields.
- Conversion time is now budgeted explicitly. A book converted on its own keeps the full 15 minutes;
  in a batch each book gets five minutes out of 30 for the run, so one omnibus cannot consume a run of
  fifty novels, and books left when the budget is gone are recorded rather than silently dropped. Each
  book is logged as it starts, so a stalled run names the book it stalled on.
- Caps on a run: 100 files, 200 MB of source files in total and 100 MB for one book. Downloads have a
  two-minute timeout, so one unresponsive URL cannot stall a batch.
- `outputFilename`, `bookTitle` and `bookAuthors` are ignored when converting more than one book, since
  they would name every output the same thing or stamp one title onto every book.

### 0.1 - unreleased

Initial version.

- Converts MOBI, PRC, AZW, AZW3 and PalmDOC files to EPUB 2 or EPUB 3 with calibre's `ebook-convert`.
- Accepts the source file as a URL (including the Apify Console file upload field) or as base64.
- Detects DRM from the MOBI header and fails with an explicit message instead of a calibre stack trace.
- Writes the result to the key-value store under both `OUTPUT` and its filename, and pushes one
  dataset record per conversion.
