微信读书网页版怎么朗读?目前唯一的解决方案

微信读书网页版怎么朗读?目前唯一的解决方案

我在微信读书上有三百多本书。通勤的时候想听,做饭的时候想听,跑步的时候想听。微信读书 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 样式特征过滤掉加密容器,只提取真实章节文本。

两种模式都完整支持。

怎么用

  1. Chrome 应用商店 安装 CastReader
  2. 打开 微信读书网页版,登录你的账号
  3. 打开任意一本书
  4. 点击浏览器右上角的 CastReader 图标
  5. 开始朗读

不需要注册。不需要配置。不需要付费。装上就能用。

高亮跟随

CastReader 在朗读的时候会高亮当前正在读的段落。在普通网页上这很好实现——给 DOM 元素加个背景色就行。但在微信读书的 Canvas 上,没有 DOM 元素可以加样式。

CastReader 的做法是在 Canvas 上方覆盖一层透明的定位层,根据从渲染数据中提取的位置信息精确计算每个段落的坐标,把高亮画在正确的位置上。当你调整窗口大小、切换翻页/滚动模式的时候,高亮位置会自动重新计算。

效果就是:你看到的高亮跟段落完全对齐,就像是微信读书自带的功能一样。

限制

说清楚不能做什么。

只支持网页版。 微信读书 App 是独立应用,Chrome 扩展进不去。你需要在电脑上打开 weread.qq.com。

需要登录。 CastReader 读的是你自己书架上的书。你需要先登录微信读书网页版。

不能离线听。 实时从网页提取 + TTS 合成。需要网络连接。

语音是 AI 合成的。 Kokoro 引擎的中文语音已经很自然了,但跟人类朗读还是有区别。如果你对语音质量要求极高,这可能不是你要的东西。

为什么免费

CastReader 目前完全免费,没有付费计划,没有使用限制。所有功能、所有语音、所有网站,直接用。

我们做这个工具是因为自己需要。我在通勤路上想听微信读书的书,找不到工具,就自己做了一个。现在分享出来。

其他网站也能读

CastReader 不只是微信读书专用。它能朗读几乎所有网页——新闻、博客、论文、文档。还有 15+ 个专用提取器,覆盖 Kindle Cloud ReaderNotionGoogle Docs知乎飞书语雀 等等。

如果你不只是在微信读书上需要朗读,CastReader 可能是你需要的那个「万能朗读器」。

Chrome 应用商店 安装。打开微信读书。点一下图标。就这样。