Add your file
Choose or drop a .epub file. You can paste the contents instead.
Choose an .epub file and the viewer opens its ZIP container, checks the stored mimetype entry, follows META-INF/container.xml to the OPF package and lists the book's metadata: package version, title and subtitle, creators and contributors with their role codes, publisher, language, publication and modification dates, subjects, rights and description. Every dc:identifier appears with its scheme; the unique identifier is starred, and values shaped like ISBN-10, ISBN-13 or UUID are labelled, with the ISBN check digit computed. The spine is shown in reading order with each item's idref, href, media type and linear flag, beside a nested table of contents taken from the EPUB 3 nav document or the EPUB 2 NCX. Manifest counts by media type, spine references that point nowhere, extra rootfiles and obfuscated fonts get their own tables, and both the metadata and the table of contents can be exported as JSON files.
or drop a file here
Choose or drop a .epub file. You can paste the contents instead.
The file is read and parsed in this browser — nothing is uploaded.
Look over what came back, then copy it, download it, or move on.
Want to know how files are handled? Read the privacy notice →
Pick the .epub file and the metadata panel lists title, subtitle, creators with roles, publisher, language, dates, subjects, rights and description straight from the OPF. Each value is shown exactly as the file stores it, odd spacing and line breaks included, so you see what a reading app or bookstore would actually receive rather than a cleaned-up version.
The ISBN sits in a dc:identifier element of the OPF package, and the identifiers table lists every identifier with its scheme and element id, starring the one the package names as unique. A 13-digit (978/979) or 10-digit value is recognised as isbn when its check digit passes or when it is explicitly labelled ISBN, for example with urn:isbn:. The check-digit result itself is saved as isbnChecksumValid in the metadata JSON, so a mistyped labelled ISBN can be spotted there.
No. The EPUB is unzipped and parsed inside your browser tab using the browser's own decompression, and it is not sent anywhere. The container, the OPF and the navigation file are read, plus META-INF/encryption.xml when the book has one so protection can be detected; nothing else is decompressed. Results are not saved in browser storage, so closing the tab discards them.
Open this page in a current Chrome, Edge, Firefox or Safari on Windows or macOS and choose the file; nothing has to be installed. The tool needs the browser's built-in deflate-raw decompression, so a very old browser reports that decompression is unavailable, and updating it solves that.
Yes, in a recent mobile browser: tap the file picker, select the EPUB from Files or Downloads, and the same metadata, spine and contents tables appear. Wide tables scroll sideways on small screens. Older iOS versions that lack the needed decompression support show a clear message instead of partial results.
An EPUB must start with an uncompressed entry named mimetype containing exactly application/epub+zip; files re-zipped with an ordinary archiver usually compress it or move it. Export the book again from the program that created it, or use a packaging step that writes mimetype first and stored, then open the new file.
When the file contains Adobe, Apple or Readium licence files, or an encryption.xml covering more than fonts, the viewer stops and shows no metadata, spine or contents. This is deliberate and nothing is decrypted. To see the book's details, use the reading app or store it came from. Books with only font obfuscation are handled differently: their metadata is shown with a note that fonts were not deobfuscated.
An EPUB can be up to 50,000,000 bytes (about 50 MB); larger files are refused before anything inside is read. Each XML part that is read may expand to 16 MiB. Because chapters and images are never decompressed, picture-heavy books under the limit open quickly; ZIP64 archives are not supported at any size.
The viewer only parses the container, the OPF, the navigation file and, if present, encryption.xml as plain data; it never renders chapters, runs scripts or fetches remote resources referenced by the book. Remote references are merely counted as a warning, and XML depth, node and attribute counts are capped. That says nothing about how the book behaves in a reading app that does run scripts.
Not necessarily. A passing ISBN check digit only proves the digits are internally consistent; it cannot confirm the number was assigned to this book or this edition. Publishers sometimes reuse the print edition's ISBN or carry over a number from another format, so compare it with the copyright page or a catalogue record before relying on it. Likewise, a filled-in metadata panel does not mean every part was readable: if the table of contents is missing or broken, metadata still appears alongside a navigation warning.
The spine is the order a reading device pages through; the table of contents is a navigation menu that can skip files or point inside them. They often disagree: covers and notes may be in the spine but absent from the contents. Spine items marked linear=no are flagged, not hidden. For EPUB 3 the contents come from the nav document, for EPUB 2 from the NCX.
Yes. The metadata block and the table of contents each have a JSON download, named after your file, with every value copied verbatim and the unique identifier flagged. That makes them easy to feed into a catalogue or spreadsheet script. If a preview exceeds 120,000 characters it is truncated and the download is withheld.