微信读书网页版怎么朗读?目前唯一的解决方案
我在微信读书上有三百多本书。通勤的时候想听,做饭的时候想听,跑步的时候想听。微信读书 App 没有朗读功能。网页版也没有。
我试了市面上能找到的所有 TTS 工具。Speechify、Read Aloud、Natural Reader、Edge 的大声朗读。没有一个能在微信读书上工作。
不是因为这些工具不好。是因为微信读书做了一件特别的事。
为什么所有 TTS 工具都失败了
打开微信读书网页版,右键检查元素,你会发现书的正文区域是一个 <canvas> 标签。文字不在 HTML 里。它被画在了一块画布上,跟画一张图片没有本质区别。
所有 TTS 工具的工作原理都一样:从 DOM 里找到文字 → 发给语音引擎 → 播放。当文字不在 DOM 里的时候,第一步就卡住了。工具看到的是一片空白。
你可以验证:在微信读书网页版上按 Ctrl+A 全选,然后 Ctrl+C 复制。粘贴出来,你会发现——什么都没有。文字确实不在 DOM 里。
这不是 bug,是微信读书的设计选择。Canvas 渲染可以防止内容被轻易复制,也让排版更精确。但副作用是把所有依赖 DOM 文本的工具都挡在了门外。
CastReader 怎么做到的
CastReader 用了一个完全不同的技术路线。
微信读书把文字画到 Canvas 上之前,需要先从服务器拿到章节数据。这个数据通过 fetch 请求传输。CastReader 在页面的 main world 里注入了一段脚本,拦截这个 fetch 请求,在数据到达 Canvas 渲染引擎之前把章节文本提取出来。
简单说:不是从画布上"看"文字,而是在文字被"画"上去之前就截获了。
提取到文本之后,CastReader 用 Kokoro TTS 引擎合成语音,段落级高亮跟随,自动翻页——跟在普通网页上的体验一模一样。
翻页模式
微信读书默认的翻页模式下,CastReader 读完当前页的段落后会自动翻到下一页继续读。高亮直接显示在 Canvas 上方,位置精确对齐到每个段落。
滚动模式
滚动模式稍复杂一些。微信读书在滚动模式下会创建多个渲染容器,其中只有一个包含真实内容,其余是加密的干扰数据(反盗版机制)。CastReader 通过分析 CSS 样式特征过滤掉加密容器,只提取真实章节文本。
两种模式都完整支持。
怎么用
- 从 Chrome 应用商店 安装 CastReader
- 打开 微信读书网页版,登录你的账号
- 打开任意一本书
- 点击浏览器右上角的 CastReader 图标
- 开始朗读
不需要注册。不需要配置。不需要付费。装上就能用。
高亮跟随
CastReader 在朗读的时候会高亮当前正在读的段落。在普通网页上这很好实现——给 DOM 元素加个背景色就行。但在微信读书的 Canvas 上,没有 DOM 元素可以加样式。
CastReader 的做法是在 Canvas 上方覆盖一层透明的定位层,根据从渲染数据中提取的位置信息精确计算每个段落的坐标,把高亮画在正确的位置上。当你调整窗口大小、切换翻页/滚动模式的时候,高亮位置会自动重新计算。
效果就是:你看到的高亮跟段落完全对齐,就像是微信读书自带的功能一样。
限制
说清楚不能做什么。
只支持网页版。 微信读书 App 是独立应用,Chrome 扩展进不去。你需要在电脑上打开 weread.qq.com。
需要登录。 CastReader 读的是你自己书架上的书。你需要先登录微信读书网页版。
不能离线听。 实时从网页提取 + TTS 合成。需要网络连接。
语音是 AI 合成的。 Kokoro 引擎的中文语音已经很自然了,但跟人类朗读还是有区别。如果你对语音质量要求极高,这可能不是你要的东西。
为什么免费
CastReader 目前完全免费,没有付费计划,没有使用限制。所有功能、所有语音、所有网站,直接用。
我们做这个工具是因为自己需要。我在通勤路上想听微信读书的书,找不到工具,就自己做了一个。现在分享出来。
其他网站也能读
CastReader 不只是微信读书专用。它能朗读几乎所有网页——新闻、博客、论文、文档。还有 15+ 个专用提取器,覆盖 Kindle Cloud Reader、Notion、Google Docs、知乎、飞书、语雀 等等。
如果你不只是在微信读书上需要朗读,CastReader 可能是你需要的那个「万能朗读器」。
从 Chrome 应用商店 安装。打开微信读书。点一下图标。就这样。