Name | tepub JSON |
Version |
0.2.2
JSON |
| download |
home_page | None |
Summary | TEPUB - Tools for EPUB: A comprehensive toolkit for EPUB processing including translation, audiobook generation, and export |
upload_time | 2025-10-13 06:38:03 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.10 |
license | MIT |
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.
[](CHANGELOG.md)
[](https://www.python.org/downloads/)
[](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[](CHANGELOG.md)\n[](https://www.python.org/downloads/)\n[](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"
}