深色模式
媒体服务器模式
Emby / Jellyfin / Plex 助手与秒传播放支持的播放地址语法:每种模式怎么被识别、可以写成什么样,示例可直接照抄。

前置条件
- 已启用对应助手(Emby 助手、Jellyfin 助手、Plex 助手)或已开启秒传播放。
- 已按模式准备账号:分享需要带 Cookie 的 115 账号;Pickcode / FileId / 路径替换 / ed2k 需要 115 账号;123 STRM 需要 123 账号;光鸭 STRM 需要光鸭账号。
- 路径替换需要知道媒体服务器报出的文件路径(Emby 的
Item Path)。
先看结论
下文所有 http://host:8115 里的 host 换成你自己的 NanShare 地址即可;abcdefgh12345678 之类的串是占位符。
各模式支持的语法
分享模式
识别条件:源地址同时包含 share_code=、receive_code=、id=(id 必须是纯数字);或命中新格式路径 /api/share115/…。
text
# 旧格式(query)
http://host:8115/api/?share_code=a1b2c3d4&id=3001234567890&receive_code=1a2b
http://host:8115/api/?share_code=a1b2c3d4&id=3001234567890&receive_code=1a2b&电影名.mkv
# 等价路由(同一个处理入口)
http://host:8115/api/share_115?share_code=a1b2c3d4&id=3001234567890&receive_code=1a2b
# 新格式(路径段)
http://host:8115/api/share115/a1b2c3d4/0123456789abcdef0123456789abcdef01234567/1a2b/3001234567890
http://host:8115/api/share115/a1b2c3d4/0123456789abcdef0123456789abcdef01234567/1a2b/3001234567890/电影名.mkv
http://host:8115/api/share115/a1b2c3d4/0123456789abcdef0123456789abcdef01234567/1a2b/3001234567890/子目录/电影名.mkv新格式顺序固定:/api/share115/{分享码}/{sha1}/{密码}/{id}[/{name}];旧格式的文件名是「裸 query 键」,可省略。
路径替换模式
识别条件:媒体服务器报出的源是本地路径,或 HTTP URL 命中你配置的替换规则(完整写法见 路径替换写法全集)。
text
# 本地路径(Emby 报出的 Item Path)
/vol1/1000/CloudNAS/CloudDrive/115open/电影/电影名.mkv
/mnt/cd2/123/剧集/示例剧/Season 1/S01E01.mkv
# HTTP 源(命中规则后按规则处理)
http://host:8115/legacy/电影/电影名.mkvPickcode 模式
识别条件:URL 含 pickcode=;或含 /d/{pickcode};或含 /play115/{pickcode}/;或 /api/redirect115/… 的首段是 pickcode(15–20 位且至少含一个字母)。
text
http://host:8115/anything?pickcode=abcdefgh12345678
http://host:8115/d/abcdefgh12345678
http://host:8115/d/abcdefgh12345678.mp4?t=1
http://host:8115/play115/abcdefgh12345678/电影名.mkv
# redirect115 路径(生成器默认输出就是这一种)
http://host:8115/api/redirect115/abcdefgh12345678
http://host:8115/api/redirect115/abcdefgh12345678/电影名.mkv
http://host:8115/api/redirect115/abcdefgh12345678/3001234567890/0123456789abcdef0123456789abcdef01234567/电影名.mkvFileId 模式
识别条件:URL 含 fileId=(区分大小写,且不加边界,只要出现即命中);或 /api/redirect115/… 里出现 8–25 位纯数字段。
text
http://host:8115/some/path?fileId=3001234567890
http://host:8115/api/redirect115/3001234567890
http://host:8115/api/redirect115/3001234567890/电影名.mkv同链同时命中 Pickcode 与 FileId 时
按 Pickcode 处理,FileId 分支不会生效。
123 STRM 模式
识别条件:URL 含 redirect123,且路径段能解析出 4 段参数。顺序固定:{fileId}/{size}/{etag}/{s3KeyFlag}[/{name}]。
text
http://host:8115/api/redirect123/1234567890/1073741824/d41d8cd98f00b204e9800998ecf8427e/s3flag1
http://host:8115/api/redirect123/1234567890/1073741824/d41d8cd98f00b204e9800998ecf8427e/s3flag1/电影名.mkv
http://host:8115/api/redirect123/1234567890/0/d41d8cd98f00b204e9800998ecf8427e/s3flag1/电影名.mkvsize 未知时写 0;etag(第 3 段)与 s3flag(第 4 段)不能为空。
光鸭 STRM 模式
识别条件:URL 命中 /api/redirect_guangya/{fileId}[/{name}]。
text
http://host:8115/api/redirect_guangya/e1a2b3c4d5e6f7a8
http://host:8115/api/redirect_guangya/e1a2b3c4d5e6f7a8/电影名.mkv
http://host:8115/api/redirect_guangya/e1a2b3c4d5e6f7a8/子目录/电影名.mkv文件名只取最后一段。
ed2k 模式
识别条件:路径命中 /api/ed2k_strm/{hash}/{size}[/{name}],或含 ed2k_strm 且带 hash、size 查询参数。
text
# 新路径格式(当前生成器只写这种)
http://host:8115/api/ed2k_strm/0123456789ABCDEF0123456789ABCDEF/1073741824/电影名.mkv
http://host:8115/api/ed2k_strm/0123456789ABCDEF0123456789ABCDEF/1073741824/子目录/电影名.mkv
# 旧查询格式(仍被解析,便于老 STRM 继续可用)
http://host:8115/api/ed2k_strm?hash=0123456789ABCDEF0123456789ABCDEF&size=1073741824&name=电影名.mkvhash 是 32 位十六进制,服务端会统一转成大写。
本地代理
识别条件:该助手开启 local_proxy_enabled,且媒体服务器报出的源文件路径命中 local_proxy_paths 里的某一前缀(与请求 URL 本身无关)。命中后把请求流式反代给媒体服务器,不产生 302。
text
配置:local_proxy_enabled = 开
local_proxy_paths = /vol1/1000/CloudNAS/CloudDrive/本地盘
客户端请求:GET http://host:8115/Videos/12345/stream?Static=true
源文件路径:/vol1/1000/CloudNAS/CloudDrive/本地盘/电影/电影名.mkv ← 命中前缀
效果:请求原样转发给媒体服务器(补 api_key),客户端不回跳网盘HTTP 回退
识别条件:源文件是 http 开头,前面所有模式都未命中,且该助手开启 http_fallback_enabled。仅 Emby 助手可用。
text
源文件:http://upstream.example.com:9000/media/movie.mkv
服务端:HEAD(跟随重定向)取到最终地址 → 302
缓存:固定 600 秒路径替换写法全集
规则格式
text
源路径前缀 => 目标- 一行一条;按第一个
=>切分左右。 - 左右各自去掉首尾空格;左侧把
\统一成/,并去掉末尾/。 - 任一侧为空的行会被直接忽略。
左侧能写什么
| 左侧 | 示例 | 说明 |
|---|---|---|
| 本地路径前缀 | /mnt/cd2/115 | 与媒体服务器报出的 Item Path 逐段比较 |
| CD2 挂载路径前缀 | /CloudNAS/CloudDrive/123云盘 | CD2 把网盘挂到宿主后的路径 |
| HTTP URL 前缀 | https://alist.example.com/d/115 | 匹配前会先做一次 URL 解码 |
右侧能写什么
| 右侧 | 示例 | 效果 |
|---|---|---|
| 网盘账号名 | 115一号 | 去掉左侧前缀后的剩余路径当云端路径,用该账号取直链 |
| 123 账号名 | 123二号 | 同上,走 123 取链 |
| 夸克 / 天翼账号名 | 夸克影视、天翼一号 | 同上,走各自网盘取链(不支持同播复制) |
| HTTP(S) URL | http://10.0.0.194:5244/d/小雅网盘 | 直接把左侧前缀替换成该 URL 并 302,固定缓存 600 秒 |
右侧写不存在的账号名时会直接报「路径替换目标「X」在网盘配置中找不到」。
匹配细节
- 按路径段前缀匹配:要么整段相等,要么以
前缀/开头;/mnt/cd2/115x不会命中/mnt/cd2/115。 - 命中后,剩余路径带前导
/接到右侧:/mnt/cd2/115/电影/a.mkv+/mnt/cd2/115 => 115一号→ 云端路径/电影/a.mkv。 - 多条规则都命中时,按书写顺序先命中先用;重叠前缀请把更长的写在前面(见下方示例)。
- 左右任意一侧为空的行被忽略,可以放心留注释行之外的空行。
示例集
text
# 1) 本地路径 → 115 账号
/mnt/cd2/115 => 115主账号
# 2) CD2 挂载路径 → 123 账号
/CloudNAS/CloudDrive/123云盘 => 123二号
# 3) 本地路径 → 夸克 / 天翼账号
/mnt/cd2/quark => 夸克影视
/mnt/cd2/cloud189 => 天翼影视
# 4) 更长更具体的前缀写在前面(先命中先用)
/CloudNAS/CloudDrive/115open/电影/4K => 115-4K专号
/CloudNAS/CloudDrive/115open => 115主账号
# 5) HTTP → HTTP:把旧地址整段换到自己的反代后端
http://10.0.0.194:5678/d => http://10.0.0.194:5244/d/小雅网盘对应效果:
text
规则:/mnt/cd2/115 => 115主账号
源文件:/mnt/cd2/115/电影/沙丘2/Dune.Part.Two.mkv
云端路径:/电影/沙丘2/Dune.Part.Two.mkv → 用「115主账号」取直链
规则:http://10.0.0.194:5678/d => http://10.0.0.194:5244/d/小雅网盘
源地址:http://10.0.0.194:5678/d/电影/a.mkv
302 到:http://10.0.0.194:5244/d/小雅网盘/电影/a.mkv执行顺序
text
Emby 助手:
本地代理 → 分享 → 路径替换 → Pickcode → FileId → 123 STRM → ed2k → HTTP 回退
秒传播放:
本地代理 → 分享 → Pickcode → FileId → 路径替换 → 123 STRM → ed2k两点差异要知道:
- 路径替换与 Pickcode/FileId 的先后相反:Emby 助手先试路径替换,秒传播放先试 Pickcode/FileId。
- 路径替换一旦命中,就不再尝试后面的 URL 模式;秒传播放失败不会回退到 Emby 助手的普通直链。
不受支持的写法
以下写法容易误解,当前版本不解析:
| 写法 | 实际情况 |
|---|---|
?fileId=3001234567890&account=115一号 | account= 不被解析,账号由媒体服务器配置里选的 115 账号决定 |
把 password= 当播放参数 | 播放侧只认 receive_code;password= 只用于解析 115 官方分享链接 |
直接请求 shareVideoPlayUrl / videoPlayUrl 这类函数名 | 不是解析点;但这类 URL 只要带 fileId= 仍会被 FileId 模式命中 |
?redirect123&<size>&<md5>&<s3_key_flag> 查询形态 | 123 只认路径段,查询串会被丢弃 |
常见问题
多条规则都能前缀匹配时用哪条?
TIP
按书写顺序,先命中先用。重叠前缀请把更长、更具体的写在前面。
右侧写 URL 和写网盘账号名有什么区别?
TIP
写账号名会走网盘取直链(可用同播复制);写 HTTP(S) URL 是纯前缀替换后直接 302,缓存固定 600 秒,不经过网盘。
同一条链接同时像 Pickcode 和 FileId?
TIP
优先按 Pickcode 处理;确实要按 FileId 走,请只保留 fileId= 形态。
路径替换不命中怎么排查?
TIP
先确认媒体服务器报出的路径与左侧前缀是否逐段一致(注意 CD2 挂载路径是宿主路径),再看是不是被更靠前的规则抢先命中。
秒传播放的路径模式找不到源文件?
TIP
秒传播放右侧要写源账号(不是目标账号)。源账号里必须能找到该文件,找不到就不会进入秒传流程。