如何从零开始构建自己的媒体库:Legado-E 评测
常见的情况是:你想读一本书、追一部剧或听一个播客,但每种内容都需要一个单独的应用程序。如果内容分散在不同的网站上,你的手机就会变成一堆图标。我最近发现了 Luoyacheng/legado-E 仓库,它提供了一个解决这个问题的激进方案。

这玩意儿到底是什么
Legado-E(又称 阅读Sigma)是广受欢迎的开源阅读器 Legado 的一个分支。如果原项目主要专注于书籍,Sigma 版本则走得更远。从本质上讲,它是一个带有高级解析器的空"引擎"。你向它提供规则(源),它就能将来自几乎任何网站的原始 HTML 转换为简洁的阅读器或播放器界面。
该项目使用 Kotlin 编写,目标是 Android。这里的主要特点是应用本身不包含任何内容。这是一个为喜欢自定义一切、不想依赖流媒体平台或在线图书馆任性行为的用户准备的工具。
Sigma 与原版的区别
开发者没有重复造轮子,保留了 Legado 3.0 的基础,但添加了几个真正缺失的功能:
- 多媒体。不再只是文本。Sigma 有一个支持歌词显示的音频播放器,还有一个甚至能处理弹幕(叠加在视频上的飞行弹幕)的视频播放器。
- 改进的源编辑器。为网站解析编写规则变得稍微容易了一些。如果你曾在移动界面上调试过 regex 或 XPath,你就会理解这为什么重要。
- 灵活的订阅。RSS 和内容更新系统在这里比原版更可靠。
实际使用体验
所有魔法都取决于"源"(Book Sources)。你创建一个 JSON 文件,在其中描述如何在网站上搜索书籍、目录在哪里,以及如何提取章节文本。
有趣的是,该应用提供了两种类型的 API:通过 Web 和通过 Content Provider。这允许你例如远程管理你的图书馆或将阅读器与其他服务集成。
底层技术栈
该项目积极使用标准 Android 开发库,但依赖列表令人印象深刻:
- Jsoup 和 JsoupXpath — 用于解析 HTML 树。
- Rhino Android — 用于在解析规则内执行 JavaScript 场景。
- OkHttp — 用于网络请求。
- LyricViewX — 用于在音频播放器中显示滚动歌词的库。
为什么开发者可能会感兴趣
如果你对解析或自动化感兴趣,Legado-E 是一个极好的试验场。与其为某个特定资源编写自己的数据读取解决方案,不如为这个应用写一条规则。
顺便说一句,该仓库支持自定义主题和灵活的排版设置。你可以更改一切:从行距到简体中文到繁体中文的转换规则(虽然对俄语用户群体相关性较低,但通过 regex 实时替换文本的机制非常强大)。

值得一试吗
Legado-E 是一个特殊的项目。它有学习曲线:你需要么在网上搜索现成的源列表(Telegram 频道和论坛上有很多),要么自己弄清楚 JSON 规则结构。
一定会喜欢它的人:
- 想要一个将所有类型内容整合在单一包中的"全能"解决方案的人。
- 重视隐私和无广告的人(该应用完全干净)。
- 需要方便客户端来访问家庭服务器或特定网站的开发者。
缺点是文档大部分是中文的,但界面很直观,Discord 和 Telegram 上的社区响应相当及时。如果你觉得常规阅读器让你感到受限,Sigma 绝对值得在你的智能手机上占有一席之地。
相关项目