TransWikia.com

epubcheck error: mimetype entry missing or not the first in archive

Ebooks Asked by Allan Veloso on September 1, 2021

I have an ePub that returns “mimetype entry missing or not the first in archive” error in epubcheck, even though the mimetype file is correctly placed.

How to fix that?

6 Answers

This error can occur when the mimetype is compressed inside the epub zip file. What can be done is to create a zip file with only the mimetype file inside but with no compression.

You can do that with 7-Zip setting the Compression level to Store.

In Linux, you can also do that with the terminal command:

zip -0 file.epub mimetype

Then drag and drop the META-INF and OEBPS folders to the file.zip and change the extension to .epub, as usual. With the Linux terminal you can use this command line instead:

zip -9 -r file.epub META-INF OEBPS

Correct answer by Allan Veloso on September 1, 2021

The trick is to SELECT the files in the order in which they are to be stacked.

For Windows users, do the following:

  1. Go to the folder that contains your ePub files.
  2. CTRL+CLICK to select your files in the following order: (a) mimetype, (b) META-INF folder, and then (c) OPS folder.
  3. With all three items are selected (in that order), RIGHT-CLICK, and then select Send To > Compressed (zipped) folder.
  4. Change your .zip file type to .epub.
  5. Run it through the ePub Validator to confirm the file.

Good luck!

Answered by John on September 1, 2021

zip -X0 ../myEPUB.epub mimetype
zip -9 -r ../myEPUB.epub META-INF OEBPS

another common error i was getting was extra characters in mimetype 'Mimetype file should only contain the string 'application/epub+zip' and should not be compressed' I found that my editor Geany was adding a newline when I saved the file and this caused an epubcheck error - a tweak in Geany's preferences fixed this error and epubcheck returned no errors

Answered by Jonathan O'Gorman on September 1, 2021

7-zip sorts files by names

  1. rename mimetype to ##mimetype
  2. Add to archive... ##mimetype
    Archive: book.zip
    Archive format: zip
    Compression level: Store
    OK
  3. Add to archive... the other folders META_INF EPUB
    Archive: book.zip
    Archive format: zip
    Compression level: Normal
    OK
  4. Open archive... book.zip
    rename: ##mimetype to mimetype
    OK
  5. rename book.zip to book.epub

Answered by fstil on September 1, 2021

Here are the steps I used to force the "mimetype" file to be the first in the EPUB archive using 7-Zip in Windows:

  1. Make a copy of your EPUB (zip) file (e.g. MyBookCopy.epub), so to not damage your original EPUB file in case things go wrong.

  2. Extract all of the files from MyBookCopy.epub into an empty folder (e.g. MyFolder)

  3. Using the 7-zip UI, delete all the files in MyBookCopy.epub except the “mimetype” file

  4. Using the 7-zip UI, rename the “mimetype” file to “##mimetype” (this will ensure it remains listed first under the covers)

  5. Using the 7-zip UI, re-add all the other epub files in MyFolder into your EPUB file (i.e. drag & drop all these files into the 7-zip window where your epub is open)

  6. Using the 7-zip UI, rename the “##mimetype” file back to “mimetype” (this will not alter its actual order in the ZIP file, even if its order changes in the UI)

Note: At any time, you can verify the actual order of the files in your EPUB file by running this command in a command prompt window: 7z l -slt "MyBookCopy.epub" (in the resulting output, locate the entry for the “mimetype” file and check that its “offset” value is “0” which means it’s the first file stored in the EPUB file).

Answered by Pi Da on September 1, 2021

As the accepted answer states, the mimetype file should be stored uncompressed in the archive. For those looking for a programmatic way to validate and package an EPUB I recommend using the Java EPUBCheck tool by W3C. You can use it as a command line tool and as a Java library. The tool allows you to validate an expanded EPUB folder and save it as an EPUB compressed archive upon successful validation.

Example command:

java -jar epubcheck.jar epub/ --mode exp --save

Read the wiki.

Answered by valentin on September 1, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP