STRM 接入 Emby:不下载视频也能建媒体库
STRM 让 Emby 只顾目录不存视频。这篇讲清它到底是什么、有哪两种生成方式、路径和编码最容易错在哪,以及怎么验证真的生效。
媒体库的痛点是:想看网盘里的片子,又不愿意把它们全下载到本地。直接挂载能让 Emby 读到文件,但扫描大库时反复读目录会非常慢。
STRM 解决的就是这一层:让 Emby 只顾目录,视频在播放时才去取。
STRM 到底是什么
一个 .strm 文件就是一个文本文件,内容是媒体文件的 URL,通常只有一行:
http://你的服务器:5244/d/aliyun/电影/示例影片.mkv
Emby 扫描到这个文件时,会把它当成一个视频条目入库,抓海报、读标题、生成条目。播放时,它按里面的地址去取流。
所以本地硬盘上真正占空间的只有:STRM 文件(几 KB)+ 刮削出来的元数据(海报、nfo)。一个几千部影片的库,可能只占几百 MB。
先想清楚:你只要入库,还是要直链播放
这一步决定后面怎么做,很多人跳过它,结果配完发现播放还是卡。
只要入库(简单版) Emby 读取网盘文件靠挂载(rclone / CloudDrive2),STRM 只是让扫描变快。播放时数据仍然经过你的服务器。
要直链播放(完整版) 需要额外一层反向代理,把播放地址改写成网盘直链,让客户端直接去网盘取流。这部分单独写在302 反代教程里。
下面的步骤先做到「能入库、能播放」,最后再说明怎么升级到直链。
关键前提:地址必须是 Emby 能访问的
STRM 里的 URL 是由服务器解析的,所以:
http://127.0.0.1:5244/...,如果 Emby 跑在容器里,这个地址指向容器自己http://localhost:5244/...,同上http://192.168.1.10:5244/...,局域网 IPhttp://你的域名/...,有公网域名时
判断方法:进 Emby 容器,执行 curl -I <你要写进 STRM 的那个地址>,能返回 200 或 302 就对了。
生成 STRM 的两种方式
方式一:工具直接生成(推荐)
不用先挂载,工具通过网盘的 API 或 WebDAV 读到目录结构,直接在本地写 STRM 文件。
常见选择:
- LitePan:多网盘聚合挂载 + STRM 生成 + 媒体整理,面向 NAS 场景
- TgtoDrive:支持 115/123/光鸭,转存 + 整理 + STRM + 302 一条链
- MoviePilot:媒体库自动化,插件生态较全
这类工具通常要填三个东西:
| 配置 | 说明 |
|---|---|
| 网盘凭据 | 和 OpenList 一样,按平台要求提供 |
| 生成目录 | 本地存放 .strm 的路径 |
| 基础地址 | 写进 STRM 的前缀 URL,就是上面说的"Emby 能访问的地址" |
生成逻辑一般是定时扫描(Cron)或监听变更,增量生成。
方式二:先挂载再生成
先按OpenList 挂载教程把网盘挂到本地,再用工具扫描挂载目录批量生成 STRM。
优点是链路直观;缺点是扫描大库慢,而且多了一层挂载依赖。
加进 Emby
- Emby 后台 → 资料库 → 新增媒体库
- 内容类型选「电影」或「电视节目」
- 文件夹指向 STRM 所在目录(注意:是宿主机路径,且要映射进 Emby 容器)
- 保存后触发扫描
扫描完成后,条目会出现在库里。如果目录是空的,检查:
- 路径有没有正确映射进容器
- STRM 文件后缀是不是
.strm(不是.strm.txt) - 文件权限 Emby 能不能读
验证真的生效
三个层次的验证,从浅到深:
一、文件层
ls /path/to/strm | head
cat /path/to/strm/示例影片.strm
能看到 URL,且 URL 在 Emby 容器里能访问。
二、媒体库层 Emby 里能看到条目、有海报、有标题。这说明刮削成功,但不代表播放能走通。
三、播放层 实际点播一次,同时观察服务器网络:
- 如果服务器上行有明显流量,说明在走中转(挂载模式)
- 如果服务器几乎没流量、但客户端在下载,说明走了直链(302 模式)
这一步是判断「有没有真的配好」的唯一标准。
常见坑
中文文件名乱码或 404。 URL 需要做编码。部分工具提供「URL 编码」开关,打开它。
STRM 生成成功但 Emby 不认。
多半是基础地址不可达。按上面的方法在 Emby 容器里 curl 一次。
能播但一直转圈。 大概率是网盘限速或服务器带宽不够。这时才需要上 302 反代。
片头片尾识别、弹幕、字幕缺失。 STRM 是虚拟文件,元数据不如本地文件完整。需要额外插件补全(如 MediaInfoKeeper 类工具)。
过一段时间全失效了。 STRM 里的地址如果带时效签名,会过期。解决办法是让工具定期重新生成,或使用不带时效的固定路径 + 302 解析。
和 302 的关系
STRM 解决「入库」,302 解决「播放不占带宽」。两者是叠加关系:
网盘 → STRM(指针)→ Emby 入库 → 播放 → 302 反代 → 客户端直连网盘
只做 STRM,你会得到一个漂亮的媒体库,但播放仍然经过服务器。加上 302,才是完整的家庭影院方案。
如果网盘本身支持直链、你也愿意折腾,可以直接看302 反代教程。不想折腾的话,适合做影视媒体库的网盘里列了几个直链生态更成熟的平台,能省不少事。
相关阅读:STRM 是什么、302 重定向是什么、网盘挂载工具专题。