Berth 与 Audiobookshelf:自托管有声书服务器该选哪个
更新于 2026 年 10 月 27 日
Audiobookshelf 是最知名的自托管有声书服务器:成熟稳定,支持播客,社区庞大。Berth 是一款新服务器,思路不同:书库保存在数据库中,音频可以放在对象存储里,手机扫二维码即可连接。下面介绍两者的区别以及各自适合的场景。
简短回答
- 如果你想要一个现在就成熟、支持播客、社区庞大且集成众多的项目,而且你的书已经整齐地放在本地磁盘的文件夹里,选 Audiobookshelf。
- 如果文件夹扫描曾经弄乱过你的书库或进度,如果你想把音频放在 S3 或 Cloudflare R2 而不是本地磁盘,或者希望家人扫二维码连接而不用输入密码,选 Berth。
并排对比
| Berth | Audiobookshelf | |
|---|---|---|
| 定位 | 有声书 | 有声书和播客 |
| 书库来源 | 数据库;通过网页后台上传书籍 | 扫描媒体文件夹 |
| 文件存放位置 | 本地磁盘或任意兼容 S3 的存储 | 本地或挂载的文件系统 |
| 音频分发 | 通过签名链接从存储或 CDN 获取,或经由服务器 | 经由服务器 |
| 听众登录 | 二维码,无需密码 | 用户名和密码 |
| 移动应用 | 自有 Android 和 iOS 应用(尚未上架) | 官方 Android 应用;iOS 应用处于 TestFlight 测试阶段 |
| 服务器许可证 | Apache-2.0 | GPL-3.0 |
| 成熟度 | 服务器 1.0(2026 年 10 月) | 成熟,社区庞大 |
依据截至 2026 年 10 月的公开文档和 issue 跟踪记录。Berth 于 2026 年 10 月发布了首个服务器版本,应用尚未上架应用商店。
用数据库代替文件夹扫描
Audiobookshelf 通过扫描媒体文件夹并推测哪些文件属于哪本书来构建书库。文件夹整齐时这很好用,但一个多余的文件就可能把两本书合并在一起,把文件挪到另一块磁盘还可能丢失与收听进度的关联。
在 Berth 中,一本书就是数据库里的一条记录。你在网页后台上传文件夹或文件,核对 Berth 从标签中读取的书名、作者、朗读者、系列和年龄分级,然后加入书库。章节、曲目顺序和封面都与书一起保存,因此重命名或移动文件不会改变它。
存储与分发
Audiobookshelf 从服务器的文件系统读取书籍。Berth 同样可以把书放在本地磁盘上,也可以放在任意兼容 S3 的存储中——AWS S3、Cloudflare R2、Backblaze B2、Bunny Storage、MinIO、Yandex Object Storage——并为 Cloudflare R2 提供引导式向导。
使用对象存储时,手机可以通过短时效签名链接直接从存储桶或 CDN 下载音频,小型家庭服务器或廉价 VPS 不会成为瓶颈。参见 S3 存储。
连接手机
在 Berth 中,管理员创建听众并出示二维码;手机扫码后书库就会出现。二维码只能使用一次,两分钟后失效;应用会同时获得服务器的家庭网络地址和互联网地址,管理员可以撤销任何设备。详情:连接手机。
Audiobookshelf 能做而 Berth(暂时)不能做的
- 播客——计划在首个版本之后推出。
- 自动导入现有的文件夹书库——Berth 通过上传添加书籍;Audiobookshelf 导入工具已在计划中。
- 长期的发展历史,以及拥有众多第三方集成的庞大社区。
- 现在就能在应用商店下载的应用——Berth 的应用仍在收尾中。
常见问题
Berth 是 Audiobookshelf 的分支吗?
不是。Berth 是用 Rust 编写的独立服务器,拥有自己的数据库模型、API(用 OpenAPI 描述)和移动应用。
能把我的书库自动迁移到 Berth 吗?
暂时不能。书籍需要在网页后台上传:拖入文件夹或文件,Berth 会读取标签、章节和封面。Audiobookshelf 导入工具已列入路线图,计划在首个版本之后推出。
Berth 和 Audiobookshelf 能同时运行吗?
可以。它们是相互独立的容器;Berth 默认监听 8080 端口,数据保存在自己的文件夹中。