其实之前也写过 emby + google drive 的文章,但是时过境迁。
Google drive 把教育盘和团队盘都几乎扬完了,TOS 也越来越严格,转存越来越麻烦。
OneDrive 则根本没有转存这一功能,只能本地上传。
直到阿里云盘异军突起,国内优化,社区活跃(指有很多 telegram 分享频道),再加上阿里云盘 OPEN 开放了 API,几乎完美。
话不多说,这篇博客将指引你使用 Alist 添加阿里云盘,rclone 挂载 webdav 并使用 emby 刮削阿里云盘里面的资源。
安装 Alist 及配置阿里云盘#
官方文档已经很详细了
推荐使用 docker 安装
docker run -d --restart=always -v /etc/alist:/opt/alist/data -p 5244:5244 -e PUID=0 -e PGID=0 -e UMASK=022 --name="alist" xhofe/alist:latest
安装完成后使用下面的命令查看管理员账号密码
docker exec -it alist ./alist admin
访问 ip:5244
并使用管理员账号及密码登录
配置阿里云盘的官方文档也很详细
主要是驱动选择阿里云盘 OPEN,然后配置下刷新令牌
前往:https://alist.nn.ci/tool/aliyundrive/request
使用阿里云盘手机客户端扫码登录可获取刷新令牌
注意事项
WebDAV 策略 请选择本地,webdav 不支持重定向
如果未设置或设置错误,emby 可以刮削,但进入资源库会一直转圈
相关 Issues
Rclone 挂载 webdav#
sudo -v ; curl https://rclone.org/install.sh | sudo bash
安装完成后,使用 rclone config
新建配置
选择 webdav 并按要求配置即可
你可以查看下面的文章进行配置
群晖 / Linux 挂载阿里云盘实现 Emby 播放,打造属于自己的家庭影院!
配置完成后使用下面的命令将其挂载到本地
rclone mount alist: /home/webdav --use-mmap --umask 000 --network-mode --no-check-certificate --allow-other --allow-non-empty --dir-cache-time 4h --cache-dir=/home/cache --header "Referer:" --vfs-cache-mode full --buffer-size 512M --vfs-read-chunk-size 64M --vfs-read-chunk-size-limit 1G --vfs-cache-max-size 10G --daemon
alist: /home/webdav
alist 是 rclone 配置的名称,/home/webdav 是挂载的本地路径--dir-cache-time 4h
缓存时间,表示每 4 小时刷新缓存,如不经常改动云盘文件,此值可以设置为 24h--cache-dir=/home/cache
表示缓存路径--header "Referer:"
Issues 中有提到此为挂载阿里云盘的必须参数,但不加好像也行
如果 rclone mount 挂载出错
Fatal error: failed to mount FUSE fs: fusermount: exec: "fusermount": executable file not found
安装 fuse
apt-get install fuse
使用 df -h
可查看是否挂载成功
取消挂载,LocalFolder
表示本地挂载路径
fusermount -qzu LocalFolder
开机挂载
#将后面修改成你上面手动运行命令中,除了rclone的全部参数
command="mount alist: /home/webdav --use-mmap --umask 000 --network-mode --no-check-certificate --allow-other --allow-non-empty --dir-cache-time 4h --cache-dir=/home/cache --header "Referer:" --vfs-cache-mode full --buffer-size 512M --vfs-read-chunk-size 64M --vfs-read-chunk-size-limit 1G --vfs-cache-max-size 10G --daemon"
#以下是一整条命令,一起复制到SSH客户端运行
cat > /etc/systemd/system/rclone.service <<EOF
[Unit]
Description=Rclone
After=network-online.target
[Service]
Type=simple
ExecStart=$(command -v rclone) ${command}
Restart=on-abort
User=root
[Install]
WantedBy=default.target
EOF
开始启动:
systemctl start rclone
设置开机自启:
systemctl enable rclone
其他命令:
重启:systemctl restart rclone
停止:systemctl stop rclone
状态:systemctl status rclone
emby 安装及配置#
下方为 emby 开心版 docker 镜像,仅作演示,如有能力请支持正版。
docker run \
--name EmbyServer \
--net=host \
-v /docker/emby:/config \
-v /aliyun:/aliyun \
-e TZ="Asia/Shanghai" \
--device /dev/dri:/dev/dri \
-e UID=0 \
-e GID=0 \
-e GIDLIST=0 \
--restart always \
-d lovechen/embyserver:latest
若是需要配置正版,只需要把最后一行的 lovechen 改为 emby 即可配置 Emby 官方 Docker 源
若是软路由没有开启科学上网模式,那么需要在 Docker 环境参数里面加上
HTTP_PROXY=http://代理IP:代理端口
HTTPS_PROXY=http://代理IP:代理端口
(这样搜刮器才能正常的进行工作,因为大部分搜刮器已被墙)
-v /docker/emby:/config
配置文件的映射,前面为宿主机路径-v /aliyun:/aliyun
资源库路径映射,此处应为 webdav 挂载的路径--device /dev/dri:/dev/dri
配置 Emby 的硬件解码,若没有核显,或是不需要,可以删除
注意事项
如果你的服务器配置较低,没有核显,建议关闭转码功能
进入 设置 --> 用户 --> 配置 关闭下面三个选项
其他说明#
cloudDrive2#
其实最开始用的是 cloudDrive2 挂载的阿里云,因为简单。
最后还是放弃重装了,原因也很多
- 闭源 这玩意是纯闭源的
- 安全性 装了 2 次,每次都是一进网页就被 Google 标欺诈
- 性能 同样不支持直链,走的也是本地下载再串流的路数
- 稳定性 有掉挂载的情况
我不知道是误报还是怎么回事,但闭源还是小心点。
另外就是我不明白一个本地搭建的程序,账号竟然是云端同步的😅,要注册的。。。
阿里云盘直链#
目前本地 webdav策略为兼容性最好的方式,在 emby 中观看视频时,是先从 webdav 下载到本地再推流到 emby 播放的,所以走的是服务器的流量。
302 重定向能够获取到阿里云盘的直链,但是无法使用 emby 进行刮削。
如果你只是为了方便观看,可以使用 302 重定向模式,然后用 nplayer 挂载 webdav,这样走的就是阿里云官方的流量了,4K 不卡。
如果你一定要用 emby 走直链,也可以,需要修改 nginx 配置
可以查看下面 2 篇文章
因为我使用的是宝塔的 nginx,没有 nginx 的依赖,即使我重新编译 PCRE 和 njs 模块,事实上我已经重新编译了 PCRE 的 UTF 模块,并指定 nginx 编译时使用此版本的 PCRE🙃,但它还是报错没有 UTF Support
。
页面美化#
这个样式我觉得比 emby 默认的显示要好的多,实现基于Emby Crx
提供了 2 种方式,一种是 chrome 扩展,客户端本地美化,适合用别人 emby 服务器的。另一种是服务端美化,针对自己建的 emby
# EmbyServer 为容器名, 如果你的容器名不是这个 请改成正确的!
docker exec EmbyServer /bin/sh -c 'cd /system/dashboard-ui && wget -O - https://tinyurl.com/2p97xcpd | sh'
小姐姐😍#
如果你想刮削某些小日子出品的电影,可以使用MetaTube,Jellyfin 和 EMBY 通用的插件