用Docker单独安装xiaoya-alist
五一快到了,每到节假日,各个景点就人头攒动,就不出门添堵了,准备在家看看电影、喝喝茶
看电影老苏喜欢用播放器,Native客户端的功能是网页端没法比的,Windows 上用的 PotPlayer,Mac 上则用 IINA,Android 上就用 AfuseKt,都是神器
以前都是玩客云下载,局域网 SMB 映射,看完就删,不过玩客云已经终止了服务。现在基本上是通过转存到阿里云盘,用 WebDAV 挂载了再看的
老苏现在的需求是:
- 不需要下载,因为浪费时间,也浪费空间
- 不需要
Jellyfin类的媒体服务器,海报墙是可有可无的 - 最好也不需要转存,因为活动结束,阿里云盘免费空间越来越小了

找了一圈,能满足需求的只有 xiaoya 了,有个 DDS-Derek/xiaoya-alist 的项目,整合了小雅 Alist 的相关周边的安装脚本,内置所有相关软件的安装

只要一条命令就可以安装你心中所想,不想折腾的可以去看看,项目地址:https://github.com/DDS-Derek/xiaoya-alist
老苏还是一如既往喜欢瞎折腾,继续以 Docker 方案折腾
准备
不管用什么方式安装,都需要先准备好三个文件,否则就是安装完,也还是需要重启容器的

| 内容 | 对应文件 | 获取方式 |
|---|---|---|
token |
mytoken.txt |
https://aliyuntoken.vercel.app/ https://alist.nn.ci/zh/guide/drivers/aliyundrive.html |
open token |
myopentoken.txt |
https://alist.nn.ci/tool/aliyundrive/request.html |
转存目录的 folder id |
temp_transfer_folder_id.txt |
先转存这个 https://www.aliyundrive.com/s/rP9gP3h9asE 到自己网盘(选择资源盘),然后浏览器打开转存后的目录,浏览器的 url https://www.aliyundrive.com/drive/file/resource/640xxxxxxxxxxxxxxxxxxxca8a 最后一串就是,记得这个目录不要删,里面的内容可以定期删除 |
下面具体介绍获取方式,切记,token 很重要,一定要保存好
mytoken.txt
刷新令牌是个 32 位长的字符。打开下面👇的网址,然后点 获取Token 按钮
https://alist.nn.ci/zh/guide/drivers/aliyundrive.html#刷新令牌

用阿里云盘手机 APP 扫描二维码

将箭头处出现的 Token,复制到 mytoken.txt文件保存
myopentoken.txt
open token 是一串很长的字符,打开下面👇的网址,然后点 Scan QrCode 按钮
https://alist.nn.ci/tool/aliyundrive/request.html

用阿里云盘手机 APP 扫描二维码,然后点 I have scan

将得到的 Refresh Token ,复制到 myopentoken.txt 文件保存
temp_transfer_folder_id.txt
登陆自己的阿里云盘网页版,在【资源库】里面新建一个文件夹,名字无所谓的,老苏建了个temp

点击 temp 文件夹,可以在浏览器上地址栏看到 resource 后面的一串字符

这串字符就是 folder id ,复制到 temp_transfer_folder_id.txt文件保存
有一点需要注意,这个目录如果删了,哪怕你重建了一个名称一样的目录, folder id 也是不一样的,需要更新temp_transfer_folder_id.txt,否则转存的时候就会出错
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 xiaoyaliu ,选择第一个 xiaoyaliu/alist,版本选择 latest。

容器名称
后面还会用到容器的名称,所以这里就叫 xiaoya

卷
在 docker 文件夹中,创建一个新文件夹 xiaoya,并在其中建一个子文件夹 data,将前面准备的三个文件,放入 data 目录

| 文件夹 | 装载路径 | 说明 |
|---|---|---|
docker/xiaoya/data |
/data |
存放配置文件 |

端口
本地端口不冲突就行,不确定的话可以用命令查一下
1 | # 查看端口占用 |
| 本地端口 | 容器端口 |
|---|---|
8765 |
80 |
默认没有暴露端口

需要点 + 号自行添加

命令行安装
如果你熟悉命令行,可能用 docker cli 更快捷
1 | # 新建文件夹 xiaoya 和 子目录 |
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
1 | version: '3' |
然后执行下面的命令
1 | # 新建文件夹 xiaoya 和 子目录 |
运行
查看容器的日志,如果准备的三个文件正确的话,会看到数据同步的信息

这个过程可能会持续几分钟,在浏览器中输入 http://群晖IP:8765 ,如果显示 获取设置失败,那还得再等等

全部元数据加载成功后是下面👇这样的

现在就可以正常看电影了

这个时候看 /data 目录,会多出几个文件

WebDAV 挂载
前面已经交代过,老苏习惯用播放器看电影,所以还需要做 WebDAV 挂载,xiaoya 默认是支持 WebDAV 的
默认的地址:
http://群晖IP:8765/dav
用户:guest
密码:guest_Api789
以 Windows 平台的 RaiDrive 为例

挂载成功后,就可以在资源管理器中找到文件进行播放了

定时重启
xiaoya 容器重启时,会自动更新数据库及搜索索引文件,所以我们要用群晖的 任务计划 来辅助实现容器的定时重启

创建一个任务

可以设定每天重启一次

脚本直接写 docker restart xiaoya,其中 xiaoya 是容器的名字

清理转存
每一次的播放,xiaoya 都会将文件转存到我们前面建的 temp 目录,随便点点就会发现多了一堆的文件,哪怕是同一个文件,也是会重新转存的

所以清理就很重要,一旦阿里云盘满了,是会报错的。在前面介绍的 DDS-Derek/xiaoya-alist 中,有一个清理脚本
地址:https://github.com/DDS-Derek/xiaoya-alist/tree/master/xiaoyahelper

可以直接运行 bash -c "$(curl -sLk https://xiaoyahelper.ddsrem.com/aliyun_clear.sh | tail -n +2)" -s 3
老苏用的模式
3,只要运行一次,如果看到已启动就表示成功了

也可以下载到本地运行 ./aliyun_clear.sh 3

当看到小雅看护已启动,你会在容器中找到 xiaoyakeeper 容器

清理并不会立即就执行,容器会安装并更新一些东西

网络不好的情况下,还是需要点时间的

每次清理都会有清理记录

按官方说明,模式 3 默认从运行脚本的下一分钟开始,每天运行一次。如果万一不能更新的话,可以参照前面的方法,让 xiaoyakeeper 容器每天定时重启
参考文档
DDS-Derek/xiaoya-alist: 小雅Alist的相关周边
地址:https://github.com/DDS-Derek/xiaoya-alistDocker Hub
地址:https://hub.docker.com/r/xiaoyaliu/alist如何设置xiaoya的docker
地址:https://xiaoyaliu.notion.site/xiaoya-docker-69404af849504fa5bcf9f2dd5ecaa75f