Inspect
EPUB Inspector
Upload an EPUB file to see everything inside it. The inspector reads the OPF package, manifest, spine, table of contents, cover image, and all linked files. Use it to understand what an EPUB contains before converting, editing, or submitting it to a reading platform.
Input formats
Output formats
Common uses
- Check what metadata an EPUB contains before editing
- Inspect the file structure before submitting to a publisher
- Find out why an EPUB is large by seeing which files take the most space
- Check whether a table of contents is present and correctly structured
Limitations
- DRM-protected EPUBs cannot be inspected — the content is encrypted.
- Very large EPUBs (over 100 MB) may be slow to parse in the browser.
Your e-book files, handled privately
This tool runs entirely in your browser. On this site, your files are not uploaded to a server. This tool does not remove DRM or bypass copyright protection. Only upload files you own or have permission to process.
When opening the EPUB's internals helps
EPUB Inspector is a read-only X-ray of an EPUB file. It unpacks the ZIP container in your browser and surfaces what is normally hidden: the Dublin Core metadata (title, author, publisher, language, date, identifier, rights, subject, description), the OPF manifest and spine, the table of contents, every image and CSS file, and the full file tree sorted by size. Nothing is changed and nothing is produced as a download.
It fits a few concrete jobs. For e-reader and publishing work, it answers "why was this rejected" or "why does the TOC look wrong" before you resubmit to a store or hand a file to a distributor. For ebook QA and conversion checks, it confirms whether a file you exported actually contains a cover, a declared language, and a reading order. For archiving, it lets you confirm what is inside an .epub you are about to store without opening it in a reader app.
If you only want to read the book, a normal e-reader is the better tool. EPUB Inspector is for the moment you need to look under the cover at the structure itself.
Drop a file, read the report
The flow is drag-and-drop or choose-a-file, then read. There is no upload step and no output file: the EPUB is parsed locally with an in-browser ZIP reader and XML parser, so it works offline and the file does not leave the tab. Processing time scales with file size because every entry is measured to build the size breakdown.
Supported input is a standard .epub (a ZIP container with mimetype, META-INF/container.xml, and an OPF package). Both EPUB 2 and EPUB 3 are read: the table of contents is taken from the EPUB 3 nav document when present, otherwise from the EPUB 2 NCX. The report covers metadata, a stats row (total size, chapter count, image count, TOC entries), a structure checklist, the TOC, the file tree, and a list of validation issues such as a missing language, absent cover, or manifest files that are referenced but not present.
What it does not do is also worth stating plainly. It does not edit, repair, re-pack, convert, or export anything, it does not render the book pages, and if it detects DRM (an encryption.xml in META-INF) it stops and refuses rather than attempting to bypass protection. For editing metadata or adding a cover, separate FormatOS tools exist.
Where the readings can mislead
The structure checklist and issue list flag common problems, but this is a structural inspection, not a full EPUBCheck-grade validation. A file can pass every check shown here and still fail a strict validator on details the inspector does not test, such as XHTML well-formedness, CSS validity, or accessibility metadata. Treat a clean report as encouraging, not as a guarantee of store acceptance.
A few specifics trip people up. The "Chapters" figure counts HTML/XHTML files in the manifest, which is not the same as the human chapter count, since front matter, the nav file, and split sections all count. The TOC view lists up to the first 50 flattened entries, so very long books are truncated on screen. Cover detection looks for the EPUB 2 meta[name=cover] pointer and the EPUB 3 cover-image property; an embedded cover declared a non-standard way may show as missing even though a reader displays one.
A DRM-protected file will return a refusal, not a partial report. That is expected behavior, not a parsing failure. Likewise, a renamed ZIP that is not really an EPUB, or a corrupted file, produces an error rather than guesswork.
Confirming what the report tells you
Start with the structure checklist and aim for every line marked found: mimetype correct, container.xml present, an OPF package, a non-empty manifest and spine, a table of contents, and a cover. Then read the issues panel top to bottom, treating errors (missing manifest files, empty spine, wrong mimetype) as blockers and warnings (missing language, no cover) as things to decide on. Cross-check the metadata card so the title, author, language, and identifier are the values you intend to ship.
Use the file tree to sanity-check size: if one image dominates the total, that is your compression target, and if a CSS or font file you expected is absent, the styling may be broken. Compare the TOC entries against the book's real chapter list to confirm the reading order and labels look right.
For anything official, financial, or legal, verify independently. Open the file in the actual target reader or store-ingestion tool and, where compliance matters, run a formal validator such as EPUBCheck before you publish or archive. This tool tells you what is inside the file; it does not certify that the file meets a specific platform's or contract's requirements.
Frequently asked questions
No. The inspector only reads the file. Nothing is changed or uploaded.
The OPF (Open Packaging Format) file is the main descriptor inside an EPUB. It lists all the book's files, metadata, and reading order.
The spine defines the reading order of chapters inside an EPUB. Spine items are the HTML files that make up the book content, listed in the order a reading app will display them.
Related tools
Tool last reviewed: June 30, 2026 · Report a problem