夸克网盘+AList+Emby自动NAS追剧方案打造
好久没有给大家分享NAS折腾的一些心得了,如果大家关注过我之前的文章,已经自主搭建了一整套全自动的豆瓣电影追影NAS系统。
这套系统我自己重装过三次,一次是硬盘损坏系统崩溃,一次是自己手欠权限重置,还有一次就是将系统重建到了PVE平台,主体为企业用的超微X11SSH-F服务器主板,硬盘更换为了SAS企业盘,机箱是闲鱼购买的60块的英亚海淘机箱。除此以外,这套系统真是“稳如老狗”,加上现在所有硬件都是企业级配件,运行了一年多毫无问题;缺点就是服务器主板非常耗电,为此不得不利用IPMI脚本设置了NAS自动开关机。
但是像我们这种搞IT运维的牛马经常会遇到这种困境,系统本身很稳健,但是用户需求不停改变,让我们在后台不断地擦屁股。
我的这套系统本意是自动下载4K电影电视文件到家用存储,然后在电视机上播放,享受极致的视听体验。但是我老婆其实对于画质并没有特别在意,1080p的高清视频也可以满足要求;她更希望提升效率,就是一旦有了想看新片的念头,马上可以打开电视机播放。如此我的这套系统的弊端就显现出来了,添加电影电视到想看,系统自动下载完成往往需要几天甚至更长的时间(基于种子的活跃程度)。
前几天去亲戚家里,发现他们都是用安卓电视盒子加装第三方APP看电影的。我研究了一下机制,APP是自动加载网盘资源转存到个人账号播放的,无需家庭NAS存储中转,节省了大量时间。缺陷就是极不稳定,资源甚至APP都有可能被封失效。
那么有什么办法将网盘资源直接挂载到NAS系统里直接播放呢?
其实是有的,比如通过AList。Alist支持多种常见网盘,可以转化为WebDav,让用户可以不受APP的限制,直接访问网盘上的文件。
具体实现方案如下:
首先安装AList Docker。
mkdir -p /etc/alist
docker run -d
--name alist
--restart unless-stopped
-p 5244:5244
-v /etc/alist:/opt/alist/data
-e PUID=0
-e PGID=0
-e UMASK=022
xhofe/alist:latest
容器起来后,AList 会自动生成一个随机管理员密码,可以通过命令或者在Portainer等Docker管理平台上查看,这个密码后续可以在系统里修改。
电脑浏览器打开夸克网盘并登录账号,比如这个网址夸克网盘。
点F12进入Edge浏览器的开发者工具,刷新网页;点击左侧的list,查看右方标头-Cookie,把对应的登录Cookie信息拷贝。

浏览器访问默认5244端口,打开AList控制端,点击Add。
选择Driver为夸克Quark,Mount Path可以随便起个名字。

勾选Enable sign,并填入之前拷贝的Cookie。

可以看到添加的storage已经可以正常使用了。

点击Home回到主页即可看到添加的文件夹,点开即可看到同步的视频文件。

但是我发现网页上直接播放视频文件非常卡,和在夸克APP里的体验不可同日而语。

那么这究竟是AList的问题,还是我网速的问题呢?
做一个简单的测试,右键点击画面,在菜单里选择Video Info。

在Video url里可以得到视频的直接地址,选择并拷贝。

浏览器打开一个新窗口粘贴url观察到下载速度只有几十kb,显然是夸克对免费用户限速了。
于是我付费了夸克svip会员,首月3元,刷新页面重新测试。下载速度2MB左右,效果立竿见影,这个速度对于播放1080p的影片是可以胜任的。

看来要想用AList直通网盘使用,绕开APP白嫖,没有会员应该是没办法实现的。
至此浏览器访问AList播放视频应该是没问题了,但是要利用Apple TV上的Emby等APP来直接播放还需要额外的步骤。
常规的办法是把AList的WebDav像本地存储一样挂载到宿主机上,直接读取。但是要折腾容器内的FUSE挂载权限问题,Emby Docker需要删除重建。理论上来说配置文件不变,数据并不会丢失。
不过我嫌麻烦,要是把我的破解版Emby搞崩溃了就得不尝试了,于是使用了另外一种方法。
把视频地址封装到strm文件中,Emby直接识别并且播放。

当然转制也有工具可以自动完成,这里使用的是AutoFilm。
不过,我的环境相对比较复杂,还需要做一些额外的工作。
我的Emby是安装在PVE主机上的,IP地址是192.168.1.88,smb存储也是安装在PVE上的本地存储;AutoFilm的容器会安装在PVE上的虚机192.168.1.108中。
我的目标是要让AutoFilm生成的strm文件自动保存到PVE的smb存储,由Emby直接读取。
先到宿主机192.168.1.108里操作,安装CIFS客户端。
apt update
apt install -y cifs-utils
创建挂载点。
mkdir -p /mnt/tv-strm
创建密码凭证文件,避免明文。
nano /root/.smbcredentials
内容是PVE的smb存储访问的账号密码:
username=smb用户名
password=smb密码
设置密码凭证文件的可读权限。
chmod 600 /root/.smbcredentials
把存储挂载,3.0的samba协议版本。
mount -t cifs //192.168.1.88/sm-nas /mnt/tv-strm -o credentials=/root/.smbcredentials,vers=3.0
验证读写没有问题之后,写到fstab的启动文件中。
nano /etc/fstab
添加
//192.168.1.88/sm-nas /mnt/tv-strm cifs credentials=/root/.smbcredentials,vers=3.0,_netdev 0 0
创建AutoFilm容器:
docker run -d
--name autofilm
-v /root/autofilm/config:/config
-v /mnt/tv-strm/strm:/media
-v /root/autofilm/logs:/logs
--restart unless-stopped
akimio/autofilm
AutoFilm没有UI界面,需要在配置文件里修改设置。
nano /root/autofilm/config/config.yaml
Alist2StrmList:
- id: 1
url: http://192.168.1.108:5244
username: 你的AList账号
password: 你的AList密码
source_dir: /Quark
target_dir: /media/Quark
subtitle: false
img: false
nfo: false
url_encode: true
overwrite: false
cron: "30 23 * * *"
Settings:
logs_path: /logs/AutoFilm.log
log_level: INFO
注意cron: "30 23 * * *"这里我设置了每天23:30运行AutoFilm任务,自动生成strm文件。
修改配置后,需重启AutoFilm的容器。
docker restart autofilm
正好老婆要看网飞最新日剧《气体人 第一号》,翻拍自1960年的特摄片。演员阵容非常强大,小栗旬、苍井优主演,还有竹野内丰客串。

将夸克网盘上搜索到的资源转存到自己的网盘中,然后等待AutoFilm自动转存为strm文件,类似这样。

然后在Emby里添加存储路径,扫描媒体文件之后,就能在Emby里播放了。

但是电影信息无法自动刮削,手工填入imdb的id后刮削成功。

H264的1080p高清资源在电视机上观看效果已经非常令人满意了,我是个不太喜欢看慢节奏日剧的人,网飞版的《气体人》节奏更名快,改编得比较成功,没有辜负我的这番努力。

校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案