Skip to content

Fast, standalone EPUB to Kobo EPUB conversion tool.

License

Notifications You must be signed in to change notification settings

pgaskin/kepubify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kepubify

Kepubify converts EPUBs to Kobo EPUBs.

Website   Download   Documentation   Web Version   pkg.go.dev

About

Kepubify is standalone (it also works as a library or a webapp), converts most books in a fraction of a second (40-80x faster than Calibre), handles malformed HTML/XHTML without causing further issues, has multiple optional conversion options (punctuation smartening, custom CSS, text replacement, and more), has a full test suite, is interoperable with other applications, and is safe to use with untrusted books.

Two additional standalone utilities are included with kepubify. covergen pre-generates cover images to speed up library browsing on Kobo eReaders while providing higher-quality resizing. seriesmeta scans for EPUBs and KEPUBs, and updates the Kobo database with the Calibre or EPUB3 series metadata.

See the releases page for pre-built binaries for Windows, Linux, and macOS. See the website for more documentation, pre-built binaries for Windows, Linux, and macOS, and a web version.

Building

Kepubify requires Go 1.16 or later. To install kepubify directly, run go install github.com/pgaskin/kepubify@latest. To build from source, clone this repository, and run go build ./cmd/kepubify.

On Go 1.17 or later, additional optimizations are automatically used to significantly improve kepubify's performance by preventing unchanged files from being re-compressed. To use a backported version of these optimizations on Go 1.16, add the option -tags zip117 to the build/install command. If you are using kepubify as a library in another application with -tags zip117 enabled on Go 1.16, it must also use the backported package when passing a *zip.Reader to (*kepub.Converter).Transform.

To build seriesmeta, a C compiler must be installed and CGO must be enabled.

Note that kepubify uses a custom fork of golang.org/x/net/html. This fork provides additional options used by kepubify to allow reading malformed HTML/XHTML and to produce polyglot HTML/XHTML output for maximum compatibility. Previously, kepubify replaced it using a replace directive in go.mod, but since the fork is now a standalone package, this is not necessary anymore, and will no longer cause conflicts if used as a dependency in applications requiring golang.org/x/net/html directly.

Branches

This repository contains multiple main branches with code used by kepubify.

Branch Description Status
master Kepubify, seriesmeta, and covergen (this branch). kepubify
gh-pages Kepubify website and JS/WASM library. website
forks/html Fork of golang.org/x/net/html with additional features and modifications required by kepubify. forks - html
forks/go116-zip.go117 Fork of archive/zip from Go 1.17 backported to Go 1.16 for performance improvements. forks - go116-zip.go117