基于 openlist 的 115 网盘 emby 服务器搭建指南
基于 openlist 的 115 网盘 emby 服务器搭建指南
所需资源
- 115 网盘(或者其他 openlist 支持的网盘)
- 一台服务器
- 内存 >= 1.5GB
- 网络带宽 >= 3Mbps (盲估,感觉可以更低) 如果服务器 ip 为公网 ip 则可以支持公网访问,但是影视资源会通过 302 重定向走网盘直链,所以对服务器带宽要求不高
环境搭建
服务器安装 docker (这一步省略,如果你不会装 docker ,后面的也不用看了)
openlist 安装与配置
- openlist 安装,参考: https://doc.oplist.org/guide/installation/script
- openlist 配置(以 115 网盘为例):
- openlist 全局设置:管理页面 -> 设置 -> 全局 -> 关闭“签名所有” -> 开启“写入操作后触发目录更新钩子” -> 目录更新钩子遍历限制速率 设置为“1” -> 保存
- 添加 115 存储:管理页面 -> 存储 -> 添加 -> 驱动选择“115 网盘开放平台” -> 挂载路径填写“/115” -> 限制速率填写“1” -> 访问令牌和刷新令牌通过这个网页获取: https://api.oplist.org -> 保存
- 添加 strm: 管理页面 -> 存储 -> 添加 -> 驱动选择”Strm” -> 挂载路径填写“/strm” -> 路径填写“/115” (对应上一步的挂载路径,请注意区分“挂载路径”与”路径“) -> 过滤文件类型可以多添加一个‘iso’ (这一步不懂可以跳过,只会影响 iso 后缀的影视文件) -> 开启“编码路径” -> 开启“保存 Strm 到本地” -> 保存 Strm 本地路径填写“/data/strm” -> 本地保存模式选择“同步” -> 保存
- 在你的服务器上创建 /data/strm 目录,可以使用命令:
sudo mkdir -p /data/strm && sudo chmod -R 777 /data/strm
至此,openlist 设置完成,可以执行以下检查:
- 检查 openlist 首页能否看到 “115” 目录 与 “strm”目录,两个目录内容是否能对应。
- 检查服务器 “/data/strm”目录与 openlist 首页的 “strm”目录是否一一对应。
如果“strm”目录为空,可以去管理页面 -> 索引 -> 手动扫描 选择“115”目录,限制速率为 1 ,等待完成后“strm”目录将生成内容。
emby server 安装与配置
- 在服务器上新建一个“emby”目录:
mkdir ~/emby - 进入 emby 目录:
cd emby - 新建 docker-compose.yml 文件:
vim docker-compose.yml,填写以下内容:
services:
emby:
image: amilys/embyserver:latest
container_name: emby
restart: always
ports:
- "8096:8096"
volumes:
- ./config:/config
- /data/strm:/strm
environment:
- TZ=Asia/Shanghai
- UID=0
- GID=0
- GIDLIST=0
- HTTP_PROXY=http://172.17.0.1:20172
- HTTPS_PROXY=http://172.17.0.1:20172
devices:
- /dev/dri:/dev/dri
请注意上面的 HTTP_PROXY 和 HTTPS_PROXY 是为了后续 emby 刮削需要进行科学上网使用,这里不教怎么科学上网,如果你不会,请删除这两行。
编辑好 docker-compose.yml 后,执行:
docker compose up --build -d
至此 emby 安装完成,你可以访问服务器的 8096 端口进行 emby 的配置,首次配置需要设置账号密码。设置完成后,进入 emby 的管理页面,进行以下配置:
媒体库 -> 新增媒体库 -> 内容类型选择“影片” 或者 “电视节目” -> 点击文件夹旁边的添加按钮 -> 在弹出的路径中选择 “/strm” 里面的子目录,请根据自己的情况选择对应的子目录。后续的选项也请自由根据需要选择,最后保存即可。
你可以根据需要添加多个媒体库。
等待媒体库扫描完成后,应该可以在首页看到媒体文件了。
go-emby2list 安装与配置
emby 安装完成,还不能直接播放 302 直链,我们需要通过一个代理服务器将 emby 对 openlist 的请求改为对网盘的直链请求,这一步我们通过开源的 go-emby2list ( https://github.com/AmbitiousJun/go-emby2openlist )软件完成。
go-emby2list 安装:
git clone --branch v2.6.1 --depth 1 https://github.tbedu.top/https://github.com/AmbitiousJun/go-emby2openlist && cd go-emby2openlist
添加一个 config.yml,不要改动下面的配置,除非你确定自己很清楚这些配置的作用:
emby:
host: http://172.17.0.1:8096 # emby 访问地址
mount-path: /data # rclone/cd2 挂载的本地磁盘路径, 如果 emby 是容器部署, 这里要配的就是容器内部的挂载路径
episodes-unplay-prior: true # 是否修改剧集排序, 让未播的剧集靠前排列; 启用该配置时, 会忽略原接口的分页机制
resort-random-items: true # 是否重排序随机列表, 对 emby 的排序结果进行二次重排序, 使得列表足够随机
# 代理异常处理策略
# origin: 代理回源服务器处理
# reject: 拒绝处理
proxy-error-strategy: origin
# 图片质量, 默认请求原图
# 配置范围: [1, 100]
# 建议范围: [70, 90]
# 具体数值根据自己的实际情况作调整
images-quality: 100
# emby 下载接口处理策略
# 403: 禁用下载接口, 返回 403 响应
# origin: 代理到源服务器
# direct: 获取并重定向到直链地址
download-strategy: 403
strm: # 远程视频 strm 配置
# 是否启用 strm 内部重定向
#
# 启用, 程序会在内部访问 strm 远程地址并重定向到最终地址后, 再重定向给客户端
# 禁用, 程序会将 strm 的原始地址直接重定向给客户端
internal-redirect-enable: true
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: true
key: testssl.cn.key # 私钥文件名
crt: testssl.cn.crt # 证书文件名
log:
# 是否禁用控制台彩色日志
#
# 程序默认是输出彩色日志的,
# 如果你的终端不支持彩色输出, 并且多出来一些乱码字符
# 可以将该项设置为 true
disable-color: true
然后执行:
docker compose up --build -d
启动成功后,访问服务器的 8095 端口即可访问 emby ,此时浏览媒体就应该能够走 302 直链了。
感谢 openlist 和 go-emby2list 的开源!!!
折腾了一天终于在我的阿里云 3mbps 小水管上跑起来了 qwq 。