V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
vinxu
V2EX  ›  程序员

Kindle 网页版的字体加密是怎么回事?我用 OCR 绕过了它

  •  
  •   vinxu · 14 小时 8 分钟前 · 608 次点击

    最近在做一个浏览器 TTS 扩展( CastReader ),碰到一个有意思的技术问题。 Kindle Cloud Reader ( read.amazon.com )用了一套自定义加密字体做 DRM 。打开任意一本书,右键检查元素,DOM 里的字符全是乱的——"chapter" 在源码里可能显示为 "∆♦⊗∑≈∂"。浏览器能正常渲染是因为加载了亚马逊的自定义字体文件做映射,但 DOM 里的 textContent 是废的。 这导致所有 TTS 扩展在 Kindle 上全军覆没。Read Aloud 、NaturalReader 、Speechify ,全部读出来是乱码。我测了 15 个扩展,没有一个能用。 我的解决方案:不读 DOM ,读像素。用 tesseract-wasm 在浏览器里跑 OCR ,直接识别渲染后的页面图像。整个流程: 1. 截取当前页面渲染结果 2. tesseract-wasm 本地 OCR (不上传任何数据) 3. 拿到文字 + 每个词的 bounding box 坐标 4. 送进 Kokoro TTS 生成语音 5. 用 bounding box 做段落级高亮跟随 首页 OCR 2-3 秒,之后自动翻页 + 预处理下一页,听的时候感觉不到延迟。 还做了个「发送到手机」功能,点一下通过 Telegram 把音频推到手机,自动翻页持续朗读。相当于把 Kindle 书库变成免费有声书。 技术细节写了一篇博客: https://castreader.ai/blog/how-castreader-cracks-kindle-font-encryption 扩展免费,不要账号: - Chrome: https://chromewebstore.google.com/detail/castreader-tts-reader/foammmkhpbeladledijkdljlechlclpb

    有什么技术问题欢迎讨论

    4 条回复    2026-03-31 17:10:05 +08:00
    vinxu
        1
    vinxu  
    OP
       14 小时 7 分钟前
    对了,做微信读书页面版本的 tts 适配也花了不少时间,不过现在已经可以 tts+高亮跟随了,也可以一键下到手机。
    Danswerme
        2
    Danswerme  
       11 小时 35 分钟前
    感谢分享,让我想起来很久之前看过的一篇帖子,里面也提到了关于字体加密相关的内容:

    https://web.archive.org/web/20240326202743/https://cjting.me/2020/07/01/douyu-crawler-and-font-anti-crawling/
    w568w
        3
    w568w  
       11 小时 33 分钟前
    微信读书的网页版(电纸书版)也有类似的技术,不过是打乱每个字符的坐标,然后用绝对定位渲染到屏幕上,相对好还原。
    ltaoo1o
        4
    ltaoo1o  
       11 小时 21 分钟前
    番茄小说网页端也是这样,看到的部分「中文」其实是 iconfont 。

    我的方案是拿到字体文件,找到映射关系然后替换内容,优点是不需要 OCR 。缺点是不通用,对于你的场景,就要对每个网站做适配,而且可能网站更新了字体文件,映射关系就变了
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   926 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 20:31 · PVG 04:31 · LAX 13:31 · JFK 16:31
    ♥ Do have faith in what you're doing.