The ƎPUB Redactor icon

The ƎPUB Redactor

A free bulk EPUB metadata editor for Windows and Linux, built for prepping ebooks for Kobo and other e-readers.

Download latest release View source on GitHub
The ƎPUB Redactor's main window: a table of 1518 loaded EPUB books with Filename/Status/Title/ISBN/Author(s)/Series/Genre columns, and the selected book's editable metadata fields and cover image in the left-hand panel.
Bulk-loaded library of 1,500+ books, with the metadata panel and cover for the selected title.

What it does

The UX is modeled on mp3tag: load a folder of EPUB books into a table, select several at once, and apply the same field changes to all of them in one go — no opening files one at a time.

Features

Scripting: info, set, rename, move, convert, validate and redact also run from the command line: see the command line guide below.

Redact, and everything since

Everything below is in the current release. Redact is the one-click path; the individual tools above remain available.

Redact steps: fix validation issues, deduplicate manifest ids, rebuild the manifest, repair navigation, generate a table of contents (a real one from headings is applied; a generic “Section N” one goes to review), strip HTML from the description, detect a blank language, read ISBN, publisher, year and series from the front matter, clean up authors (only the sure fixes are applied; guesses are named in the report), fill empty fields from lookups — a local ISFDB database first (it also fills an empty series and series number), then the local Open Library database, then Google Books and Open Library online — cover (by ISBN for a missing or junk-flagged one, else a generated cover when there is none), fill empty fields from the folder path, and remove running headers and page numbers. Optional, off by default: rename by pattern, move into folders, remove orphan files and the page-header step (twenty or more headers apply automatically, fewer go to Needs review). Each changed book is written to a temp file, checked (it reopens, nothing lost, no new errors) and only then swapped in.

Where the metadata comes from

The ƎPUB Redactor works on its own: editing, validation, covers generated from metadata and Table of Contents generation need no outside source, and it stores no keys or accounts. Lookups are optional and every one is a review-then-Apply step. Online sources are only asked when you run a lookup. The local database is built from files you download; the app never bundles or downloads them. In Redact, the “Fill empty fields from lookups (local database first)” step asks the local Open Library database first when one is set up, then Google Books and Open Library online for whatever is still empty; it never changes a field that already has a value, and weaker matches go to Needs review. It asks a local ISFDB database before that, which also fills an empty series and series number. The hub has all four apps side by side, and every local database with the file it needs.

Online sources

SourceWhat it providesWhat you needNotes
Google Books Title, authors, publisher, year, ISBN, genre, language, description and a cover, by title / author or ISBN. Nothing: no key or account. Metadata > Look Up > Google Books.
Open Library (web API) Title, authors, publisher, year, ISBN, genre (subjects) and cover. Language is not imported. Nothing: no key or account. Metadata > Look Up > Open Library.
Open Library covers A cover image fetched by ISBN or by Open Library cover id. Find Better Covers offers it only when it is larger than the current cover; Redact’s cover step can use it too. Nothing. Open Library limits cover lookups by ISBN per computer, and the app stops with a message when it refuses. Nothing is fetched except by those actions.
Calibre, through your own install Title, authors with sort names, series, publisher, date, tags, ISBN and description, as found by whichever metadata sources you have enabled in Calibre. Calibre installed on your computer. The app runs Calibre’s own fetch-ebook-metadata command; it does not load Calibre’s plugins itself or bundle Calibre. Metadata > Look Up > Calibre. Which sites are asked is decided by your Calibre settings, not by this app.

Local (offline) sources

SourceWhat it providesWhat you needNotes
Open Library data dumps Title, authors, publisher, publication date, ISBN and language, by ISBN or by title and author, with no network and no rate limits. No genre or description. A local match also records Open Library’s cover id, and Find Better Covers and Redact’s cover step fetch that cover directly by id. You download the dumps yourself from openlibrary.org/developers/dumps: the editions dump, plus the authors dump for author names (or the single all-types dump), and optionally the works dump to give authors to editions that list none. Tools > Open Library Database builds the database; Cancel is safe, and an existing database is never left half-built. Metadata > Look Up > Open Library (Local Database) then searches it by ISBN, else by title and author. Only editions with a valid ISBN are kept, in the languages you tick (English, Norwegian, Italian, German and French by default, or all). Roughly 2.5 GB for 8 million editions in the default languages (an estimate from measured samples). The optional works dump adds roughly 10–15 minutes and about 1 GB of temporary disk (an estimate).
ISFDB backup The book’s series and series number (numbers like 2.5 are kept), with authors, publisher, date and language, by ISBN or by title and author. Translated titles inherit the original’s series. Science fiction, fantasy and horror only. No genre, no description, no cover. A match on the book’s own ISBN is trusted; a title and author match goes to Needs review, and the ISBN is only filled when it is safe (an ebook edition, or a print edition from the very year the book already says). You download the ISFDB’s MySQL backup yourself from isfdb.org (backup-MySQL-55-YYYY-MM-DD.zip, about 340 MB; it needs no unpacking). Tools > ISFDB Database builds the database; Cancel is safe. Metadata > Look Up > ISFDB (Local Database) then searches it by ISBN, else by title and author. Measured on the 2025-12-27 backup: the build took under two minutes and gave a 154 MB database with 425,000 books (211,000 in a series) and 638,000 editions with an ISBN. The ISFDB’s web API has no series or title lookup, which is why the app reads the backup. Redact asks it before Open Library.

From the file itself

ISFDB data is licensed under Creative Commons Attribution; the app credits the ISFDB under Help > Credits, and the backup is downloaded by you, never by the app.

Licences and required acknowledgements for these sources are collected under Data and licences on the hub.

Command line

The ƎPUB Redactor can be driven from a terminal, a batch file or Task Scheduler. It is the same program: there is no second download. epubredactor.exe with a command name as its first argument runs that command and never opens a window; with no arguments, or with a file or folder, it opens the window as before. The commands use the same code as the window, so they give the same results, and not every window function has a command: these are the ones meant for scripting.

CommandWhat it does
infoShow each book's validation status, whether it has a cover, and its metadata.
setSet or clear metadata (-s Series=Dune -s series_index=2); several authors or genres are separated by ;. The saved file is read back, so a value the EPUB cannot hold is reported instead of claimed.
renameRename from the metadata with a pattern such as %series% %series_index% - %title%.
moveMove or copy into a folder tree under your library root, %authors%/%series%/%title%.
convertTurn MOBI, AZW3, DOCX, FB2 and the other formats Calibre reads into EPUB (needs Calibre); the original goes to the Recycle Bin only after the new EPUB opens.
validateList the structural problems of each book; --fix repairs the fixable ones and saves.
redactRun the same Redact recipe as the window: repair, clean up, tags from the path and file name, lookups, cover, rename, move.
epubredactor info "D:\Books\Dune" --all
epubredactor set "D:\Books\Dune" -s series=Dune -s series_index=1 -n
epubredactor validate "D:\Books" --fix --json -o validate.json
epubredactor convert "D:\Incoming" --trash-original
epubredactor rename "D:\Books\Dune" -p "%series% %series_index% - %title%" --zero-pad 2
epubredactor redact "D:\Incoming" --disable metadata_lookup --trash-dir "D:\Trash"

Every command takes books, folders (searched recursively; -R for the top level only) or wildcards. Every command that changes books has -n / --dry-run to preview the result first. --json prints one JSON document instead of text, -o FILE writes the result to a file, and -q silences progress. The exit code says how it went: 0 done, 1 some books failed, 2 bad arguments, 70 an internal error, 130 interrupted.

A DRM-protected book is left untouched by Redact; set and validate --fix will edit one, but print a warning first, since you named the change.

Using it from scripts (Windows)

The Windows program is a windowed one, so an interactive shell does not wait for it. For automation ask for the result in a file, wait for the process, and read the exit code:

epubredactor.exe validate "D:\Books" --json --output "%TEMP%\validate.json"
if errorlevel 1 echo something failed

start /wait epubredactor.exe redact "D:\Incoming" --quiet

# PowerShell
$p = Start-Process epubredactor.exe -ArgumentList 'redact','D:\Incoming','--json','-o','C:\Temp\redact.json' -Wait -PassThru
$p.ExitCode

In a batch file write %% for each % of a pattern (-p "%%series%% %%title%%"), as cmd expands a single %name% itself. On Linux the program behaves like any command-line tool. The full reference, with every option and JSON field, is in the repository README.

Requirements

Two downloads on each release: a standalone .exe for Windows, and epubredactor-linux-x86_64.tar.gz for 64-bit Linux (Ubuntu 22.04+, Debian 12+, Fedora 36+, Mint 21+ and the like — unpack and run; settings live in ~/.config/epubredactor/). No separate Python install needed on either. Google Books / Open Library import and cover generation work standalone; format conversion via Import to EPUB requires a local Calibre installation (on Linux, found on PATH). Full details and the changelog are in the GitHub repository.

The rest of the family

The ƎPUB Redactor shares its UI and core editing patterns with three sibling tools, via redactor_common:

The ƆBZ Redactor The ɯP3 Redactor The Ʌideo Redactor

More tools

Dossier Pluteus All the Redactor Tools Kinderkopje