StrmTool 设置 PRO · MAX
StrmTool 是处理 .strm 文件的内置扩展:决定每个视频怎样送到播放器,保存直链,并提前读取媒体信息。这一页逐项说明每个设置,并给出建议值。怎么写 .strm 文件和基本概念,请先读strm 与网盘。
打开它#
打开「插件」,在「内置功能」下找到 StrmTool,打开并进入它的设置。它需要 PRO。没有授权时扩展会停止,状态显示「需要授权」;你的设置会保留,授权恢复后立即生效。这段时间 .strm 文件仍可播放,一律由服务器转发。
设置项#
| 设置 | 作用 | 建议 |
|---|---|---|
| 默认交付方式 | 没有自己选择的媒体库,视频怎样送到播放器。由服务器代理:服务器取到文件再转给播放器。重定向播放器:播放器直接从链接取流,所以必须连得上这个链接。局域网内重定向、外网代理:在家直连,出门由服务器转发。 | 拿不准就保持代理。家里上行带宽小、而且局域网能连到网盘时,用局域网内重定向、外网代理。 |
| 地址改写规则 | 每行一条,前缀 => 替换。第一条与地址开头匹配的规则会在使用地址之前生效,例如把内网主机名换成公网的。以 # 开头的行是注释。只用第一条匹配的,而且是纯文本匹配,不是正则。只对地址生效,对本地路径无效。 |
留空。重定向指向了外网播放器连不上的内网地址时,再加规则。 |
| 发给远端的 User-Agent | 只在服务器自己连接时发送,并且只发给该地址所在的主机。留空使用服务器默认值。重定向时由播放器自己连接,所以不会用到;取直链的那次查询用的是播放器自己的 User-Agent。 | 留空,除非网盘拒绝默认值。 |
| 发给远端的 Cookie | 条件同 User-Agent,重定向播放器时也不会发送。加密保存,保存后不再显示。 | 留空,除非网盘需要登录 Cookie。这类来源请用转发,不要用重定向。 |
| 直链缓存 | 向网盘取一次直链,并复用约三分钟(链接自己说更早过期则更短):起播更快,对网盘的请求更少。只在重定向播放器时使用。改了改写规则,旧的缓存会自己失效。 | 开启。如果外网播放被拒绝(403),就关掉。 |
| 播放时预读下一集 | 一集开始播放时,在后台读取下一集的媒体信息。对「读取媒体信息」不是「播放时」的媒体库有效。 | 开启。 |
| 打开详情时补读 | 打开一个条目、而它的视频信息还没有时,在后台读取。只读取还没读过的来源,并且只对「读取媒体信息」不是「播放时」的媒体库有效。 | 默认关闭。如果打开条目后第一次播放很慢,就打开。 |
| 提前读取媒体信息 | 提前读取远程链接的视频信息:扫描之后、后台、下一集、打开详情时,让第一次播放起播更快。关闭后只有本地路径的文件会提前读取;第一次播放仍然会当场读。 | 开启。 |
| 把结果保存为文件 | 把每次的结果存成数据目录里的小文件,条目被移除再加回来、或数据库重建后可以复用。「媒体信息缓存」插件保存得更多(音轨、章节、片头片尾标记),并在扫描前还原;两个可以同时开,代价是一点磁盘。 | 开启。想在重建后保留片头片尾标记,再加上媒体信息缓存。 |
每个媒体库可以在自己的设置里,通过「STRM 播放方式」选自己的交付方式:跟随默认、服务器转发、直链或局域网直链、外网转发。修改在下一次交付视频时生效。
本地路径与网址#
- 本地路径(
.strm里是以/开头的路径):一律由服务器转发,只能读取管理员允许的文件夹。改写规则和重定向都不适用。 - 网址(
http://或https://):先套用改写规则,再按交付方式转发或重定向。
局域网与外网#
选「局域网内重定向、外网代理」时,服务器按每条连接判断。从内网地址连到 5797 端口的,算局域网,拿到直链。从外网访问端口 5798 进来的,或来自公网地址的,由服务器转发。服务器分不清时,也转发。重定向要求播放器连得到这个地址,所以内网地址要用改写规则换掉。如果前面有反向代理,请设置可信代理,才能判断对,见远程访问。
只有播放会被重定向。网页播放器的串流、读取媒体信息、投屏和需要重新封装的播放,一律经过服务器。
后台读取#
新条目(7 天内加入的)优先读取;更早的未读条目不会自动排队。定时任务「读取尚未读取的媒体信息」每晚 02:00 到 05:00 处理这批积压,你也可以手动启动。播放一个条目或打开它的页面,会把它排到队伍前面。网盘返回 403 或 429 时,该媒体库的读取会暂停一段时间。
StrmTool 页面会显示运行情况:读取成功、读取失败、正在读取、直链缓存命中、直链缓存未命中、退回直接跳转。计数在服务器启动时从零开始。
常见问题#
- 外网播放返回 403。 网盘可能把链接绑定了播放器的地址。关掉「直链缓存」,或让这个媒体库改用转发。
- 播放器连不上重定向地址。 地址指向了内网主机。加一条改写规则,或改用转发。
- 读取失败,提示「链接已失效(404)」。 检查
.strm文件里的链接,并确认文件还在网盘里。 - 读取失败,提示「链接返回的内容不是视频」。 用浏览器打开这个链接,看它返回什么。
- 提示「远程来源无法连接」,而且地址用了自定义主机名(例如
nas.lan:5678)。在 NAS 本机的/etc/hosts里加的映射,对 Docker 容器不生效:容器有自己的域名解析,可能把这个名字解析成 127.0.0.1,也就是容器自己。请在compose.yaml的server服务下,用这台机器在局域网里的地址(这里是192.168.1.10)给容器加上这个名字:
yaml
server:
extra_hosts:
- "nas.lan:192.168.1.10"
然后运行 docker compose up -d。验证方法:运行 docker exec <容器名> getent hosts nas.lan,应该输出这个地址。除了 extra_hosts,也可以用地址改写规则把主机名换成地址:http://nas.lan:5678/ => http://192.168.1.10:5678/。
- 第一次播放很慢。 打开「提前读取媒体信息」,把媒体库的「读取媒体信息」设为「后台」或「扫描时」,并让每晚的任务处理完积压。