Check if your EPUB eBooks are valid
Later releases of epubCheck are much more friendly to use, which means the usefulness of this GEM has diminished and so is no longer maintained. I recommend you now use the official epubCheck tool.
====
This library will check that your .epub files are valid IDPF EPUB documents (version 2.x and 3.0) and return a successful or error message. It can be called as a Ruby library, or invoked from the command line.
For more about the IDPF see http://idpf.org
For more about the epubcheck tool see http://code.google.com/p/epubcheck/
gem install epub_validator
Sample usage and output:
require 'epub_validator'
epub = EpubValidator.check('/path/to/sample.epub')
puts "Invalid!" unless epub.valid?
epub.messages.each do |m|
puts m
end
=> Invalid!
=> ERROR: OPS/toc.ncx(21): 'OPS/': referenced resource exists, but not declared in the OPF file
Now from the command line:
$ epub_validator /path/to/sample.epub
Checking....FAILED!
This is not a valid EPUB 3.0 ebook.
ERROR: OPS/toc.ncx(21): 'OPS/': referenced resource exists, but not declared in the OPF file
Java must be installed and set in your PATH.
- Command line: accept directory containing many .epub files for processing.
- Command line: have switch for writing results to log file
- Format "ERROR" and "WARNING" output for more intuitive instructions.