有声读物管理平台Booksonic-Air

老苏最近在听评书,所以想找个软件来管理和收听,找了一圈,感觉 Booksonic-Air 可能能满足老苏的需求。

什么是 Booksonic-Air ?

Booksonic-Air 是一个用于流式传输有声读物的服务器,是原始 Booksonic 服务器的后继者。它并不是从头开始建立的,而是基于 Airsonic 的新 Booksonic 服务器。

什么是 Booksonic ?

Booksonic 是一个无论您身在何处都可以访问您拥有的有声读物的平台。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 booksonic-air ,选择第一个 linuxserver/booksonic-air,版本选择 latest

本文写作时, latest 版本对应为 2201.1.0

docker 文件夹中,创建一个新文件夹 booksonic-air,并在其中建一个子文件夹 audiobooksconfigothermediapodcasts

文件夹 装载路径 说明
docker/booksonic-air/audiobooks /audiobooks 存放音频文件
docker/booksonic-air/config /config 存放设置文件
docker/booksonic-air/othermedia /othermedia 存放其他媒体文件
docker/booksonic-air/podcasts /podcasts 存放播客文件

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
4042 4040

环境

可变
PUID 设为 1000
PGID 设为 1000
TZ 设置时区,为 Asia/Shanghai

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 新建文件夹 booksonic-air 和 子目录
mkdir -p /volume1/docker/booksonic-air/{audiobooks,config,othermedia,podcasts}

# 进入 booksonic-air 目录
cd /volume1/docker/booksonic-air

# 运行容器
docker run -d \
--restart unless-stopped \
--name booksonic-air \
-p 4042:4040 \
-v $(pwd)/audiobooks:/audiobooks \
-v $(pwd)/config:/config \
-v $(pwd)/othermedia:/othermedia \
-v $(pwd)/podcasts:/podcasts \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Shanghai \
linuxserver/booksonic-air:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
version: '3'

services:
booksonic-air:
image: linuxserver/booksonic-air:latest
container_name: booksonic-air
restart: unless-stopped
ports:
- 4042:4040
volumes:
- ./config:/config
- ./audiobooks:/audiobooks
- ./podcasts:/podcasts
- ./othermedia:/othermedia
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 booksonic-air 和 子目录
mkdir -p /volume1/docker/booksonic-air/{audiobooks,config,othermedia,podcasts}

# 进入 booksonic-air 目录
cd /volume1/docker/booksonic-air

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

稍等一会儿,在浏览器中输入 http://群晖IP:4042 就能看到注册界面

按页面上的提示,用户名和密码都是 admin,记得登录成功后立刻修改

改好密码之后,点 2、Set up media folders. 设置媒体目录

新增 /audiobooks 目录

原来默认的 /music 可以取消 Enabled,但不要勾选 Delete ,因为目录并不存在;

如果 /audiobooks 目录已经有文件,可以点 Scan media folders now 开始立刻扫描

扫描完成后就可以播放了,不过老苏发现,mp3 可以直接播放

但是 wma 播放不了,而且还各种乱码

从日志看有报错信息

1
2
3
4
5
2024-01-27 10:37:24.865  INFO --- o.a.p.c.StreamController                 : Streaming request for [/audiobooks/刘兰芳评书《契丹萧太后》/001.wma] with range [bytes 0-6810483/6810484]

2024-01-27 10:37:24.866 INFO --- o.a.p.io.PlayQueueInputStream : 172.17.0.1: admin listening to 刘兰芳评书《契丹萧太后》/001.wma

2024-01-27 10:37:25.155 INFO --- o.a.p.c.StreamController : 172.17.0.1: Client unexpectedly closed connection while loading http://192.168.0.197:4042/stream?player=1&id=60 (java.io.IOException: Broken pipe)

而老苏的评书大部分是 wma 格式的,看来还得继续找

参考文档

popeen/Booksonic-Air: A new Booksonic server based on Airsonic. - OBS: The code here might not be ready for release. Feel free to compile it yourself but if so I recommend searching for the latest commit with the description “Prepare for release”
地址:https://github.com/popeen/Booksonic-Air

Booksonic
地址:https://booksonic.org/

linuxserver/booksonic-air - Docker Image | Docker Hub
地址:https://hub.docker.com/r/linuxserver/booksonic-air

linuxserver/booksonic-air - LinuxServer.io | 中文
地址:https://docs.watercalmx.com/docker-jing-xiang/docker-booksonic-air