Validate EPUB and iBooks Author ebook files for Apple iBooks Store

Your ebook is finished! You did your homework, fixed all the nasty errors that epubcheck threw at you, and your ebook is done. The only remaining step is to send it to Apple’s review team and cross your fingers.

A week passes and…crap, Apple rejects the file for some technical reason:

> ERROR ITMS-5107: Fixed layout books must identify the start of the book’s main content by including a guide (EPUB 2) or Landmarks (EPUB 3), or provide a custom sample. For more information see the iBookstore Asset Guide in the Deliver Your Content module on iTunes Connect.

What?! epubcheck did not warn you of that, did it? No, it didn’t, because the error reported is actually not a requirement in the EPUB 3 specification. It is, nevertheless, a requirement of the iBooks Store as stated in Apple’s iBooks Asset Guide. That document describes, among other things, stuff that is required by Apple but not necessarily by the EPUB 3 specification nor, therefore, by epubcheck.

Grrr! So now you have to fix that, send the ebook to Apple all over again, and wait more time for your file to be reviewed, hoping this time you did not miss anything else required by Apple but not enforced by epubcheck. There goes another week you will never get back.

The thing is, you could actually have avoided that bummer had you used Apple’s automated online validator before sending the book to their human review team. That validation service provides instant results, and you can validate any book without even registering the book in iTunes Connect (which is what you—or your ebook distributor—do for any book that you want to sell through the iBooks Store). So do yourself a favor and test your books against Apple’s validator before sending them to the iBooks Store.

Using Apple’s ebook validator requires you to use the command line (i.e., the application Terminal in OS X or the Command Prompt in Windows), but fret not, it’s not that difficult. Here is how you do it.

Continue reading

Dogfooding, now known as Ebooking.

At BookNet Canada’s Tech Forum (aka “the day after Ebookcraft”) I gave a talk about the many thoughts I have about being a developer in the publishing industry.

Screenshot 2015-03-14 00.51.23

One of the thoughts I brought up was the concept of “dogfooding.” The concept goes like this: if you expect people to buy your product, you should be able and willing to use the product yourself. As an example, the CEO of Proctor & Gamble better be using Tide and not something Unilever produces. If his company makes changes to a product, he or she should be the first one to try it. If you dislike the product, there’s a pretty good chance others will as well.

Continue reading

The Best EPUB reader for Windows?

“What can I test this EPUB file with on my Windows computer?”

It’s a dreaded question for many ebook creators. While Mac users now have iBooks to push their clients to, Windows is stuck without a great EPUB3 reader. And nothing is worse than a client sending you a huge list of problems with their title that is actually just a list of rendering bugs from the reader app that you have no control over.

With that in mind, here’s a few decent readers to suggest to your clients using PCs.

Continue reading

epubcheck 103: Reading errors

In Part 1 we looked at why Epubcheck is important. In Part 2 we looked at the various ways to use it. Here in Part 3 we’ll look at how to interpret the error messages and some common techniques to use if you have no clue what it’s saying.

What does an Epubcheck error look like?

In the following examples I’ve created a simple EPUB with one error—a missing closing tag for a paragraph. That’s see what happens when I run that through epubcheck.

The most basic error message—one that comes directly from the epubcheck program, looks like this:
ERROR: /Users/derrickschultz/Downloads/failedepub.epub/OEBPS/chapter0.xhtml(12,4): element "p" not allowed here; expected the element end-tag, text or element "a", "abbr", "area", "audio", "b", "bdi", "bdo", "br", "button", "canvas", "cite", "code", "command", "datalist", "del", "dfn", "em", "embed", "epub:switch", "i", "iframe", "img", "input", "ins", "kbd", "keygen", "label", "map", "mark", "meter", "ns1:math", "ns2:svg", "object", "output", "progress", "q", "ruby", "s", "samp", "script", "select", "small", "span", "strong", "sub", "sup", "textarea", "time", "u", "var", "video" or "wbr" (with xmlns:ns1="" xmlns:ns2="")
ERROR: /Users/derrickschultz/Downloads/failedepub.epub/OEBPS/chapter0.xhtml(13,3): The element type "p" must be terminated by the matching end-tag "</p>".
ERROR: /Users/derrickschultz/Downloads/failedepub.epub/OEBPS/chapter0.xhtml: The element type "p" must be terminated by the matching end-tag "</p>".

Continue reading

Books on the Web, Part 3: Current Tools

In part 1 of this series we looked at the benefits of putting books on the web. In part 2 we discussed some of the things that still need improvement for books to thrive on the web. In this final part of Books on the Web we look at some currently available tools to publish your book to be read in web browsers.

If you’re interested in publishing your books to the web, there are already a wide array of different tools. Each of them supports putting your title on a webpage, but how each one does it differs dramatically. Let’s a take a look at the pros and cons of each tool.

Continue reading

ebookcraft and Tech Forum 2015

I’ll be speaking at both ebookcraft and Tech Forum in Toronto this year.

My talk for ebookcraft is tentatively titled ‘Stone, bronze, iron, ink, silicon (or “I’m the laziest developer out there”).’ I’m going to discuss the general movement of software from one-off projects (writing all your code by hand) to systems like CMSes (which write most of your code for you) and why this really will be the future of ebook publishing.

And my talk for Tech Forum is on “A Tale of Two Cultures.” It will be more of a general talk about the divide between publishing culture and tech/developer culture and how both sides can work together (and who should win what when they can’t).

Even if you hate my topics :), there will be a wide range of great speakers at both conference dates, including our own Anne-Marie and frequent contributor Laura Brady. ebookcraft focuses specifically on the ebook market while Tech Forum is a bit more of a general publishing and technology conference. You can register for one or both events here.

Hope to see you at either event in March!

epubcheck 102: Running epubcheck

In part one of this series, we looked at why epubcheck is an important tool in any ebook maker’s toolchest. Today we look at how to use it.

OK, now that we know why to use epubcheck, let’s look at how. There are a couple ways to use epubcheck in your workflow, ranging from super easy to “yes. use the terminal” (which for some of us is also super easy :) )


Continue reading

epubcheck 101: Just What is Epubcheck?

Parts of ebook creation can be confusing to those coming over from the print world. One of the tools people commonly ask me about is epubcheck. It’s a powerful tool that unfortunately isn’t the most human-friendly. Today we’ll look at why it’s important to use it, and in future posts we’ll look at how to use it.

What is Epubcheck?

The EPUB spec provides a set of rules for the creation of EPUB files. These rules define what elements are required, what elements are optional, and what elements are explicitly forbidden from being in EPUB files. And while you could read the entire spec if you wanted to…well it’s better if there were just a tool that could check your file and tell you if your file met this specification.

Continue reading