能让Jellyfin直接挂载阿里云盘的aliyundrive-fuse

周六一大早做了普查,为了保鲜,周一下午二点多去公司边上的常规点做了一次核酸,估摸着周二上班怎么也应该出来了,但是没想到我的核酸过期了

同事在同一个点比我晚两个小时做的核酸报告都出来了,可是我的居然还是 检测中,为了上班只能在众目睽睽下做了一次抗原检测

为了保险起见,昨天下午一点多又去做了一次,结果后做的都出来了,但周一做的依然还没出来,我不禁怀疑,是管子遗失了吗?这运气也是没谁了


自从阿里云盘可以挂载为 WebDAV 之后,老苏一直在琢磨怎么 将webdav挂载成为群晖的本地盘,目的就是让 JellyfinAirSonic 等多媒体软件可以直接使用阿里云盘中的多媒体资源,因为这些软件都不支持直接访问 WebDAV 资源。

之前的方案比较折腾,需要挂载两次:阿里云盘 –> WebDAV –> 本地盘,现在 aliyundrive-webdav 的作者又推出了 aliyundrive-fuse,可以让你越过中间的 WebDAV,直接将阿里云盘挂载成服务器的本地盘,虽然是只读,不支持写入,但用来做媒体播放是没问题的。

什么是 aliyundrive-fuse ?

阿里云盘 FUSE 磁盘挂载,主要用于配合 Emby 或者 Jellyfin 观看阿里云盘内容。

准备工作

获取refresh token

refresh token 的获取方法可以参考 『 能将阿里云盘挂载为webdav的webdav-aliyundriver

老苏不确定这两种方法是否依然有效,如果都失效了,您就百度一下吧

老苏之前安装过 aliyundrive-webdav,所以在安装目录中会保存最新的 refresh token 文件,打开文件复制就可以了

共享挂载

这是为主机中的映射卷启用共享挂载选项,老苏映射的目录在 volume2 上,如果你的目录是其他的卷上,记得修改

1
2
# 共享挂载  
mount --make-shared /volume2

这条命令在群晖重启后需要重新执行,可以把这句命令,通过 任务计划 加到开机脚本中,具体方法可以参考👇下文:

『 群晖上通过RcloneBrowser挂载云盘 』 的命令行安装部分

命令行安装

因为用到了 fuse 挂载云存储,所以我们还是会采用命令行方式来进行安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 新建文件夹 aliyunfuse 和 子目录
mkdir -p /volume2/docker/aliyunfuse/media

# 进入目录
cd /volume2/docker/aliyunfuse

# 一键启动
docker run -d \
--name aliyundrive-fuse \
--restart unless-stopped \
--privileged \
--device /dev/fuse:/dev/fuse \
--restart unless-stopped \
-v $(pwd)/media:/mnt/aliyundrive:shared \
-e TZ=Asia/Shanghai \
-e REFRESH_TOKEN=<你的 refresh token> \
messense/aliyundrive-fuse

如果不出意外,现在你可以在 File Station 中看到阿里云盘的内容了

设置 Jellyfin

如果你已经安装 jellyfin,只要停止容器,进入编辑状态,在 存储空间添加文件夹 ,将 /volume2/docker/aliyunfuse/media 添加为新的媒体库即可

如果你还没装 jellyfin ,可以直接在当前目录用命令行执行下面的命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
再新建两个子目录
mkdir -p {cache,config}

# 硬件支持硬解的一键启动
docker run -d \
--name jellyfin \
-v $(pwd)/config:/config \
-v $(pwd)/cache:/cache \
-v $(pwd)/media:/media \
-p 8096:8096 \
--device=/dev/dri/renderD128 \
--device /dev/dri/card0:/dev/dri/card0 \
--restart unless-stopped \
jellyfin/jellyfin

如果在不支持硬解的机器上,可能会遇到下面的错误

1
docker: Error response from daemon: error gathering device information while adding custom device "/dev/dri/renderD128": no such file or directory.

或者

1
docker: Error response from daemon: error gathering device information while adding custom device "/dev/dri/card0": no such file or directory.

可以去掉 --device 部分,改为下面的命令

1
2
3
4
5
6
7
8
9
# 硬件不支持硬解的一键启动
docker run -d \
--name jellyfin \
-v $(pwd)/config:/config \
-v $(pwd)/cache:/cache \
-v $(pwd)/media:/media \
-p 8096:8096 \
--restart unless-stopped \
jellyfin/jellyfin

如果你希望 Jellyfin 支持 DLNA,可以参考『 用Portainer安装Jellyfin媒体服务器(安装篇)』一文中的安装脚本

运行

虽然 aliyundrive-fuse 并不能指定挂载的目录,但 jellyfin 是可以设置位置的

刚挂载还没开始刮削,所以只能看到目录

过一会儿就好了

小结

  • 如果你还没有「阿里云盘」,点此链接领取福利:
    https://pages.aliyundrive.com/mobile-page/web/beinvited.html?code=6d084b3

  • 如果你觉得软件好用,可以考虑去赞助一下作者:https://github.com/messense/messense/blob/master/SPONSOR.md#sponsor-my-open-source-works

参考文档

messense/aliyundrive-fuse: 阿里云盘 FUSE 磁盘挂载
地址:https://github.com/messense/aliyundrive-fuse