tepub


Nametepub JSON
Version 0.2.2 PyPI version JSON
download
home_pageNone
SummaryTEPUB - Tools for EPUB: A comprehensive toolkit for EPUB processing including translation, audiobook generation, and export
upload_time2025-10-13 06:38:03
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT
keywords epub translation audiobook tts ebook nlp i18n
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # TEPUB - Tools for EPUB

**Transform EPUB books into translations, audiobooks, and web pages – automatically.**

TEPUB is a comprehensive toolkit for processing EPUB files. Translate books into any language, create professional audiobooks with natural voices, export to markdown, or publish as interactive websites.

[![Version](https://img.shields.io/badge/version-0.2.0-blue.svg)](CHANGELOG.md)
[![Python](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)

---

## Features

### 📖 **Translation**
- **Multi-language support**: Translate to/from any language
- **AI-powered**: OpenAI GPT-4, Anthropic Claude, Google Gemini, xAI Grok, DeepL, or Ollama
- **Dual output modes**:
  - **Bilingual**: Original and translation side-by-side (perfect for learning)
  - **Translation-only**: Professional translated edition
- **Smart processing**: Auto-skip front/back matter, parallel translation, resume capability

### 🎧 **Audiobook Creation**
- **Dual TTS providers**:
  - **Edge TTS** (Free): 57+ voices in multiple languages, no API key required
  - **OpenAI TTS** (Premium): 6 high-quality voices with superior naturalness
- **Professional output**: M4A format with chapter markers and embedded cover art
- **Chapter management**: Export, edit, and update chapter titles and timestamps
- **Flexible control**: Adjustable speed, voice selection, resume support
- **Cost**: Free with Edge TTS, or ~$11-22 per 300-page book with OpenAI TTS

### 📱 **Export Formats**
- **Web**: Interactive HTML viewer with live translation toggle
- **Markdown**: Plain text with preserved formatting and images
- **EPUB**: Bilingual or translation-only editions

---

## Quick Start

### Installation

**Automatic (Mac/Linux)**
```bash
git clone https://github.com/xiaolai/tepub.git
cd tepub
./install.sh
source .venv/bin/activate
```

**Manual (All platforms)**
```bash
git clone https://github.com/xiaolai/tepub.git
cd tepub
python -m venv .venv
source .venv/bin/activate    # Windows: .venv\Scripts\activate
pip install -e .[dev]
```

See [INSTALL.md](INSTALL.md) for detailed platform-specific instructions.

### Translation Setup

**1. Get an API key** from your preferred provider:
- [OpenAI](https://platform.openai.com/) (Recommended: GPT-4, ~$0.50-2.00/book)
- [Anthropic](https://console.anthropic.com/) (Claude, great for literature)
- [Ollama](https://ollama.com/) (Free, runs locally)

**2. Configure TEPUB:**
```bash
# Create .env file with your API key
echo 'OPENAI_API_KEY=sk-your-key-here' > .env
```

### Basic Usage

**Translate a book:**
```bash
tepub extract mybook.epub
tepub translate mybook.epub --to "Simplified Chinese"
tepub export mybook.epub --epub
```

**Create audiobook (Free Edge TTS):**
```bash
tepub extract mybook.epub
tepub audiobook generate mybook.epub
# Interactive voice selection will appear
```

**Create audiobook (Premium OpenAI TTS):**
```bash
tepub audiobook generate mybook.epub --tts-provider openai --voice nova
# Requires OPENAI_API_KEY in environment
```

**All-in-one pipeline:**
```bash
tepub pipeline mybook.epub --to Spanish --epub
```

---

## Common Tasks

### Translation

**Translate to different languages:**
```bash
tepub pipeline book.epub --to "Simplified Chinese" --epub
tepub pipeline book.epub --to Spanish --epub
tepub pipeline book.epub --to French --epub
```

**Choose translation provider:**
```bash
tepub translate book.epub --to Spanish --provider anthropic
tepub translate book.epub --to Spanish --provider ollama
```

**Translation-only output (smaller file):**
```bash
tepub export book.epub --epub --output-mode translated-only
```

### Audiobooks

**Edge TTS (Free, 57+ voices):**
```bash
# Interactive voice selection
tepub audiobook generate book.epub

# Specify voice directly
tepub audiobook generate book.epub --voice en-US-GuyNeural    # Male
tepub audiobook generate book.epub --voice en-US-JennyNeural  # Female
tepub audiobook generate book.epub --voice en-GB-RyanNeural   # British

# See all voices
edge-tts --list-voices
```

**OpenAI TTS (Premium, 6 voices):**
```bash
# Standard quality (tts-1)
tepub audiobook generate book.epub --tts-provider openai --voice nova

# Higher quality (tts-1-hd)
tepub audiobook generate book.epub --tts-provider openai --tts-model tts-1-hd --voice nova

# Adjust speed
tepub audiobook generate book.epub --tts-provider openai --voice nova --tts-speed 1.2

# Available OpenAI voices:
# - alloy: Neutral, balanced
# - echo: Male, authoritative
# - fable: British, expressive
# - onyx: Deep male, professional
# - nova: Female, friendly
# - shimmer: Female, warm
```

**Custom cover image:**
```bash
tepub audiobook generate book.epub --cover-path ~/Pictures/mycover.jpg
```

**Chapter management:**
```bash
# Preview chapter structure before generating audiobook
tepub audiobook export-chapters book.epub
# Edit chapters.yaml to customize chapter titles
tepub audiobook generate book.epub  # Uses custom titles from chapters.yaml

# Extract chapters from existing audiobook
tepub audiobook export-chapters audiobook.m4a

# Update audiobook with edited chapter markers
tepub audiobook update-chapters audiobook.m4a chapters.yaml
```

### Export

**Create web version:**
```bash
tepub export book.epub --web
# Opens browser with interactive viewer
```

**Export to markdown:**
```bash
tepub extract book.epub
# Markdown files created automatically in: book/markdown/
```

---

## Configuration

TEPUB uses a two-level configuration system:

### Global Config: `~/.tepub/config.yaml`

Apply settings to all books:

```yaml
# Translation
source_language: auto
target_language: Simplified Chinese
translation_workers: 3

primary_provider:
  name: openai
  model: gpt-4o

# Audiobook
audiobook_tts_provider: edge    # or: openai
audiobook_workers: 3

# Skip rules
skip_rules:
  - keyword: index
  - keyword: appendix
```

### Per-Book Config: `book/config.yaml`

Created automatically when you run `tepub extract book.epub`. Override global settings:

```yaml
# Choose TTS provider
audiobook_tts_provider: openai
audiobook_tts_model: tts-1-hd
audiobook_voice: nova

# Or use Edge TTS
audiobook_tts_provider: edge
audiobook_voice: en-US-AriaNeural

# Custom cover
cover_image_path: ~/Pictures/mycover.jpg

# Output mode
output_mode: translated_only

# Skip specific sections
skip_rules:
  - keyword: prologue
  - keyword: epilogue
```

See [config.example.yaml](config.example.yaml) for all available options with detailed explanations.

---

## Output Structure

### Translation
```
mybook.epub                      # Original
mybook/                          # Workspace
├── config.yaml                  # Per-book settings
├── segments.json                # Extracted content
├── state.json                   # Translation progress
└── markdown/                    # Markdown export
    ├── 001_chapter-1.md
    └── images/
mybook_bilingual.epub            # Output: both languages
mybook_translated.epub           # Output: translation only
mybook_web/                      # Web viewer
```

### Audiobooks
```
mybook/
├── audiobook@edgetts/           # Edge TTS audiobooks
│   ├── mybook.m4b               # Final audiobook
│   └── segments/                # Cached audio segments
└── audiobook@openaitts/         # OpenAI TTS audiobooks
    ├── mybook.m4b
    └── segments/
```

Provider-specific folders let you create both versions for comparison.

---

## Advanced Features

### Resume Interrupted Work

TEPUB automatically saves progress. To resume:
```bash
# Just run the same command again
tepub translate book.epub --to Spanish
tepub audiobook generate book.epub
```

### Parallel Processing

Speed up translation (uses more API credits):
```yaml
# In config.yaml
translation_workers: 5    # Default: 3
audiobook_workers: 5      # Default: 3
```

### Custom Translation Style

```yaml
# In config.yaml
prompt_preamble: |
  You are a literary translator specializing in preserving artistic voice.
  {language_instruction}
  {mode_instruction}
  Maintain the author's style, tone, metaphors, and cultural nuances.
```

### Selective File Processing

After extraction, edit `book/config.yaml`:
```yaml
# Only translate specific files
translation_files:
  - Text/chapter-001.xhtml
  - Text/chapter-002.xhtml
  # - Text/appendix.xhtml    # Commented = skipped

# Different files for audiobook
audiobook_files:
  - Text/chapter-001.xhtml
  # - Text/copyright.xhtml   # Skip copyright in audiobook
```

### Debug Commands

```bash
tepub debug workspace book.epub    # Show workspace info
tepub debug pending                 # What's left to translate
tepub debug show-skip-list          # What was skipped
```

---

## Cost Estimates

### Translation (300-page book)
- **OpenAI GPT-4o**: ~$0.50-2.00
- **Anthropic Claude**: ~$0.30-1.50
- **Ollama (local)**: Free (requires powerful computer)

### Audiobook (300-page book, ~750,000 characters)
- **Edge TTS**: Free
- **OpenAI tts-1**: ~$11.25
- **OpenAI tts-1-hd**: ~$22.50

### Recommendations
- **Best Quality**: OpenAI GPT-4 + OpenAI TTS-1-HD (~$25 total)
- **Best Value**: OpenAI GPT-4 + Edge TTS (~$1.50 total)
- **Free**: Ollama + Edge TTS (requires local GPU)

---

## Troubleshooting

### "API key not found"
```bash
# Set environment variable
export OPENAI_API_KEY="sk-your-key-here"

# Or create .env file
echo 'OPENAI_API_KEY=sk-your-key-here' > .env
```

### "ModuleNotFoundError: No module named 'openai'"
```bash
pip install -e .[dev]
# Or specifically: pip install openai
```

### Audiobook has no sound
```bash
# Install FFmpeg
brew install ffmpeg           # Mac
sudo apt install ffmpeg       # Linux
# Windows: download from ffmpeg.org
```

### Translation fails
```bash
# Check status
tepub debug pending

# Reset errors and retry
rm book/state.json
tepub translate book.epub --to Spanish
```

More solutions: [GitHub Issues](https://github.com/xiaolai/tepub/issues)

---

## Privacy & Security

- **Local processing**: Books stay on your computer (except API calls)
- **No telemetry**: TEPUB collects no usage data
- **Provider privacy**: Translation APIs see text but don't store it long-term
- **Maximum privacy**: Use Ollama for fully local operation

---

## Requirements

- **Python**: 3.10 or newer (3.11+ recommended)
- **OS**: macOS, Linux, or Windows 10+
- **Disk**: ~500 MB
- **RAM**: 2-4 GB
- **FFmpeg**: Required for audiobooks (auto-installed on Mac/Linux)

---

## Support

- **Documentation**: You're reading it!
- **Installation**: [INSTALL.md](INSTALL.md)
- **Changelog**: [CHANGELOG.md](CHANGELOG.md)
- **Issues**: [GitHub Issues](https://github.com/xiaolai/tepub/issues)
- **Command help**: `tepub --help` or `tepub <command> --help`

---

## Credits

Built with:
- [ebooklib](https://github.com/aerkalov/ebooklib) - EPUB processing
- [edge-tts](https://github.com/rany2/edge-tts) - Free text-to-speech
- [OpenAI](https://openai.com/) - Translation and premium TTS
- [Rich](https://github.com/Textualize/rich) - Beautiful terminal output
- [Click](https://click.palletsprojects.com/) - CLI framework
- [Pydantic](https://pydantic.dev/) - Configuration validation

---

## License

MIT License - see [LICENSE](LICENSE) for details.

---

## For Developers

<details>
<summary>Development Setup</summary>

```bash
git clone https://github.com/xiaolai/tepub.git
cd tepub
python -m venv .venv
source .venv/bin/activate
pip install -e .[dev]
```

**Run tests:**
```bash
pytest
pytest --cov=src --cov-report=html
```

**Code quality:**
```bash
ruff check src tests
black src tests
```

**Project structure:**
```
src/
├── cli/              # Command-line interface
├── extraction/       # EPUB extraction
├── translation/      # Translation pipeline
├── audiobook/        # TTS and audiobook creation
├── injection/        # Insert translations into EPUB
├── web_export/       # Web viewer generation
├── epub_io/          # EPUB reading/writing
├── config/           # Configuration management
└── state/            # Progress tracking
```

</details>

---

**Made with ❤️ for language learners, audiobook enthusiasts, and book lovers everywhere.**

**Version 0.2.0** | [Changelog](CHANGELOG.md) | [Issues](https://github.com/xiaolai/tepub/issues)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "tepub",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "epub, translation, audiobook, tts, ebook, nlp, i18n",
    "author": null,
    "author_email": "Xiaolai Li <xiaolaidev@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/09/cb/365d2ba072dca3a81da4b4686f7af971388c8b2d24eaed8a659154bb258e/tepub-0.2.2.tar.gz",
    "platform": null,
    "description": "# TEPUB - Tools for EPUB\n\n**Transform EPUB books into translations, audiobooks, and web pages \u2013 automatically.**\n\nTEPUB is a comprehensive toolkit for processing EPUB files. Translate books into any language, create professional audiobooks with natural voices, export to markdown, or publish as interactive websites.\n\n[![Version](https://img.shields.io/badge/version-0.2.0-blue.svg)](CHANGELOG.md)\n[![Python](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)\n[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)\n\n---\n\n## Features\n\n### \ud83d\udcd6 **Translation**\n- **Multi-language support**: Translate to/from any language\n- **AI-powered**: OpenAI GPT-4, Anthropic Claude, Google Gemini, xAI Grok, DeepL, or Ollama\n- **Dual output modes**:\n  - **Bilingual**: Original and translation side-by-side (perfect for learning)\n  - **Translation-only**: Professional translated edition\n- **Smart processing**: Auto-skip front/back matter, parallel translation, resume capability\n\n### \ud83c\udfa7 **Audiobook Creation**\n- **Dual TTS providers**:\n  - **Edge TTS** (Free): 57+ voices in multiple languages, no API key required\n  - **OpenAI TTS** (Premium): 6 high-quality voices with superior naturalness\n- **Professional output**: M4A format with chapter markers and embedded cover art\n- **Chapter management**: Export, edit, and update chapter titles and timestamps\n- **Flexible control**: Adjustable speed, voice selection, resume support\n- **Cost**: Free with Edge TTS, or ~$11-22 per 300-page book with OpenAI TTS\n\n### \ud83d\udcf1 **Export Formats**\n- **Web**: Interactive HTML viewer with live translation toggle\n- **Markdown**: Plain text with preserved formatting and images\n- **EPUB**: Bilingual or translation-only editions\n\n---\n\n## Quick Start\n\n### Installation\n\n**Automatic (Mac/Linux)**\n```bash\ngit clone https://github.com/xiaolai/tepub.git\ncd tepub\n./install.sh\nsource .venv/bin/activate\n```\n\n**Manual (All platforms)**\n```bash\ngit clone https://github.com/xiaolai/tepub.git\ncd tepub\npython -m venv .venv\nsource .venv/bin/activate    # Windows: .venv\\Scripts\\activate\npip install -e .[dev]\n```\n\nSee [INSTALL.md](INSTALL.md) for detailed platform-specific instructions.\n\n### Translation Setup\n\n**1. Get an API key** from your preferred provider:\n- [OpenAI](https://platform.openai.com/) (Recommended: GPT-4, ~$0.50-2.00/book)\n- [Anthropic](https://console.anthropic.com/) (Claude, great for literature)\n- [Ollama](https://ollama.com/) (Free, runs locally)\n\n**2. Configure TEPUB:**\n```bash\n# Create .env file with your API key\necho 'OPENAI_API_KEY=sk-your-key-here' > .env\n```\n\n### Basic Usage\n\n**Translate a book:**\n```bash\ntepub extract mybook.epub\ntepub translate mybook.epub --to \"Simplified Chinese\"\ntepub export mybook.epub --epub\n```\n\n**Create audiobook (Free Edge TTS):**\n```bash\ntepub extract mybook.epub\ntepub audiobook generate mybook.epub\n# Interactive voice selection will appear\n```\n\n**Create audiobook (Premium OpenAI TTS):**\n```bash\ntepub audiobook generate mybook.epub --tts-provider openai --voice nova\n# Requires OPENAI_API_KEY in environment\n```\n\n**All-in-one pipeline:**\n```bash\ntepub pipeline mybook.epub --to Spanish --epub\n```\n\n---\n\n## Common Tasks\n\n### Translation\n\n**Translate to different languages:**\n```bash\ntepub pipeline book.epub --to \"Simplified Chinese\" --epub\ntepub pipeline book.epub --to Spanish --epub\ntepub pipeline book.epub --to French --epub\n```\n\n**Choose translation provider:**\n```bash\ntepub translate book.epub --to Spanish --provider anthropic\ntepub translate book.epub --to Spanish --provider ollama\n```\n\n**Translation-only output (smaller file):**\n```bash\ntepub export book.epub --epub --output-mode translated-only\n```\n\n### Audiobooks\n\n**Edge TTS (Free, 57+ voices):**\n```bash\n# Interactive voice selection\ntepub audiobook generate book.epub\n\n# Specify voice directly\ntepub audiobook generate book.epub --voice en-US-GuyNeural    # Male\ntepub audiobook generate book.epub --voice en-US-JennyNeural  # Female\ntepub audiobook generate book.epub --voice en-GB-RyanNeural   # British\n\n# See all voices\nedge-tts --list-voices\n```\n\n**OpenAI TTS (Premium, 6 voices):**\n```bash\n# Standard quality (tts-1)\ntepub audiobook generate book.epub --tts-provider openai --voice nova\n\n# Higher quality (tts-1-hd)\ntepub audiobook generate book.epub --tts-provider openai --tts-model tts-1-hd --voice nova\n\n# Adjust speed\ntepub audiobook generate book.epub --tts-provider openai --voice nova --tts-speed 1.2\n\n# Available OpenAI voices:\n# - alloy: Neutral, balanced\n# - echo: Male, authoritative\n# - fable: British, expressive\n# - onyx: Deep male, professional\n# - nova: Female, friendly\n# - shimmer: Female, warm\n```\n\n**Custom cover image:**\n```bash\ntepub audiobook generate book.epub --cover-path ~/Pictures/mycover.jpg\n```\n\n**Chapter management:**\n```bash\n# Preview chapter structure before generating audiobook\ntepub audiobook export-chapters book.epub\n# Edit chapters.yaml to customize chapter titles\ntepub audiobook generate book.epub  # Uses custom titles from chapters.yaml\n\n# Extract chapters from existing audiobook\ntepub audiobook export-chapters audiobook.m4a\n\n# Update audiobook with edited chapter markers\ntepub audiobook update-chapters audiobook.m4a chapters.yaml\n```\n\n### Export\n\n**Create web version:**\n```bash\ntepub export book.epub --web\n# Opens browser with interactive viewer\n```\n\n**Export to markdown:**\n```bash\ntepub extract book.epub\n# Markdown files created automatically in: book/markdown/\n```\n\n---\n\n## Configuration\n\nTEPUB uses a two-level configuration system:\n\n### Global Config: `~/.tepub/config.yaml`\n\nApply settings to all books:\n\n```yaml\n# Translation\nsource_language: auto\ntarget_language: Simplified Chinese\ntranslation_workers: 3\n\nprimary_provider:\n  name: openai\n  model: gpt-4o\n\n# Audiobook\naudiobook_tts_provider: edge    # or: openai\naudiobook_workers: 3\n\n# Skip rules\nskip_rules:\n  - keyword: index\n  - keyword: appendix\n```\n\n### Per-Book Config: `book/config.yaml`\n\nCreated automatically when you run `tepub extract book.epub`. Override global settings:\n\n```yaml\n# Choose TTS provider\naudiobook_tts_provider: openai\naudiobook_tts_model: tts-1-hd\naudiobook_voice: nova\n\n# Or use Edge TTS\naudiobook_tts_provider: edge\naudiobook_voice: en-US-AriaNeural\n\n# Custom cover\ncover_image_path: ~/Pictures/mycover.jpg\n\n# Output mode\noutput_mode: translated_only\n\n# Skip specific sections\nskip_rules:\n  - keyword: prologue\n  - keyword: epilogue\n```\n\nSee [config.example.yaml](config.example.yaml) for all available options with detailed explanations.\n\n---\n\n## Output Structure\n\n### Translation\n```\nmybook.epub                      # Original\nmybook/                          # Workspace\n\u251c\u2500\u2500 config.yaml                  # Per-book settings\n\u251c\u2500\u2500 segments.json                # Extracted content\n\u251c\u2500\u2500 state.json                   # Translation progress\n\u2514\u2500\u2500 markdown/                    # Markdown export\n    \u251c\u2500\u2500 001_chapter-1.md\n    \u2514\u2500\u2500 images/\nmybook_bilingual.epub            # Output: both languages\nmybook_translated.epub           # Output: translation only\nmybook_web/                      # Web viewer\n```\n\n### Audiobooks\n```\nmybook/\n\u251c\u2500\u2500 audiobook@edgetts/           # Edge TTS audiobooks\n\u2502   \u251c\u2500\u2500 mybook.m4b               # Final audiobook\n\u2502   \u2514\u2500\u2500 segments/                # Cached audio segments\n\u2514\u2500\u2500 audiobook@openaitts/         # OpenAI TTS audiobooks\n    \u251c\u2500\u2500 mybook.m4b\n    \u2514\u2500\u2500 segments/\n```\n\nProvider-specific folders let you create both versions for comparison.\n\n---\n\n## Advanced Features\n\n### Resume Interrupted Work\n\nTEPUB automatically saves progress. To resume:\n```bash\n# Just run the same command again\ntepub translate book.epub --to Spanish\ntepub audiobook generate book.epub\n```\n\n### Parallel Processing\n\nSpeed up translation (uses more API credits):\n```yaml\n# In config.yaml\ntranslation_workers: 5    # Default: 3\naudiobook_workers: 5      # Default: 3\n```\n\n### Custom Translation Style\n\n```yaml\n# In config.yaml\nprompt_preamble: |\n  You are a literary translator specializing in preserving artistic voice.\n  {language_instruction}\n  {mode_instruction}\n  Maintain the author's style, tone, metaphors, and cultural nuances.\n```\n\n### Selective File Processing\n\nAfter extraction, edit `book/config.yaml`:\n```yaml\n# Only translate specific files\ntranslation_files:\n  - Text/chapter-001.xhtml\n  - Text/chapter-002.xhtml\n  # - Text/appendix.xhtml    # Commented = skipped\n\n# Different files for audiobook\naudiobook_files:\n  - Text/chapter-001.xhtml\n  # - Text/copyright.xhtml   # Skip copyright in audiobook\n```\n\n### Debug Commands\n\n```bash\ntepub debug workspace book.epub    # Show workspace info\ntepub debug pending                 # What's left to translate\ntepub debug show-skip-list          # What was skipped\n```\n\n---\n\n## Cost Estimates\n\n### Translation (300-page book)\n- **OpenAI GPT-4o**: ~$0.50-2.00\n- **Anthropic Claude**: ~$0.30-1.50\n- **Ollama (local)**: Free (requires powerful computer)\n\n### Audiobook (300-page book, ~750,000 characters)\n- **Edge TTS**: Free\n- **OpenAI tts-1**: ~$11.25\n- **OpenAI tts-1-hd**: ~$22.50\n\n### Recommendations\n- **Best Quality**: OpenAI GPT-4 + OpenAI TTS-1-HD (~$25 total)\n- **Best Value**: OpenAI GPT-4 + Edge TTS (~$1.50 total)\n- **Free**: Ollama + Edge TTS (requires local GPU)\n\n---\n\n## Troubleshooting\n\n### \"API key not found\"\n```bash\n# Set environment variable\nexport OPENAI_API_KEY=\"sk-your-key-here\"\n\n# Or create .env file\necho 'OPENAI_API_KEY=sk-your-key-here' > .env\n```\n\n### \"ModuleNotFoundError: No module named 'openai'\"\n```bash\npip install -e .[dev]\n# Or specifically: pip install openai\n```\n\n### Audiobook has no sound\n```bash\n# Install FFmpeg\nbrew install ffmpeg           # Mac\nsudo apt install ffmpeg       # Linux\n# Windows: download from ffmpeg.org\n```\n\n### Translation fails\n```bash\n# Check status\ntepub debug pending\n\n# Reset errors and retry\nrm book/state.json\ntepub translate book.epub --to Spanish\n```\n\nMore solutions: [GitHub Issues](https://github.com/xiaolai/tepub/issues)\n\n---\n\n## Privacy & Security\n\n- **Local processing**: Books stay on your computer (except API calls)\n- **No telemetry**: TEPUB collects no usage data\n- **Provider privacy**: Translation APIs see text but don't store it long-term\n- **Maximum privacy**: Use Ollama for fully local operation\n\n---\n\n## Requirements\n\n- **Python**: 3.10 or newer (3.11+ recommended)\n- **OS**: macOS, Linux, or Windows 10+\n- **Disk**: ~500 MB\n- **RAM**: 2-4 GB\n- **FFmpeg**: Required for audiobooks (auto-installed on Mac/Linux)\n\n---\n\n## Support\n\n- **Documentation**: You're reading it!\n- **Installation**: [INSTALL.md](INSTALL.md)\n- **Changelog**: [CHANGELOG.md](CHANGELOG.md)\n- **Issues**: [GitHub Issues](https://github.com/xiaolai/tepub/issues)\n- **Command help**: `tepub --help` or `tepub <command> --help`\n\n---\n\n## Credits\n\nBuilt with:\n- [ebooklib](https://github.com/aerkalov/ebooklib) - EPUB processing\n- [edge-tts](https://github.com/rany2/edge-tts) - Free text-to-speech\n- [OpenAI](https://openai.com/) - Translation and premium TTS\n- [Rich](https://github.com/Textualize/rich) - Beautiful terminal output\n- [Click](https://click.palletsprojects.com/) - CLI framework\n- [Pydantic](https://pydantic.dev/) - Configuration validation\n\n---\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details.\n\n---\n\n## For Developers\n\n<details>\n<summary>Development Setup</summary>\n\n```bash\ngit clone https://github.com/xiaolai/tepub.git\ncd tepub\npython -m venv .venv\nsource .venv/bin/activate\npip install -e .[dev]\n```\n\n**Run tests:**\n```bash\npytest\npytest --cov=src --cov-report=html\n```\n\n**Code quality:**\n```bash\nruff check src tests\nblack src tests\n```\n\n**Project structure:**\n```\nsrc/\n\u251c\u2500\u2500 cli/              # Command-line interface\n\u251c\u2500\u2500 extraction/       # EPUB extraction\n\u251c\u2500\u2500 translation/      # Translation pipeline\n\u251c\u2500\u2500 audiobook/        # TTS and audiobook creation\n\u251c\u2500\u2500 injection/        # Insert translations into EPUB\n\u251c\u2500\u2500 web_export/       # Web viewer generation\n\u251c\u2500\u2500 epub_io/          # EPUB reading/writing\n\u251c\u2500\u2500 config/           # Configuration management\n\u2514\u2500\u2500 state/            # Progress tracking\n```\n\n</details>\n\n---\n\n**Made with \u2764\ufe0f for language learners, audiobook enthusiasts, and book lovers everywhere.**\n\n**Version 0.2.0** | [Changelog](CHANGELOG.md) | [Issues](https://github.com/xiaolai/tepub/issues)\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "TEPUB - Tools for EPUB: A comprehensive toolkit for EPUB processing including translation, audiobook generation, and export",
    "version": "0.2.2",
    "project_urls": {
        "Changelog": "https://github.com/xiaolai/tepub/blob/main/CHANGELOG.md",
        "Homepage": "https://github.com/xiaolai/tepub",
        "Issues": "https://github.com/xiaolai/tepub/issues",
        "Repository": "https://github.com/xiaolai/tepub"
    },
    "split_keywords": [
        "epub",
        " translation",
        " audiobook",
        " tts",
        " ebook",
        " nlp",
        " i18n"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ad8a67e3f7eb58e8a5635f01310513d4c83eaf210a9c3458d645ebfb4691fb72",
                "md5": "11f6798240760ce8798be32ed9bda5ca",
                "sha256": "ba4726d94b89a3eeb08f92b759abf3751d1c2fb1aa1df14e1aa5f89611f9a143"
            },
            "downloads": -1,
            "filename": "tepub-0.2.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "11f6798240760ce8798be32ed9bda5ca",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 131726,
            "upload_time": "2025-10-13T06:38:01",
            "upload_time_iso_8601": "2025-10-13T06:38:01.662344Z",
            "url": "https://files.pythonhosted.org/packages/ad/8a/67e3f7eb58e8a5635f01310513d4c83eaf210a9c3458d645ebfb4691fb72/tepub-0.2.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "09cb365d2ba072dca3a81da4b4686f7af971388c8b2d24eaed8a659154bb258e",
                "md5": "e72f434845f6b20aa05a2a1b91913919",
                "sha256": "9ab1ec537b0999145e5a09906fac4bf9f980f864c177f87cd319d17f3b376c16"
            },
            "downloads": -1,
            "filename": "tepub-0.2.2.tar.gz",
            "has_sig": false,
            "md5_digest": "e72f434845f6b20aa05a2a1b91913919",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 106673,
            "upload_time": "2025-10-13T06:38:03",
            "upload_time_iso_8601": "2025-10-13T06:38:03.279827Z",
            "url": "https://files.pythonhosted.org/packages/09/cb/365d2ba072dca3a81da4b4686f7af971388c8b2d24eaed8a659154bb258e/tepub-0.2.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-13 06:38:03",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "xiaolai",
    "github_project": "tepub",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "tepub"
}
        
Elapsed time: 2.92354s