五一快到了,每到节假日,各个景点就人头攒动,就不出门添堵了,准备在家看看电影、喝喝茶
看电影老苏喜欢用播放器,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 | 存放配置文件 |
端口
本地端口不冲突就行,不确定的话可以用命令查一下
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 | 容器端口 |
---|---|
8765 | 80 |
默认没有暴露端口
需要点 +
号自行添加
命令行安装
如果你熟悉命令行,可能用 docker cli
更快捷
# 新建文件夹 xiaoya 和 子目录
mkdir -p /volume1/docker/xiaoya/data
# 进入 xiaoya 目录
cd /volume1/docker/xiaoya
# 将 mytoken.txt 、 myopentoken.txt 、 temp_transfer_folder_id.txt 放入 /data 目录
# 运行容器
docker run -d \
--restart unless-stopped \
--name xiaoya \
-p 8765:80 \
-v $(pwd)/data:/data \
xiaoyaliu/alist
也可以用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
version: '3'
services:
xiaoya:
image: xiaoyaliu/alist
container_name: xiaoya
restart: unless-stopped
ports:
- 8765:80
volumes:
- ./data:/data
然后执行下面的命令
# 新建文件夹 xiaoya 和 子目录
mkdir -p /volume1/docker/xiaoya/data
# 进入 xiaoya 目录
cd /volume1/docker/xiaoya
# 将 mytoken.txt 、 myopentoken.txt 、 temp_transfer_folder_id.txt 放入 /data 目录
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d
运行
查看容器的日志,如果准备的三个文件正确的话,会看到数据同步的信息
这个过程可能会持续几分钟,在浏览器中输入 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-alist
Docker Hub
地址:https://hub.docker.com/r/xiaoyaliu/alist
如何设置xiaoya的docker
地址:https://xiaoyaliu.notion.site/xiaoya-docker-69404af849504fa5bcf9f2dd5ecaa75f