简介
身处数字化时代,个人的文件资料越来越多,不便于管理,而且有时也有共享文件资料的需求,各路网盘工具诞生后,在各种网盘工具间切换更是麻烦,因此诞生了Alist工具。Alist是一个开源的文件列表和 WebDAV 程序,旨在为用户提供一个简单、高效的方式来管理和访问存储在不同云服务和本地服务器上的文件。它支持多种存储方式,包括阿里云盘、OneDrive、Google Drive、百度网盘等。
有了一个Alist,就相当于支持了数十种文件存储方式。
有了Alist,可以实现以下功能:
挂载各类网盘工具到一个文件目录中
不同网盘之间可以直接相互拷贝传输
挂载网络上各路大神分享的影音资源,制作影音媒体库
支持本地存储,支持WebDav,支持S3存储
我使用Alist主要就是为了解决分享视频资源的问题。但是Alist自带的媒体播放体验不好,因此还需要用到emby。
Emby是一款优秀的媒体服务器软件,致力于为用户提供丰富的多媒体体验。通过Emby,您可以方便地在家庭内的各种设备上观看您喜爱的电影、电视剧和其他视频内容。而且,Emby还具备强大的媒体管理功能,让您的影视资源井然有序,随时随地畅享观影乐趣。
思路:首先用alist将网盘媒体资源库挂载到本地,然后使用emby播放挂载的媒体资源。
安装Alist
我这里是用docker安装的Alist,安装完成后,通过admin登录。
添加存储
在存储页面中,添加阿里云盘Open的文件存储:
需要填写3个东西:
填好后启用,可以看到挂载成功:
修改样式
在设置中可以修改站点标题、logo等:
注意事项
24年阿里云盘挂载到第三方工具上要收费了,需要开通第三方权益包才能用:
因此,在alist上下载文件,限速到500kB左右,基本上没法使用了。
参考:https://m.hybase.com/zhide/530.html
考虑百度云盘,115网盘等。
挂载云盘到本地
下面需要将云盘的文件放到本地目录可直接读取,下面有几种方法:
方式1:使用rclone挂载alist 的 webdav接口
也可以使用CloudDrive2(CD2)代替:CloudDrive - 帮助
emby是通过目录加载媒体库的,首先要将alist通过webdav挂载到本地:
通过rclone 配置:
root@RainYun-hFO5tAfZ:~# rclone config
Current remotes:
Name Type
==== ====
alist webdav
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> e
Select remote.
Choose a number from below, or type in an existing value.
1 > alist
remote> 1
Editing existing "alist" remote with options:
- type: webdav
- url: http:127.0.0.1:5244/dav
- vendor: other
- user: admin
- pass: *** ENCRYPTED ***
Option url.
URL of http host to connect to.
E.g. https://example.com.
Enter a value of type string. Press Enter for the default (http:127.0.0.1:5244/dav).
url> http://localhost:5244/dav
Option vendor.
Name of the WebDAV site/service/software you are using.
Choose a number from below, or type in your own value of type string.
Press Enter for the default (other).
1 / Fastmail Files
\ (fastmail)
2 / Nextcloud
\ (nextcloud)
3 / Owncloud
\ (owncloud)
4 / Sharepoint Online, authenticated by Microsoft account
\ (sharepoint)
5 / Sharepoint with NTLM authentication, usually self-hosted or on-premises
\ (sharepoint-ntlm)
6 / rclone WebDAV server to serve a remote over HTTP via the WebDAV protocol
\ (rclone)
7 / Other site/service or software
\ (other)
vendor>
Option user.
User name.
In case NTLM authentication is used, the username should be in the format 'Domain\User'.
Enter a value of type string. Press Enter for the default (admin).
user>
Option pass.
Password.
Choose an alternative below. Press Enter for the default (n).
y) Yes, type in my own password
g) Generate random password
n) No, keep existing (default)
y/g/n>
Option bearer_token.
Bearer token instead of user/pass (e.g. a Macaroon).
Enter a value. Press Enter to leave empty.
bearer_token>
Edit advanced config?
y) Yes
n) No (default)
y/n>
Configuration complete.
Options:
- type: webdav
- url: http://localhost:5244/dav
- vendor: other
- user: admin
- pass: *** ENCRYPTED ***
然后通过rclone ls alist: 指令就可以查看挂载目录中的文件了。
挂载目录到本地:
rclone mount alist: /home/pyf/alist-root/ --vfs-cache-mode full --copy-links --allow-other --allow-non-empty --umask 000 --daemon
但是还是如之前说的,由于阿里云盘的新规则,第三方应用限制播放流量。
方式2:使用emby2alist,通过网盘直链播放
上面那种方式貌似失败了,因为观看云盘视频经过了服务器中转,阿里云貌似封禁了我的服务器IP,因此尝试直链播放。
主要是修改config.yml:
emby:
host: http://110.42.41.189:8096 # emby 访问地址
mount-path: /home/pyf/alist-root # rclone/cd2 挂载的本地磁盘路径, 如果 emby 是容器部署, 这里要配的就是容器内部的挂载路径
episodes-unplay-prior: false # 是否修改剧集排序, 让未播的剧集靠前排列; 启用该配置时, 会忽略原接口的分页机制
resort-random-items: false # 是否重排序随机列表, 对 emby 的排序结果进行二次重排序, 使得列表足够随机
# 代理异常处理策略
# origin: 重定向回源服务器
# reject: 拒绝处理
proxy-error-strategy: origin
# 图片质量, 默认请求原图
# 配置范围: [1, 100]
# 建议范围: [70, 90]
# 具体数值根据自己的实际情况作调整
images-quality: 100
strm: # 远程视频 strm 配置
# 路径映射, 将 strm 文件内的路径片段替换成指定路径片段
# 可配置多个映射, 每个映射需要有 2 个片段, 使用 [=>] 符号进行分割, 程序自上而下映射第一个匹配的结果
# 这个配置的映射是比较灵活的, 不一定必须按照前缀映射, 可以直接将地址中间的片段给替换掉
#
# 举个栗子
# strm 文件内容: https://test-res.com:8094/1.mp4, 替换结果: http://localhost:8095/1.mp4
# strm 文件内容: https://test-res.com:12138/test-id-12138.mp4, 替换结果: https://test-res.com:10086/test-id-12138.mp4
path-map:
- https://110.42.41.189:8094 => http://localhost:8095
- 12138 => 10086
# emby 下载接口处理策略
# 403: 禁用下载接口, 返回 403 响应
# origin: 代理到源服务器
# direct: 获取并重定向到直链地址
download-strategy: 403
# 该配置仅针对通过磁盘挂载方式接入的网盘, 如果你使用的是 strm, 可忽略该配置
alist:
host: http://110.42.41.189:5244 # alist 访问地址
token: alist-1b35d7fa-ab47-46b6-b537-f7131686787bbsPGxcOE3vnwVsRP2YAZNogUaSWPls0XoswFcYEjdZmsXVpMxyhDAGkfbRCrHeru # alist api key 可以在 alist 管理后台查看
# 该配置项目前只对阿里云盘生效, 如果你使用的是其他网盘, 请直接将 enable 设置为 false
video-preview:
enable: true # 是否开启 alist 转码资源信息获取
containers: # 对哪些视频容器获取转码资源信息
- mp4
- mkv
ignore-template-ids: # 忽略哪些转码清晰度
- LD
- SD
path:
# emby 挂载路径和 alist 真实路径之间的前缀映射
# 冒号左边表示本地挂载路径, 冒号右边表示 alist 的真实路径
# 这个配置请再三确认配置正确, 可以减少很多不必要的网络请求
emby2alist:
- /alist:/alist
#- /music:/音乐
#- /show:/综艺
#- /series:/电视剧
#- /sport:/运动
#- /animation:/动漫
cache:
# 是否启用缓存中间件
# 推荐启用, 既可以缓存 Emby 的大接口以及静态资源, 又可以缓存网盘直链, 避免频繁请求
enable: true
# 缓存过期时间
#
# 可配置单位: d(天), h(小时), m(分钟), s(秒)
#
# 该配置不会影响特殊接口的缓存时间
# 比如直链获取接口的缓存时间固定为 10m, 字幕获取接口的缓存时间固定为 30d
expired: 1d
ssl:
enable: false # 是否启用 https
# 是否使用单一端口
#
# 启用: 程序会在 8094 端口上监听 https 连接, 不监听 http
# 不启用: 程序会在 8094 端口上监听 https 连接, 在 8095 端口上监听 http 连接
single-port: false
key: testssl.cn.key # 私钥文件名
crt: testssl.cn.crt # 证书文件名
log:
# 是否禁用控制台彩色日志
#
# 程序默认是输出彩色日志的,
# 如果你的终端不支持彩色输出, 并且多出来一些乱码字符
# 可以将该项设置为 true
disable-color: false
修改完成后启动docker,即可正常运行。
安装emby
参考:
emby/embyserver - Docker Image | Docker Hub
本地部署emby+cd2+alist+strm+302重定向-腾讯云开发者社区-腾讯云
Strm的妙用,后网盘时代的无奈选择 - 应用中心&Docker 飞牛私有云论坛 fnOS
下载安装emby
Ubuntu X64
Download emby-server-deb_4.8.10.0_amd64.deb
dpkg -i emby-server-deb_4.8.10.0_amd64.deb
Open a web browser to http://localhost:8096
注册新用户然后登录。
添加媒体库
将挂载目录添加到emby:
然后应该就可以正常观看影片了。
总结
通过alist+emby,可以实现搭建个人影音库,但是要注意各大云盘厂商的限速情况,如果限速严重,体验会较差。
目前已经实测过阿里云,需要开通第三方权益包,才能在alsit中不限速观看影片。即便开了权益包,每月流量也会限制到1024G,超过的部分还会限速。
可以尝试115网盘,百度网盘等。