finds.dev← search

// the find

yihong0618/bilingual_book_maker

★ 9,864 · Python · MIT · updated Sep 2026

Make bilingual epub books Using AI translate

A CLI (and now agent skill) that translates epub/txt/md/srt/pdf books into bilingual editions using any LLM or translation API — OpenAI, Anthropic, Gemini, Qwen, Groq, xAI, DeepL, Google Translate, local OpenAI-compatible endpoints, or your Codex/ChatGPT plan. Built for people who want to read foreign-language books side-by-side with a translation, or for self-hosters who want full control over which model does the translating.

Plan mode is the real engineering here: instead of blindly translating every <p> tag, it classifies tags per-document so poetry, blockquotes and table cells aren't silently dropped, with a dry-run mode to preview the plan before spending a token. Session mode keeps one running conversation per book so character names and terminology stay consistent across chapters, and it's built around prompt caching so the context doesn't get re-billed every request — a detail most translation scripts ignore. The provider abstraction is genuinely pluggable (JSON config adds a new OpenAI/Anthropic-compatible endpoint with no code change), and the test suite is unusually thorough for a project this shape — there's coverage for font obfuscation, epub validity, OCR engine selection, and retranslation of specific passages.

The CLI surface has sprawled past what one person can hold in their head — dozens of flags with overlapping concerns (api_format vs provider vs model-string inference), and the auto-detection that guesses api_format from whether 'claude' appears in the model name is the kind of magic that breaks in surprising ways once someone names a custom deployment 'claude-proxy'. Cost reporting is explicitly an estimate ('close enough to steer by, but the vendor's bill is the number that counts') with no pre-flight cost estimate before you commit to translating a 400-page book. The PDF-to-EPUB path pulls in Pandoc 3.1.12+, docling, and an OCR engine choice — that's a lot of external dependency surface for what's billed as one feature. Batch API support is flatly unavailable for EPUB inputs, the most common input format, so the cheapest LLM pricing tier is closed off exactly where it'd help most.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →