Skip to main content

About EbookLib

EbookLib is a Python library for managing EPUB2/EPUB3 and Kindle files. It's capable of reading and writing EPUB files programmatically.

We are working on refreshing the project <https://github.com/aerkalov/ebooklib/issues/318>_ so please check and comment if you have your own ideas what needs to happen with the project.

The API is designed to be as simple as possible, while at the same time making complex things possible too. It has support for covers, table of contents, spine, guide, metadata and etc.

EbookLib is used in Booktype <https://github.com/sourcefabric/Booktype/>_ from Sourcefabric, as well as sprits-it! <https://github.com/the-happy-hippo/sprits-it>, fanfiction2ebook <https://github.com/ltouroumov/fanfiction2ebook>, viserlalune <https://github.com/vjousse/viserlalune>_ and Telemeta <https://github.com/Parisson/Telemeta>_.

Packages of EbookLib for GNU/Linux are available in Debian <https://packages.debian.org/python-ebooklib>_ and Ubuntu <http://packages.ubuntu.com/python-ebooklib>_.

Sphinx documentation is generated from the templates in the docs/ directory and made available at http://ebooklib.readthedocs.io

Usage

Reading

import ebooklib
from ebooklib import epub

book = epub.read_epub('test.epub')

for image in book.get_items_of_type(ebooklib.ITEM_IMAGE):
    print(image)

Writing

from ebooklib import epub

book = epub.EpubBook()

# set metadata
book.set_identifier("id123456")
book.set_title("Sample book")
book.set_language("en")

book.add_author("Author Authorowski")
book.add_author(
    "Danko Bananko",
    file_as="Gospodin Danko Bananko",
    role="ill",
    uid="coauthor",
)

# create chapter
c1 = epub.EpubHtml(title="Intro", file_name="chap_01.xhtml", lang="hr")
c1.content = (
    "<h1>Intro heading</h1>"
    "<p>Zaba je skocila u baru.</p>"
    '<p><img alt="[ebook logo]" src="static/ebooklib.gif"/><br/></p>'
)

# create image from the local image
image_content = open("ebooklib.gif", "rb").read()
img = epub.EpubImage(
    uid="image_1",
    file_name="static/ebooklib.gif",
    media_type="image/gif",
    content=image_content,
)

# add chapter
book.add_item(c1)
# add image
book.add_item(img)

# define Table Of Contents
book.toc = (
    epub.Link("chap_01.xhtml", "Introduction", "intro"),
    (epub.Section("Simple book"), (c1,)),
)

# add default NCX and Nav file
book.add_item(epub.EpubNcx())
book.add_item(epub.EpubNav())

# define CSS style
style = "BODY {color: white;}"
nav_css = epub.EpubItem(
    uid="style_nav",
    file_name="style/nav.css",
    media_type="text/css",
    content=style,
)

# add CSS file
book.add_item(nav_css)

# basic spine
book.spine = ["nav", c1]

# write to the file
epub.write_epub("test.epub", book, {})

License

EbookLib is licensed under the AGPL license <LICENSE.txt>_.

Authors

Full list of authors is in AUTHORS.txt <AUTHORS.txt>_ file.

Metadata

Release files for EbookLib 0.19

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for EbookLib 0.19
File Size Uploaded Provenance Actions
ebooklib-0.19.tar.gz 116.3 kB Without provenance Details for ebooklib-0.19.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for EbookLib 0.19
File Interpreter ABI Platform Actions
ebooklib-0.19-py3-none-any.whl Python 3 none any Details for ebooklib-0.19-py3-none-any.whl

Total release size: 155.5 kB

Release files / ebooklib-0.19.tar.gz

Download URL ebooklib-0.19.tar.gz
Size 116.3 kB
Tags Source
SHA-256 checksum
How to use checksums
07e9b4db0a30c73623b14e23b315634a450d2c13f23d1dba4b457a6ca16a58be
BLAKE2b-256 checksum
How to use checksums
952a0e7c1bdb83211043085f11c630ad7d7839dae56fd043188b59df7c1d0f69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.1

Release files / ebooklib-0.19-py3-none-any.whl

Download URL ebooklib-0.19-py3-none-any.whl
Size 39.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a790e280e1d5ef105e350e34cc88b83c9c987fa6bab8a63a7543410c313cfa31
BLAKE2b-256 checksum
How to use checksums
6659e63fd0b3410d2ab7a8971b070f40390f1fbeb3c7a85849718c8480313cbf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.1

Security for EbookLib 0.19

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page