用 OpenClaw AI Agent 朗读任意网页(含微信读书、Kindle)

CastReader 是 ClawHub 上唯一能把网页 URL 转成音频的 OpenClaw 技能。在 Telegram 给你的 OpenClaw agent 发一个链接,它就会提取文章内容、用 Kokoro TTS 模型生成语音、返回一个 MP3 文件。kokoro-tts、openai-tts 这些技能只能转纯文本,而 CastReader 能处理微信读书的 Canvas 渲染、Kindle 的加密字体、Notion 的复杂 DOM。安装命令:clawhub install castreader

我第一次试 OpenClaw 的 TTS 技能时,发了一条微信读书的链接过去。

啥也没回。

换了 kokoro-tts,告诉我"请输入要转换的文本"。又试了 openai-tts,一样——只接受纯文本,不认 URL。

问题很明显:网页朗读不只是"文字转语音"这一步。在生成音频之前,你得先把网页里的正文提取出来。而提取这件事,比大多数人想象的要难得多。

现有 TTS 技能的局限

ClawHub 上有十几个 TTS 相关的技能。kokoro-tts 用的是开源 Kokoro 模型,音质不错,免费。openai-tts 调的是 OpenAI 的 API,声音更自然,但要付费。它们有一个共同点:只处理纯文本输入

你给它一段话,它返回一段音频。很合理。

但在实际使用中,你想朗读的内容几乎都不是"纯文本"。它在一个网页里。被导航栏、侧边栏、广告、评论区、页脚版权信息包裹着。你需要有人帮你把正文摘出来。

传统的做法是复制粘贴。打开网页,手动选中正文区域,复制,粘贴到 TTS 技能的对话框里。这对一篇 500 字的短文还行。但如果是一篇 3000 字的深度报道?一本微信读书的章节?十篇 RSS 订阅更新?

没人愿意这么干。

CastReader 解决了什么问题

CastReader 把"提取"和"朗读"合并成了一步。你发一个 URL,它返回一个 MP3。中间发生了什么:

  1. 无头浏览器加载页面,等待渲染完成
  2. 自动选择对应平台的专用提取器(15+ 平台)
  3. 提取正文段落,过滤掉导航、广告、UI 文本
  4. 用 Kokoro TTS 模型逐段生成语音
  5. 拼接成完整 MP3 返回

关键在第 2 步。CastReader 不是用一个通用规则去处理所有网页——那样会漏掉微信读书、搞砸 Kindle、被 Notion 的嵌套 block 绕晕。它为每个主流平台写了专用的提取器。

微信读书:Canvas 里没有文字

微信读书用 Canvas 渲染文字。右键检查元素,DOM 里一个汉字都找不到。所有 TTS 扩展在这里全军覆没——Read Aloud 静音,NaturalReader 报错,Speechify 直接忽略。

CastReader 的做法是在页面加载前注入 main-world 脚本,拦截微信读书的 fetch 请求,从 API 响应中直接获取章节数据。Canvas 只是用来显示的,真正的文本在网络层。这不是常规的 DOM 提取——是针对微信读书架构的逆向工程。

想了解完整的微信读书朗读方案,看这里:微信读书朗读指南

Kindle Cloud Reader:加密字体

Kindle 的问题更离谱。亚马逊用自定义字体子集做 DRM——DOM 里的字符和屏幕上显示的不是同一个。"Hello" 在 HTML 源码里可能是 "∆♦◊●♠"。浏览器靠下载亚马逊的私有字体文件才能正确渲染。

CastReader 通过本地 OCR(Tesseract.js,不上传任何数据)识别屏幕上的实际字符,再与字体解码结果交叉校准,最终还原出真实文本。整个过程在你的电脑上完成,零 API 成本。

详细技术方案:Kindle 朗读指南

其他平台

Notion 的嵌套 block 结构、Google Docs 的自定义渲染引擎、语雀和飞书的企业文档系统、ChatGPT/Claude/Gemini 的对话页面——CastReader 都有专用提取器。不需要你告诉它"这是什么网站",它根据域名自动匹配。匹配不到专用提取器?还有一个通用算法兜底,融合了 Readability.js 和 JusText 的思路,覆盖大多数标准网页。

安装和使用

三步:

# 1. 在 Telegram 找到你的 OpenClaw agent
# 2. 安装 CastReader 技能
clawhub install castreader

# 3. 发送任意网页链接
https://mp.weixin.qq.com/s/xxxxx

Agent 收到链接后会自动提取并生成音频。通常 30 秒到 2 分钟,取决于文章长度。返回的 MP3 可以直接在 Telegram 里播放,也可以下载到本地。

如果你是第一次使用 OpenClaw,可以参考我们的完整安装指南,从零开始一步步配置。

几个实际场景:

  • 通勤路上听完今天的微信公众号推送
  • 跑步时听一篇知乎万赞回答
  • 做饭时把 Kindle 买的书听几章
  • 睡前听完一篇英文长报道,不用盯屏幕

免费,无限制,不需要注册账号。

与其他方案对比

方案接受 URL微信读书Kindle音质价格
CastReader (OpenClaw)Kokoro 神经网络免费
kokoro-tts否(纯文本)Kokoro免费
openai-tts否(纯文本)OpenAI按量付费
微信读书自带朗读机器人音质系统 TTS免费
Speechify高级声音$139/年

核心差异很简单:其他 TTS 技能是"文本转语音"工具,CastReader 是"网页转语音"工具。差了一个"提取"的环节,但这个环节决定了你能不能真正用起来。

高级用法:浏览器扩展模式

OpenClaw 适合"发链接、收音频"的异步场景。但如果你想边看边听——段落级高亮跟随、点击任意段落跳转、调节语速——那需要 Chrome 扩展。

CastReader Chrome 扩展做的就是这件事。打开任意网页,点击扩展图标,当前段落高亮,自动滚动跟随。和 Google 翻译插件一样的交互模型——页面渲染好了,你点一下,它处理当前 DOM。

扩展的提取器和 OpenClaw 技能用的是同一套代码。15+ 平台专用提取器,同一个通用算法兜底。区别在于扩展直接在浏览器里运行,延迟更低,而且支持实时高亮和段落跳转。

两种模式可以配合使用:在电脑前用扩展边看边听,出门了用 Telegram agent 收 MP3 路上听。同一篇文章,两种消费方式。


想试试?在 Telegram 给你的 OpenClaw agent 发一条微信读书的链接。30 秒后你会收到一个 MP3——这在以前是做不到的事。

安装命令:clawhub install castreader

了解更多 OpenClaw 技能

用 OpenClaw AI Agent 朗读任意网页(含微信读书、Kindle) | CastReader 博客 — 文字转语音工具指南与评测