115网盘302搭建emby服
使用QMS 和115网盘搭建 emby 网盘服。
最近 115 做活动,八年八百的价格是真的香,就入手了一个。
虽然说我有几个 emby 公益服,但在晚高峰的时候看卡卡的还是不爽,115 保存影片然后自己看正好弥补了这个缺点。
买了后,用爆米花直接看也可以,还带刮削。但是有更加好玩的,115 网盘 302 搭建 emby 的网盘服,整好了后可以很方便用户管理和分享(独乐乐不如众乐乐)。
什么是刮削?
基于视频文件的命名,利用 scraper(刮削器)从网络数据库(如TMDB、IMDB)中搜索并自动匹配信息,方便用户通过海报墙管理本地媒体库。刮削完成后本地会生成一个 nfo 的文件。当 emby 读取到这个文件,就可以生成精美的海报墙了。
Strm
Strm 文件是这次 302 实现的关键。
这里就直接照抄 3.STRM与Emby · 1307super/cloud189-auto-save Wiki · GitHub 了。
什么是 STRM 文件?
STRM 文件是一种纯文本文件,扩展名为 .strm。它的内容只有一行,就是媒体文件的实际播放地址。通过 STRM 文件,我们可以让 Emby 播放网络存储(如天翼云盘)中的视频,而不需要把视频下载到本地。
STRM 工作原理
- Emby 扫描到 .strm 文件
- 打开文件读取里面的 URL
- 通过该 URL 直接播放视频
STRM 生成项目
当然,从别人分享的资源转存,STRM 不会凭空生成,需要用一些项目生成。
我在搜索的时候眼花缭乱,STRM 生成大多是免费的,但是 302 很多项目确实收费的。
最后我选择了免费的 GitHub - qicfan/qmediasync: 基于 网盘 开放平台接口来同步生成 STRM、元数据下载、元数据上传,直链解析播放和外网302播放,Emby联动删除网盘文件等, 下面简称 QMS 。
当然也有付费的:CMS、Mediahelp、Symedia、emby-ngnix。这些一步到位加上了资源搜索转存的功能。
如果有 PT 的话可以看看 MP。
观看步骤
graph LR
%% 定义全局样式,增加内边距防止文字挤压
classDef default fill:#f9f9f9,stroke:#333,stroke-width:1px,padding:10px;
classDef highlight fill:#e1f5fe,stroke:#01579b,stroke-width:2px;
subgraph Step1 [1. 资源获取]
A("115 网盘
原始资源")
end
subgraph Step2 [2. QMS 处理阶段]
B("QMS 扫描
115 目录")
C("QMS 识别电影
生成本地 .strm")
B --> C
end
subgraph Step3 [3. Emby 索引阶段]
D("Emby 扫描目录
读取 NFO/海报")
E("展示海报墙
")
D --> E
end
subgraph Step4 [4. 302 重定向播放]
F("用户点击播放
请求 strm")
G("QMS 获取
115 CDN 直链")
H("返回 302 指令
至客户端")
I("客户端直连
115 节点播放")
F --> G --> H --> I
end
%% 连接子图
A --> B
C --> D
E --> F
%% 指定重点环节样式
class G,H highlight;graph LR
%% 定义全局样式,增加内边距防止文字挤压
classDef default fill:#f9f9f9,stroke:#333,stroke-width:1px,padding:10px;
classDef highlight fill:#e1f5fe,stroke:#01579b,stroke-width:2px;
subgraph Step1 [1. 资源获取]
A("115 网盘
原始资源")
end
subgraph Step2 [2. QMS 处理阶段]
B("QMS 扫描
115 目录")
C("QMS 识别电影
生成本地 .strm")
B --> C
end
subgraph Step3 [3. Emby 索引阶段]
D("Emby 扫描目录
读取 NFO/海报")
E("展示海报墙
")
D --> E
end
subgraph Step4 [4. 302 重定向播放]
F("用户点击播放
请求 strm")
G("QMS 获取
115 CDN 直链")
H("返回 302 指令
至客户端")
I("客户端直连
115 节点播放")
F --> G --> H --> I
end
%% 连接子图
A --> B
C --> D
E --> F
%% 指定重点环节样式
class G,H highlight;graph LR
%% 定义全局样式,增加内边距防止文字挤压
classDef default fill:#f9f9f9,stroke:#333,stroke-width:1px,padding:10px;
classDef highlight fill:#e1f5fe,stroke:#01579b,stroke-width:2px;
subgraph Step1 [1. 资源获取]
A("115 网盘
原始资源")
end
subgraph Step2 [2. QMS 处理阶段]
B("QMS 扫描
115 目录")
C("QMS 识别电影
生成本地 .strm")
B --> C
end
subgraph Step3 [3. Emby 索引阶段]
D("Emby 扫描目录
读取 NFO/海报")
E("展示海报墙
")
D --> E
end
subgraph Step4 [4. 302 重定向播放]
F("用户点击播放
请求 strm")
G("QMS 获取
115 CDN 直链")
H("返回 302 指令
至客户端")
I("客户端直连
115 节点播放")
F --> G --> H --> I
end
%% 连接子图
A --> B
C --> D
E --> F
%% 指定重点环节样式
class G,H highlight; | |
搭建
前两天恰好看到飞牛爆出漏洞,这种暴露在公网的还是得要小心。尽量权限给小一点,不需要经常访问的就用 SSH 端口转发访问。
docker-compose.yml
| |
权限管理
创建一个非登录用户:
| |
修改目录权限和所属用户:
| |
修改数据库目录权限和所属用户:
| |
反向代理
只需要反向代理 QMS 的 8095 端口。 其他需要用的时候用 SSH 端口转发访问就可以了。
使用
Emby service
Emby 关闭自带的刮削(这样可以加快 emby 入库的速度),使用 QMS 的刮削功能。QMS 刮削后还可以将海报同步上传到 115。
Emby 关闭网页端的转码功能,避免 302 失败直接转码导致 VPS 卡死。
有需要的可以下载神医助手这个插件,增强了中文用户的体验,但是我安装提示修改失败,可能是我版本太高了。
Emby client
直接连 QMS 的 8095 端口,而不是 emby 容器的 8095 端口。
如果 emby client 连接的是 emby 的 8095, 那么 302 会失败,并且播放会 error 报错。这也是我前面说只需要反向代理 QMS 的 8095 就可以。这是从 NS 老哥看到的解决办法。
QMS 设置
照着官方wiki 设置就可以了。
可以配置一下 telegram 的通知,这样刮削,入库也会用通知了。

WAF 的设置
我依然用 Cloudflare 的 CDN,依旧用的 Cloudflare 的 WAF。
因为给非中国地区的 IP 访问加上托管质询。要将/web,/emby 路径加上白名单,保证正常观看。
资源获取
Streamlit,这个网站可以搜索出 115 的资源。
还有一个配套容器,可以实现点一下转存(这个搭建在家里的 NAS 就行,我就不搭建了)。

