Skip to content

媒体服务器模式 ​

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

工作模式URL 语法路径替换示例速查

界面截图

前置条件 ​

  • 已启用对应助手(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/电影/电影名.mkv

Pickcode 模式 ​

识别条件: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/电影名.mkv

FileId 模式 ​

识别条件: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/电影名.mkv

size 未知时写 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=电影名.mkv

hash 是 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) URLhttp://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

秒传播放右侧要写源账号(不是目标账号)。源账号里必须能找到该文件,找不到就不会进入秒传流程。

NanShare 文档站仅说明 NanShare 项目的部署、配置与使用。