每次打开手机上的有声书App,是不是总遇到这些问题:想听的资源找不到版权、喜欢的书突然下架、不同设备间进度不同步、会员费越涨越高……这时候你就需要Audiobookshelf这样的自托管方案了。简单来说,它就像是你家里的私人图书馆管理员,只不过管理的是有声书资源。
我最早接触Audiobookshelf是因为收藏的几套有声书在主流平台都下架了。这些资源明明就在我的硬盘里,却要忍受各种播放器糟糕的目录管理。直到把800多本有声书迁移到Audiobookshelf后,才发现原来管理有声书可以这么优雅——自动匹配封面和元数据、跨设备同步进度、支持多种格式播放,这些功能完全改变了我听书的体验。
Audiobookshelf对硬件要求很亲民。实测下来,树莓派4B就能流畅运行1000+有声书库。但如果要处理大量高码率文件,建议选择x86架构的设备。我的主力服务器是一台老旧的Intel NUC,配置是i3-7100U+8GB内存,同时服务5个家庭成员毫无压力。
存储方面有个小技巧:有声书文件建议放在SSD上,因为频繁的元数据读写会更流畅;而备份文件可以放在机械硬盘。我现在的配置是256GB SSD存放常听书目,4TB机械盘做完整库备份。
如果你希望在外网也能访问,建议做好这几件事:
这里有个坑我踩过:某些运营商封禁了80/443端口,所以最好选用非常用端口。我的方案是用23456端口映射到内网的13378,这样既避开封锁又容易记忆。
在群晖DSM7上的实操步骤:
bash复制# 创建目录结构
sudo -i
mkdir -p /volume1/docker/audiobookshelf/{audiobooks,config,metadata}
chmod -R 777 /volume1/docker/audiobookshelf
# 拉取镜像
docker pull advplyr/audiobookshelf:latest
更推荐使用docker-compose方式管理,这是我的配置文件模板:
yaml复制version: '3.8'
services:
audiobookshelf:
image: advplyr/audiobookshelf:latest
container_name: abs
environment:
- AUDIOBOOKSHELF_UID=1026
- AUDIOBOOKSHELF_GID=100
ports:
- "13378:80"
volumes:
- /volume1/docker/audiobookshelf/config:/config
- /volume1/docker/audiobookshelf/metadata:/metadata
- /volume1/media/Audiobooks:/audiobooks
restart: unless-stopped
注意几个关键点:
对于不用Docker的极客,可以直接在Ubuntu上部署:
bash复制# 安装依赖
sudo apt update && sudo apt install -y ffmpeg sqlite3
# 获取最新版
wget https://github.com/advplyr/audiobookshelf/releases/download/v2.3.1/audiobookshelf-2.3.1.deb
# 安装
sudo dpkg -i audiobookshelf-*.deb
sudo systemctl enable audiobookshelf
sudo systemctl start audiobookshelf
首次登录http://你的IP:13378 后:
建议开启定期扫描功能:
Audiobookshelf支持自动从Audible、iTunes等平台获取元数据。但中文资源匹配率较低,我的解决方案是:
json复制{
"title": "三体",
"author": "刘慈欣",
"series": "地球往事三部曲",
"seriesOrder": 1,
"coverPath": "/audiobooks/三体/cover.jpg"
}
在config目录下的config.json中可以调整:
json复制{
"scanInterval": "6h",
"metadataTimeout": 30,
"maxConcurrentMetadataJobs": 2,
"cacheCoverWorkers": 4
}
根据你的硬件配置,适当增加并发数能显著提升扫描速度。我的i3平台设置如上,扫描1000本书只需约15分钟。
从GitHub下载最新APK后:
实测发现的功能亮点:
由于未上架App Store,需要通过TestFlight安装:
注意iOS版本需要:
在管理界面可以:
适合家庭的配置方案:
扫描不出书籍的排查步骤:
ls -l /path/to/booksdocker logs audiobookshelf播放卡顿的可能解决方案:
ffmpeg -i input.m4b -b:a 64k output.m4b关键数据有三部分:
我的自动化备份方案:
bash复制# 每天凌晨3点打包关键数据
0 3 * * * tar -czf /backups/abs_$(date +\%Y\%m\%d).tar.gz /docker/audiobookshelf/{config,metadata}
分步操作指南:
测试发现即使跨平台迁移(如从群晖到Ubuntu),只要文件路径配置正确,所有数据和设置都能完整保留。