aio-epub-exportlisted
Install: claude install-skill aiocean/claude-plugins
# EPUB Export — Pack & Download
Pack translated books back into EPUB format for reading or distribution.
> **Trước khi xuất**: Chạy `aio-epub-quality` để kiểm tra chất lượng. Chapters chưa dịch xong? Dùng `aio-epub-translate`.
## API Setup
```python
import json, urllib.request, os
BASE = "https://read-api.aiocean.dev/ListBooks.v1.BookService"
KEY = os.environ.get("AIO_EPUB_API_KEY", "duocnv")
def api(method, body):
data = json.dumps(body).encode('utf-8')
req = urllib.request.Request(f"{BASE}/{method}", data=data, headers={
"Content-Type": "application/json",
"X-License-Key": KEY
})
with urllib.request.urlopen(req) as resp:
return json.loads(resp.read())
```
## Workflow
### 1. Check Translation Status First
```python
progress = api("GetTranslationProgress", {"bookId": BOOK_ID})
pct = progress["progress"]["translationPercentage"]
print(f"Translation progress: {pct:.1f}%")
if pct < 100:
untranslated = []
for fp in progress["progress"].get("fileProgress", []):
if fp["translationPercentage"] < 100:
untranslated.append(f" {fp['filePath']}: {fp['translationPercentage']:.0f}%")
print(f"\nWarning: {len(untranslated)} chapters incomplete:")
print("\n".join(untranslated))
```
### 2. Pack EPUB
```python
# Bilingual (original + translation side by side)
result = api("PackEpub", {
"bookId": BOOK_ID,
"packMode": "BILINGUAL"
})
print(f"EPUB URL: {result['epubUrl']}")
print(f"Message: {result['mes