Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Translate EPUB books using Large Language Models while preserving the original text. The translated content is displayed side-by-side with the original, creating bilingual books perfect for language learning and cross-reference reading.
| Date | Stars |
|---|---|
| 2026-07-31 | 816 |
| 2026-08-05 | 823 |
| 2026-08-06 | 823 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
<div align=center>
<h1>EPUB Translator</h1>
<p>
<a href="https://github.com/oomol-lab/epub-translator/actions/workflows/merge-build.yml" target="_blank"><img src="https://img.shields.io/github/actions/workflow/status/oomol-lab/epub-translator/merge-build.yml" alt="ci" /></a>
<a href="https://pypi.org/project/epub-translator/" target="_blank"><img src="https://img.shields.io/badge/pip_install-epub--translator-blue" alt="pip install epub-translator" /></a>
<a href="https://pypi.org/project/epub-translator/" target="_blank"><img src="https://img.shields.io/pypi/v/epub-translator.svg" alt="pypi epub-translator" /></a>
<a href="https://pypi.org/project/epub-translator/" target="_blank"><img src="https://img.shields.io/pypi/pyversions/epub-translator.svg" alt="python versions" /></a>
<a href="https://github.com/oomol-lab/epub-translator/blob/main/LICENSE" target="_blank"><img src="https://img.shields.io/github/license/oomol-lab/epub-translator" alt="license" /></a>
</p>
<p><a href="https://hub.oomol.com/package/books-translator?open=true" target="_blank"><img src="https://static.oomol.com/assets/button.svg" alt="Open in OOMOL Studio" /></a></p>
<p>English | <a href="./README_zh-CN.md">中文</a></p>
</div>
Want to read a book in a foreign language without losing the original context? EPUB Translator transforms any EPUB into a bilingual edition with AI-powered translations displayed side-by-side with the original text.
Whether you're learning a new language, conducting academic research, or simply enjoying foreign literature, you get both versions in one book - preserving all formatting, images, and structure.

### Online Version
If you'd like to try EPUB Translator without setting it up locally, you can use [Inkora - EPUB Translator](https://inkora.oomol.com/epub-translator), the official online app for the same bilingual EPUB translation workflow. It lets you upload an EPUB file and try the main experience directly in your browser.
[](https://inkora.oomol.com/epub-translator)
## Installation
```bash
pip install epub-translator
```
**Requirements**: Python 3.11, 3.12, or 3.13
## Quick Start
### Using OOMOL Studio (Recommended)
The easiest way to use EPUB Translator is through OOMOL Studio with a visual interface:
[](https://www.youtube.com/watch?v=QsAdiskxfXI)
### Using Python API
```python
from epub_translator import LLM, translate, language, SubmitKind
# Initialize LLM with your API credentials
llm = LLM(
key="your-api-key",
url="https://api.openai.com/v1",
model="gpt-4",
token_encoding="o200k_base",
)
# Translate EPUB file using language constants
translate(
source_path="source.epub",
target_path="translated.epub",
target_language=language.ENGLISH,
submit=SubmitKind.APPEND_BLOCK,
llm=llm,
)
```
### With Progress Tracking
```python
from tqdm import tqdm
with tqdm(total=100, desc="Translating", unit="%") as pbar:
last_progress = 0.0
def on_progress(progress: float):
nonlocal last_progress
increment = (progress - last_progress) * 100
pbar.update(increment)
last_progress = progress
translate(
source_path="source.epub",
target_path="translated.epub",
target_language="English",
submit=SubmitKind.APPEND_BLOCK,
llm=llm,
on_progress=on_progress,
)
```
## API Reference
### `LLM` Class
Initialize the LLM client for translation:
```python
LLM(
key: str, # API key
url: str, # API endpoint URL
model: str, # Model name (e.g., "gpt-4")
token_encoding: str, # Token encoding (e.g., "o200k_base")
cache_path: PathLike | None = None, # Cache directory path
timeout: float | None = None, Excerpt of 16,787 characters
Read on GitHub114
1
1
Would you bet a product on this? Bounded 0–100 and slow moving.
matched fp:4b5c26c49bd4493e, llm:Topics: ai, epub, translation. Description: Translate EPUB books using Large Language Models while preserving original text; bilingual side-by-side display for language learning.
matched fp:4b5c26c49bd4493e, llm:Topics: ai, epub, translation. Description: Translate EPUB books using Large Language Models while preserving original text; bilingual side-by-side display for language learning.
matched fp:4b5c26c49bd4493e, llm:Topics: ai, epub, translation. Description: Translate EPUB books using Large Language Models while preserving original text; bilingual side-by-side display for language learning.