epub-tools: Command line utilities for working with epub files

[ application, console, program ] [ Propose Tags ]

A suite of command-line utilities for creating and manipulating epub book files. Included are: epubmeta, epubname, epubzip

[Skip to Readme]


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS],, 1.1.0, 1.1.1, 1.1.2, 2.0.0, 2.1.0, 2.1.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 2.10, 2.11, 3.0, 3.1, 3.2
Change log changelog.md
Dependencies base (>=3 && <5), bytestring, containers, directory, epub-metadata (>=5.3), filepath, mtl, parsec, process, regex-compat, zip-archive [details]
License ISC
Copyright 2008 Dino Morelli
Author Dino Morelli
Maintainer Dino Morelli <dino@ui3.info>
Category Application, Console
Home page https://github.com/dino-/epub-tools.git
Source repo head: git clone https://github.com/dino-/epub-tools.git
Uploaded by DinoMorelli at 2024-01-23T04:26:48Z
Reverse Dependencies 1 direct, 0 indirect [details]
Executables epubzip, epubname, epubmeta
Downloads 32019 total (54 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2024-01-23 [all 2 reports]

Readme for epub-tools-3.2

[back to package description]



Command line utilities for working with epub files (Haskell)


A suite of command-line utilities for creating and manipulating epub book files. Included are: epubmeta, epubname, epubzip. This software uses the epub-metadata library, also available on Hackage.


epubmeta is a command-line utility for examining and editing epub book metadata. With it you can export, import and edit the raw OPF Package XML document for a given book. Or simply dump the metadata to stdout for viewing in a friendly format.

Here's an example of epubmeta output:

  $ epubmeta Kelly_Kessel_Lethem-NinetyPercentOfEverything.epub

     version: 2.0
     unique-identifier: calibre_id
     id: calibre_id
     scheme: calibre
     text: b1026732-69a5-4a05-a8d9-a1701685f6fa
     scheme: ISBN
     text: 1-590620-00-3
  title: Ninety Percent of Everything
  language: en-us
     text: calibre (0.5.1) [http://calibre.kovidgoyal.net]
     file-as: calibre
     role: bkp
     text: James Patrick Kelly
     file-as: Kelly, James Patrick
     role: aut
     text: John Kessel
     role: aut
     text: Jonathan Lethem
     role: aut
  date: 2001-03-25T00:00:00
  publisher: www.Fictionwise.com
  subject: Science Fiction/Fantasy


epubname is a command-line utility for renaming epub ebook files based on their OPF Package metadata. It tries to use author names and title info to construct a sensible name.

Using it looks like this:

  $ epubname poorly-named-book.epub

  poorly-named-book.epub -> WattsPeter-Blindsight_2006.epub

  $ epubname another-poorly-named-book.epub

  another-poorly-named-book.epub -> Kelly_Kessel_Lethem-NinetyPercentOfEverything.epub


epubzip is a handy utility for zipping up the files that comprise an epub into an .epub zip file. Using the same technology as epubname, it can try to make a meaningful filename for the book.

Getting this software


Getting source for development

  • Download the cabalized source package from Hackage
  • Get the source with git: $ git clone https://github.com/dino-/epub-tools.git
  • Get the source with stack: $ stack unpack epub-tools
  • If you're just looking, browse the source

Once you have source, building the usual way:

  $ stack build
  $ stack test
  $ stack haddock


Dino Morelli <dino@ui3.info>