--- url: /settings/proxy.md --- # 302 代理 302 代理服务器是 SmartStrm 的核心进阶功能,主要目的是将媒体流压力从你的 NAS 服务器转移到网盘直连。 ## 核心设置 在 **“系统设置**->**302 代理”** 中: * **服务端口**:代理监听的端口,默认 `8097` * 需把该端口映射到宿主机,或网络模式设为 host * **媒体服务器地址**:指回你真正的 媒体库 地址(如 `http://172.17.0.2:8096`)。 > \[!TIP] 连接提示 > 启用后,你就不再直接访问 `8096` 端口,而是通过 SmartStrm 指定的 **服务端口** 来管理和观看。 ### 媒体服务器支持 302代理支持 `Emby`, `Jellyfin`, `Plex`, `飞牛影视` ,兼容性最好是 `Emby` ,建议优先使用。 以下是特定媒体库的一些帮助信息: ::: details 飞牛影视 代理飞牛影视支持 `5666` 或 `8005` 端口,建议使用后者。 * 代理 `5666` 时,可在 **飞牛APP** 或 **飞牛播放器** 中使用 *(不能用 FN ID)* * 代理 `8005` 时,可在 **飞牛播放器** 和 **第三方播放器** 中使用 > \[!TIP] > **SmartStrm 对第三方播放器添加飞牛影视无法播放 STRM 的情况特别做了支持**,代理后可以播放,已测试客户端 VidHub、SenPlayer、网易爆米花。如你依然无法播放且为 Docker 部署,请尝试将主机的 `strm` 目录真实路径加入容器目录映射中,如 `/vol1/1000/path/strm:/vol1/1000/path/strm` ::: ::: details Plex > \[!WARNING] 前方有坑预警 > Plex 是账号体系+自部署服务,和独立自部署有本质区别。**即便 SmartStrm 对 Plex 做了 302 的支持,但搭配官方客户端需要复杂的配置,以及受限于解码能力,使用依然是个难用的选项。** 1. 第三方客户端 VidHub、Infuse 连接 Plex 本身就支持 STRM 播放,无须另外的 302 代理。 2. 本项目对自部署的 Web 服务代理后,可以实现 Web 端 302 播放;将代理后的地址加 HTTPS 设置为 `设置 - 网络 - 自定义服务器访问 URL` 后,支持 Plex 客户端 302 播放。 3. 在 app.plex.tv 中无法实现 STRM 播放,因为即使修改了后端返回,无法修改官方前端的代码。 4. 受限于客户端解码能力,部分非流媒体的视频格式不能播放,这是无法解决的。 Plex 自身有穿透机制,需要调整远程设置才能将代理端口提供于各客户端访问。具体设置方法请参考同类项目帮助: * [plex-服务端控制台设置](https://github.com/bpking1/embyExternalUrl/blob/main/plex2Alist/README.zh-Hans.md#5-plex-服务端控制台设置) * [plex2alist魔改版本](https://github.com/diannaSIN/plex2alist-) ::: ## 实用增强功能 ### 性能优化 * **优化 STRM 首播速度**:开启后,SmartStrm 会在 Emby 还未完全解析完媒体编码信息前,优先返回 302 直链,能缩短若干秒的等待时间。*(实验性功能,视客户端兼容性使用)* ### UI 增强 在代理 Emby/Jellyfin 页面时,注入实用的功能脚本: * **外部播放器按钮**:在媒体播放页面顶部增加按钮,支持一键唤起 PotPlayer, VLC, IINA 等本地播放器,解决 Web 端编码不兼容的问题。 * **美化去广**:支持隐藏 Emby 网页端烦人的 “获取 Emby Premiere” 推广按钮及横幅。 --- --- url: /tutorials/cas-cas2ss-auto-subscribe.md --- # CAS + cas2ss + SmartStrm, 天翼云盘订阅追剧新姿势 > 原链接:https://club.fnnas.com/forum.php?mod=viewthread\&tid=61826 > > 作者:Agoni\_JoWZ3(飞牛社区用户) 最近天翼云盘资源分享频道改用 .cas 文件资源分享,可愁死我了,正好,最新的 SmartStrm 支持 `.cas` 秒传文件的直链解析: * 通过家庭共享秒传临时文件获取直链,自动清理临时文件(含回收站) * 直链已缓存优化,有效期内二次请求将直接返回直链,而非重复秒传 * 理论上媒体库视频编码可以正常获取,和正常入库视频格式 strm 无异 * 需注意大批量入库时频繁扫视频编码,有可能会挤爆家庭云 * 为确保能顺利秒传,家庭云应留相应大小的空间 对于空间少的朋友来说,每个 cas 文件只有 200B 左右,只需留下足够的家庭空间就行了。下面介绍自动订阅追剧的方法。 ## 准备工作:安装 SmartStrm 安装 SmartStrm,可以通过飞牛应用商店安装,参考 [官网](https://smartstrm.github.io/)。 安装完成后登录,挂载天翼云盘,选中需要生成的媒体文件夹,创建 STRM 任务。 在设置里将媒体文件后缀加上 `cas`: ``` 系统设置 → STRM 设置 → 媒体后缀 ``` 点击 Webhook 选项,获取 Webhook 链接备用。 ## docker-compose 部署 cas2ss + cloud189-auto-save ```yaml services: cas2ss: image: sisheng36/cas2ss:latest container_name: cas2ss network_mode: bridge restart: always environment: - PROJECT_API=http://192.168.31.3:3000 # 你的CAS地址 - API_KEY=Wrn3yv4dedVgOluw2wYmdKChAhYQ9HfP # 你的CAS中生成的api-key - TARGET_WEBHOOK=http://192.168.31.3:8024/webhook/96c1d4ba7d436192 # 你的SS中的webhook地址 - POLL_INTERVAL=5 # 监听CAS的频率,每5s监听一次 - STRM_TASKS=电影1,电影2,动漫1,动漫2,国产剧1,外语剧1,纪录片1,更新中1 # SS中用于生成strm的任务名,多个用","隔开 - FILTER_STATUS=processing # 默认仅监听追剧中的项目,不要修改 - TZ=Asia/Shanghai volumes: - ./cas2ss:/app/data logging: driver: "json-file" options: max-size: "10m" max-file: "3" cloud189: image: xia1307/cloud189-auto-save:latest container_name: cloud189-auto-save network_mode: bridge restart: always ports: - "3000:3000" volumes: - ./data:/home/data environment: - PUID=0 - PGID=0 ``` ## 配置步骤 1. **构建并启动**:`docker compose up -d`,访问 cloud189-auto-save 并登录天翼云盘 2. 将之前 SmartStrm 设置的媒体文件夹加入到常用目录,创建任务并打上五角星(自动追更标记) 3. 在系统设置中生成 API Key,保存后生效 4. 关闭 docker-compose,修改 cas2ss 的环境参数(API 地址、API Key、Webhook 等),重新构建 > **路径命名规则**:路径中包含 `电影`、`Movie` 等关键词时,发现订阅更新 30 秒后发送同步生成 strm 的消息;如果 30 秒内有新任务,发送时间将重新计算。其他路径为 120 秒。 ## 使用方式 * **网页端**:直接粘贴天翼云盘分享链接生成转存任务,SmartStrm 自动生成 strm * **Telegram Bot**:申请一个 TG Bot,在 TG 上操作,更加优雅 之后由 Emby 监控 strm 文件夹,优雅地追剧。 ## 总结 天翼云盘还算良心的速度,搭配 cas 极小的空间占用,配合 SmartStrm 最新的播放时自动还原 cas 源文件并提取直链的功能(非 Pro 功能),媒体库又能进一步扩充了。因为是网盘生成的 STRM,可以搭配 SmartStrm 的 302 重定向功能(Pro 功能),支持 **Emby、Jellyfin、Plex、飞牛影视** 在外也可以追剧。 --- --- url: /tutorials/docker-strm-generator.md --- # Docker推荐(8)—— Strm生成工具SmartStrm > 原链接:https://mp.weixin.qq.com/s/q\_Yz77DnZ4nRf3EjWaVxjg > > 作者:杰瑞先森(微信公众号:科技屌丝君) 网络影视资源进阶玩法:Strm 文件,它就像是一个小小的"网络快捷方式",它不会把整个视频存在你家里(才不会占地方呢~),而是在你播放的时候,播放器才会跑去网上把内容"抓"回来给你看!因为扫描的时候只看文件名,不用读文件里面的内容,所以入库速度简直快到飞起!嗖的一下就搞定啦~今天就介绍一款生成 Strm 的神器:SmartStrm。 ## 01 SmartStrm 部署 ### Docker Compose 代码部署 ```yaml name: smartstrm services: smartstrm: image: cp0204/smartstrm:latest container_name: smartstrm restart: unless-stopped network_mode: host volumes: - /yourpath/smartstrm/config:/app/config # 挂载配置目录 - /yourpath/smartstrm/logs:/app/logs # 挂载日志目录,可选 - /yourpath/smartstrm/strm:/strm # 挂载 STRM 生成目录 environment: - PORT=8024 # 管理端口,可选 - ADMIN_USERNAME=admin # 管理用户名 - ADMIN_PASSWORD=admin123 # 管理用户密码 ``` > 注意:上面只要根据自己实际情况更改 `/yourpath` 部分即可。 ## 02 如何使用 ### 1. 登录管理后台 地址栏输入 `http://你nas的ip:8024`,输入部署时候设置的用户名和密码即可。 ### 2. 添加存储管理 最新版本支持使用夸克网盘 TV 扫码登录非常方便,但笔者试了一下,一直提示超出设备数量了。 夸克网盘 TV 驱动"设备数超限"的问题,可以在 APP 中 - 我的 - 设置 - 账号与安全 - 登录设备管理,退出和解除绑定一些不用的设备。每个账号是支持 2 个 TV 端登录的。 如果不行,如果使用夸克网盘,只能使用其 cookies 登录方式。 **STRM 资源请求方式:** * **原画代理**:依然走 NAS 的网络环境,吃 NAS 宽带。 * **仅转码直链**:直接网盘获取资源,不吃 NAS 带宽,但对于播放器有要求。(需要 pro 功能) * **移动端请求 URL**:我们后面说,有点复杂。 ### 3. 添加任务管理 添加任务比较简单,选中网络资源路径,就可以保存进行定时 STRM 生成了。(执行时间可以 AI 上面可以搜索下哈) ### 4. 302 代理设置 添加网盘时候如果选择的仅转码直连,则设置中 302 代理功能需要打开(pro 功能)。如果选择的原画代理,则不需要。 ### 5. 夸克 strm 302 直连问题解决 本月开始夸克的 strm 302 直连功能可能由于接口问题,导致会出现播放视频时候失败,一种方法就是在添加网盘时候选择原画代理功能,还有一种方法就是"添加移动端请求 URL"。 此处仅使用苹果手机进行演示: **(1)** 笔者主要使用的是 Loon 这款 app,主要使用到了抓包记录工具。 **(2)** 打开 Loon,打开开启抓包。 **(3)** 打开夸克网盘 app,随便访问几个页面,包括我的个人页面,资源页面,播放一个视频等等。 **(4)** 然后回到 Loon,关闭开启抓包,此刻在下面会有一个抓包记录。 **(5)** 然后关键词搜索一下:(如果搜索不到,说明你访问页面不够多) `https://drive-m.quark.cn/1/clouddrive/file/share_check` **(6)** 然后点进去,把所有圈的内容复制进去即可。 ## 03 总结 **优点**:部署方便,使用流程比较清晰。非 PRO 功能对于一般用户来讲也够用了,不过订阅也不太贵。 **不足**:目前无法做到实时监测文件夹生成 STRM 的功能(webhook 支持的除外),只能对计划时间做一个大致的监测。 --- --- url: /tutorials/qas-auto-update-smooth-experience.md --- # Quark-auto-save+Smartstrm,追剧追综艺,秒入库丝滑体验 > 原链接:https://zhuanlan.zhihu.com/p/1943376528730756600 > > 作者:SunnyD(知乎) ## 前言 大家好,我是桑尼,一个 0 程序基础却爱玩 nas 的小白,今天跟大家分享 Cp0204 大佬的宝藏 docker 项目 Quark-auto-save+Smartstrm,让你在没有"私人资源站"的情况下自动追剧、丝滑建立自己的影视库。 项目原地址,请大家去关注原作者并打上 star,cp0204 大佬是非常耐斯的大佬,大家支持支持哈。 ## 一、需求分析 众所周知,现在追个剧追个综艺可难了: 1. 国内三大运营商对 pcdn、"私人资源站"等大流量上传尤其是跨省流量的管理越来越严格,一不小心触发风控轻则限速重则收回公网 ip 甚至封号查水表,加上"私人资源站"平台的考核任务,让很多小白望而却步; 2. 另一方面,很多影视节目命名混乱,动辄先导片、精编版、幕后花絮等等一堆乱七八糟的文件导致转存时痛苦万分,且容易剧集编号混乱与刮削源产生错误,导致媒体库彻底混乱。 3. 另外,硬盘一日一涨,nas 里的空间岌岌可危。 天下苦之久矣! Quark-auto-save+Smartstrm,完美解决了这些问题,自动搜索、自动批量处理文件(筛选+重命名)、定时自动转存、自动生成 strm 文件,然后自动刮削和入库,玩 nas 的老鸟,都知道这里面的门道有多深! ## 二、准备工作 **科普**:strm 是什么?strm 可以理解成一个网盘视频文件的快捷方式,记录着这个网盘文件的私密播放地址,可以被一些软硬件直接读取播放,strm 解决了几个问题: 1. 节省本地硬盘空间,只要记录个播放地址就行了 2. 节省家庭的上传带宽,如果你设置好 302,那么你在外边用手机看这个资源的时候,就可以直接从网盘读取视频数据了,就不占用家里的上传带宽了 3. 刮削等动作在本地进行,降低网盘操作频率,防止被风控 **准备**: 1. 一个基础的支持 docker 的设备和环境,可以是云主机、小主机、成品 nas、自组 nas,都可以,只要能部署 docker 就行,这两个项目将会使用 compose 形式进行部署,请提前了解你的设备的 compose 部署方式以及本地文件的路径等。另外请准备好拉取 docker 镜像的网络环境或者加速器~ 2. 一个夸克账号,如果你是淘宝 88 会员,那么会同步包含 88vip 的夸克账号,基本已经够用了(不是 88 会员的话可以去一些海鲜市场购买),如果你有原片 4k 等高清需求,买个夸克的 svip 也不是不行,夸克的资源相对还不错,速度也很稳定 3. 自建影视库的其他基础,比如公网 ip、反向代理、emby/jellyfin/plex 等影视库,本文不做更多赘述,请查看其他教程 ## 三、容器部署 建议 Quark-auto-save 和 Smartstrm 两个容器分开部署,主要是方便与其他容器如 emby、mp 等联动。 ### 1. Quark-auto-save(后面简称为 qas) 在你 docker 的永久化目录下建立 "quark-auto-save" 的文件夹(这个名字可以随便写自己知道是什么就行,比如我写的是 quarksave),并在里面建立一个 config 的文件夹(这个最好不要改)。 **Compose 代码**: ```yaml services: quark-auto-save: image: cp0204/quark-auto-save:latest container_name: quark-auto-save ports: - 5005:5005 # 冒号左侧端口可改,跟本地 host 里的端口不冲突即可 restart: unless-stopped environment: WEBUI_USERNAME: "admin" # 管理账户名,自定义 WEBUI_PASSWORD: "password" # 管理账户密码,自定义 volumes: - ./config:/app/config # 配置持久化 - ./media:/media # 媒体库或下载文件夹所在路径 ``` ### 2. SmartStrm(后面简称为 SS) 在你 docker 的永久化目录下建立 "smartstrm" 的文件夹,并在里面建立 config、logs 的文件夹。 **Compose 内容**: ```yaml name: smartstrm services: smartstrm: image: cp0204/smartstrm:latest container_name: smartstrm restart: unless-stopped network_mode: host volumes: - ./config:/app/config - ./logs:/app/logs - ./strm:/strm # 生成 strm 文件的存储路径 environment: - PORT=8024 # 管理端口,可自行更改 - ADMIN_USERNAME=admin # 管理用户名 - ADMIN_PASSWORD=password # 管理用户密码 - LICENSE= # Pro 版本授权码 ``` 至此,两个容器部署完成,你可以去你本地局域网的 `ip:5005` 和 `ip:8024` 查看是否部署成功。 ## 四、容器联动 ### 1. 夸克的 Cookie 电脑浏览器(edge 或 chrome)打开夸克网盘,手机扫码登录,登录后按 F12 进入后台页面,点击网络,随便找一条记录带有 cookie 字样的,一大坨内容,复制到这里。 ### 2. 定时规则 五个 `*` 的 cron 表达式,五个 `*` 分别代表 分 时 日期 月份 星期几,比如你想每天 8 点执行一次任务就写 `0 8 * * *`,`*` 就代表"每"的意思。 夸克目前这么好用,请大家千万爱护这个环境,自动执行任务的频率越低越好,比如我设置的都是三四个小时才执行一次,良好的使用环境,请大家爱护。 ### 3. 通知 Qas 支持各种通知类型,我这里选择的是企业微信机器人,这些具体的内容可以点击上面的"?"在项目文档进行具体查询,不再赘述,不需要通知的可以无视。 ### 4. 插件 插件的部分是 qas 的精髓,本文只涉及 smartstrm 部分,其他内容请点击"?",挖掘更多玩法(比如没有玩 strm 的时候我会用 alist\_sync 进行自动复制本地入库等)。 打开 SS 并登录: **存储管理** → **添加存储**: * 存储名称:自己随便起个名字 * 驱动:选择"夸克网盘" * Cookie:再次粘贴夸克的 cookie * STRM 格式:选择源码代理即可(如果你买了 ss 的 pro 授权可以选择智能回落) **系统设置** → **Webhook**: 复制 webhook 地址到 qas 的插件处。 > 注意!如果你把 ss 的 web 管理页面反向代理到了外部,并从外部进行访问,这里会显示你反向代理的地址,反向代理大部分都是 https,如果直接复制记得要在 qas 那边把前面的反代网址:端口,改成你内网的 IP:端口!webhook/后面的字符不变即可。 **建立 strm 任务**: * 任务名称:如 tv、movie、tvshow 等 * 使用存储:选择你刚才建立的存储 * 扫描路径:选择网盘里保存媒体的合适的路径 * 执行时间:根据自己需求填写 回到 qas,填好 webhook 和 strmtask,保存。 ### 5. 其他选项 魔法匹配暂时不用管,如果你部署了 cloudsaver 这里可以写入你的服务器地址、用户名和密码。Pansou 这里可以填 gugeso.com,也可以填自己部署的 pansou。 ## 五、开始使用 打开 qas 的任务列表,点击增加任务。 输入你想看的内容,qas 会自动跳出 cloudsaver 和 Pansou 搜索出来的资源。 找到一个合适的资源(命名规范、更新及时),把分享链接复制到 qas 的任务里。 **保存路径**:存在你夸克网盘里的路径,就是刚才在 ss 里的 strm 任务里的"扫描路径"。 **保存规则/正则处理**:qas 可以筛选共享文件中的部分文件,按照你的想法进行自动改名,来匹配 tmdb 等标准的命名,方便后续刮削入库。 正则示例:`^.*第(\d+)期(...).*?\.(mp4|mkv)` 解释: * `^.*` ➡️ 前面随便我不管 * `第(\d+)期` ➡️ 只保留带有第 xx 期的文件,提取数字到变量 1 * `(...)` ➡️ 接着前面第几期后面的连续三个字符,提取到变量 2 * `.*?` ➡️ 后面的乱七八糟都不要 * `\.(mp4|mkv)` ➡️ 提取后缀名,mp4|mkv 二选一,提取到变量 3 ## 六、整体效果 部署好 qas+ss,设置好容器的任务和互动、设置好 qas 追更就可以了!而且如果我是追剧或者追综艺,以后每次更新到时候,也能全自动完成:转存→改名→生成 strm→刮削入库→通知! ## 七、结语 Qas 和 ss 其实都还分别有更多的功能,比如和 xxlist 配合自动同步,ss 还支持 alist/openlist/webdav,还有 302 直通功能!作者大大还在持续更新,今天就分享到这里,大家下次再见! --- --- url: /tutorials/emby-openlist-sync-delete-zero-cost.md --- # SmartStrm + Emby + OpenList + Emby 联动删除,零成本 NAS 播放完全指南 > 原链接:https://post.smzdm.com/p/amon9plz/ > > 作者:寒梅别有韵(什么值得买用户) ## SmartStrm + Emby + OpenList + Emby 联动删除直链播放 > 适用人群:有夸克/123 网盘,却没有大上传带宽,但想拥有"秒播"私人影院的朋友 > 硬件要求:任意能跑 Docker 的机器(飞牛,群晖,CasaOS) 本文将为您介绍一种新思路:**Cp0204 大佬的 SmartStrm 项目**。 [GitHub - Cp0204/SmartStrm](https://github.com/Cp0204/SmartStrm) 它能让您的 Emby 媒体库实现 **夸克网盘和 alist 302 直链播放**。这意味着您的服务器只负责一个简单的"重定向"操作,数据流完全由网盘和您的播放设备之间传输,从而彻底解放您的本地服务器和带宽压力,实现极致流畅的观影体验。 用一句话说就是: > "让网盘'吐'流量,服务器指路人——本地 0 上行,下行满带宽。" 下面,我们将以 DPanel 环境为例,详细介绍如何配置 SmartStrm 与 Emby。 ## 一、准备清单 **原理**:SmartStrm 定时扫描您的夸克网盘和 openlist 文件服务器,并为每个媒体文件(如 .mp4 .mkv)生成一个 `.strm` 文件。但是像是字幕(ass,srt)刮削的数据(nfo)就是会自己下载下到 emby,你用支持 `.strm` 播放此文件时,SmartStrm 会接收请求,并 **重定向** 夸克网盘的真实下载地址。 **环境要求**(我使用的是白嫖的 aws 服务器并且安装 CasaOS,可以自己搭建别的,比如飞牛): * DPanel(推荐安装,小白上手快) * Emby 媒体服务器 * openlist(只用夸克可以不用) * Cp0204/SmartStrm 项目 ## 二、统一目录与 docker-compose 模板 首先,我们需要规划好文件路径并安装 Docker 容器。 推荐使用 DPanel: ```bash curl -sSL https://dpanel.cc/quick.sh -o quick.sh && bash quick.sh ``` **目录准备**:为了方便管理,建议统一规划目录结构。 ``` /yourpath ├── smartstrm │ ├── config │ └── logs └── strm ▶ 给 Emby 和 smartstrm 同时读的目录 └── openlist └── emby ├── config └── cache ``` **关键映射**:将 SmartStrm 的 `strm` 目录映射到 Emby 容器内的 `/strm` 路径。这是 Emby 读取 `.strm` 文件的关键。 ### Docker Compose 模板 ```yaml version: "3" services: smartstrm: image: cp0204/smartstrm:latest container_name: smartstrm restart: unless-stopped network_mode: host volumes: - ./smartstrm/config:/app/config - ./smartstrm/logs:/app/logs - ./smartstrm/strm:/strm environment: - PORT=8024 - ADMIN_USERNAME=admin - ADMIN_PASSWORD=admin123 - LICENSE= # 购买 Pro 后填密钥 emby: image: emby/embyserver:latest container_name: emby restart: unless-stopped ports: - "8096:8096" volumes: - ./emby/config:/config - ./emby/cache:/cache - ./smartstrm/strm:/strm # 关键映射 ``` 网络选 host 就可以,环境变量新增三个参数分别是账户名密码以及 Pro 版本的 key。 ## 三、SmartStrm 后台配置 浏览器打开 `http://IP:8024`,进入 SmartStrm 后台进行配置。 ### 1. 升级 Pro(想 302 必开) 点"免费版"图标 → 开通 Pro → 回 Docker 把 LICENSE 填上 → 重启容器。 ### 2. 打开 302 代理 系统设置 ▶ 302 代理: * 服务端口:8097 * 媒体服务器地址:`http://<公网IP>:8096` > **重要**:Emby 播放器需要通过代理端口 **8097** 访问,而不是直接访问 8096。 如果你是大内网环境可以试试虚拟组网或者是 **IPV6+DDNS**。 ### 3. STRM 规则 大佬项目默认配置的就够用。 ### 4. 添加夸克网盘和 openlist 存储 进入 **"存储管理" -> "添加存储"**。 **夸克**: * 驱动:选择 **夸克** * Cookie:登录夸克网盘后,按 `F12` 打开开发者工具,找到并复制完整的 **Cookie** 字段内容 > 引用下 openlist 的获取夸克 Cookie 的方法,一定要保护好,这东西相当于夸克的登录密码了。按 F12 打开"调试",选中"网络",随意在左侧选择请求,找到携带 `Cookie` 参数的就可以。 **OpenList**: * 驱动:选择 **OpenList / alist** * 地址:填你的 OpenList 后台地址 * Token:可在 OpenList 管理后台-设置-其他-令牌获取 ## 四、生成 STRM & 入库 ### 1. 生成 strm 任务 进入 **"存储浏览" -> "添加任务"**。 完成同步后,SmartStrm 会在 `/strm` 目录下生成对应的 `.strm` 文件。 ### 2. 配置 Emby 媒体库 进入 Emby 后台,添加新的媒体库。 * 类型:选择 `电影` 或 `电视` * 文件夹路径:选择容器内路径,例如 `/strm/网盘动漫` 保存并扫描媒体库,Emby 会自动识别生成的 `.strm` 文件并进行刮削。如果库为空,请检查 `.strm` 文件是否已生成,以及路径映射是否正确。 ## 五、播放验证 * 秒拖进度条 * 看服务器上行 ≈ 0 * SmartStrm 日志出现 "strm 302" = 成功 为了验证 302 直链播放是否成功,请确保您的播放器(如:yamby)或客户端是通过 **代理地址** `http://宿主机IP:8097` 访问 Emby 服务器。 您可以尝试拖动进度条,如果是秒播且视频链接是 SmartStrm 的地址,观察日志是否命中,然后看上行有没有跑就行了。 ## 六、Emby 联动删除 这是我认为这个软件最与众不同的一个地方,你可以直接从 emby 中删除你的 strm 文件,SmartStrm 检测到就会同步删除文件。我本来是用 jellyfin 的,被这个功能吸引转 emby 了(大佬说 jellyfin 不行)。 其实本质就是通过 **Webhook 通知** 来告知 **SmartStrm** emby 是否删除文件。 设置起来也很简单: 1. 复制系统设置里面 **Webhook 地址** 2. 打开 Emby 删除同步设置 3. 粘贴到 emby 的通知里面 按照步骤来就行,发送测试通知试下,如果成功就算完成。 --- --- url: /tutorials/emby-quark-302-direct-link.md --- # SmartStrm + Emby:夸克网盘 302 直链播放完全指南 > 原链接:https://club.fnnas.com/forum.php?mod=viewthread\&tid=36387 > > 作者:太阳营业了(飞牛社区用户) 对于拥有夸克网盘 88VIP的用户来说,海量的资源获取变得异常便捷。然而,传统方式将夸克网盘挂载到 Emby 等媒体服务器上,通常需要通过本地服务器进行数据传输,这不仅消耗本地带宽,尤其在上行速度受限的公网环境下,播放体验更是大打折扣。 本文将为您介绍一种革命性的解决方案:Cp0204 大佬的 SmartStrm 项目。它能让您的 Emby 媒体库实现夸克网盘 302 直链播放。这意味着您的服务器只负责一个简单的"重定向"操作,将请求直接导向夸克网盘的真实资源链接,数据流完全由夸克网盘和您的播放设备之间传输,从而彻底解放您的本地服务器和带宽压力,实现极致流畅的观影体验。 下面,我们将以 Docker 环境为例,详细介绍如何配置 SmartStrm 与 Emby。 ## 一、核心原理与环境准备 * **核心原理**: SmartStrm 定时扫描您的夸克网盘文件夹,并为每个媒体文件生成一个 .strm 文件。这个文件包含一个指向 SmartStrm 服务地址的链接。当 Emby 播放此文件时,SmartStrm 会接收请求,并立即以 302 重定向的方式,将请求转发给夸克网盘的真实下载地址。 * **环境要求**: * FNos + docker * Emby 媒体服务器 * Cp0204/SmartStrm 项目 ## 二、目录规划与 Docker 部署 首先,我们需要规划好文件路径并启动 Docker 容器。 * **目录准备**: 为了方便管理,建议统一规划目录结构。 * **SmartStrm 目录**:`/vol1/1000/sata/SmartStrm` * **关键映射**: 将 SmartStrm 的 strm 目录映射到 Emby 容器内的 /strm 路径。这是 Emby 读取 .strm 文件的关键。 ### Docker 搭建 SmartStrm 在飞牛的镜像仓库搜索 `Cp0204/SmartStrm` 镜像第一个下载数量最多的就是。 按照图里的设置端口和存储位置,网络选 bridge 就可以,环境变量新增三个参数分别是账户名密码以及 Pro 版本的 key(LICENSE,可以第一次进入 web 界面后点击相应位置购买 Pro 版本后再填写就可以,购买 pro 版本看第 3 步)。 ### Emby 的配置 Emby 就不详细写搭建流程了,Emby 就增加一个 `/strm` 的存储位置就可以了。 ## 三、SmartStrm 配置详解 部署完成后,通过浏览器访问 `http://宿主机IP:8024` 进入 SmartStrm 后台进行配置。第一次先进入 web 界面,使用 302 是需要购买 pro 版本的,订阅价格超级便宜,可以先订购一个月试试本项目是否适合自己再决定是否长期使用。 第一次进入页面点入箭头位置(第一次显示免费版),跳转到爱发电购买一个月订阅留下地址,key 会发送到你的邮箱,如果没收到看看垃圾邮件,大概率就在里面。然后回到上一步 docker 部署哪里,把可以填进环境参数里就可以升级为 pro 版本了,然后才进行下一步。 ### 1. 开启 302 代理 进入 "系统设置" -> "302 代理",启用此功能。 * **服务端口**: 8097(建议使用默认) * **媒体服务器地址**: 填写 Emby 的本地地址,例如 `http://192.168.x.x:8096`。 > **重要**: Emby 播放器需要通过代理端口 8097 访问,而不是直接访问 8096。 ### 2. 配置 STRM 规则 进入 "系统设置" -> "STRM 设置"。 * **媒体后缀**:`mp4,mkv,mov,avi` (可根据需要添加) * **大小阈值**: 建议 >= 20 MB 以排除过小的文件。 * **生成根目录**:`/strm` (必须与 Emby 容器的映射路径一致) * **SmartStrm 地址**: 填写 `http://宿主机IP:8024`。 ### 3. 添加夸克网盘存储 进入 "存储管理" -> "添加存储"。 * **驱动**: 选择 夸克网盘。 * **Cookie**: 登录夸克网盘后,按 F12 打开开发者工具,找到并复制完整的 Cookie 字段内容。 ## 四、同步与 Emby 媒体库配置 ### 1. 创建同步任务 进入 "任务管理" -> "+添加任务"。 * **存储**: 选择刚才配置好的夸克网盘。 * **路径**: 选择您希望同步的夸克网盘文件夹,例如 `/来自:分享/电影`。 * **定时**: 可以设置为 `0 0 * * *` (每天 00:00) 自动同步,或手动点击"运行"进行同步。 完成同步后,SmartStrm 会在 `/vol1/1000/docker/SmartStrm/strm/` 目录下生成对应的 .strm 文件。 ### 2. 配置 Emby 媒体库 进入 Emby 后台,添加新的媒体库。 * **类型**: 选择 电影 或 电视。 * **文件夹路径**: 选择容器内路径,例如 `/strm/电影`。 保存并扫描媒体库,Emby 会自动识别生成的 .strm 文件并进行刮削。如果库为空,请检查 .strm 文件是否已生成,以及路径映射是否正确。 ## 五、播放验证 为了验证 302 直链播放是否成功,请确保您的播放器(如:TV Box)或客户端是通过代理地址 `http://宿主机IP:8097` 访问 Emby 服务器。 您可以尝试拖动进度条,如果是秒播且视频链接是 SmartStrm 的地址,观察日志是否命中,飞牛是否有高速网络波动来判断配置是否成功了!您现在可以尽情享受由夸克网盘直接提供的极速流畅的观影体验,无需再担心本地服务器的上行带宽瓶颈。 --- --- url: /tutorials/openlist-ugreen-cloud-avoid-risk-control.md --- # SmartStrm + Openlist + 绿联影视中心 避免网盘风控 > 原链接:https://club.ugnas.com/forum.php?mod=viewthread\&tid=2037 > > 作者:茂茂阿丶 ## 1. 详细介绍 ### SmartStrm 是什么? 一个媒体库 STRM 文件生成工具。可以和绿联影视中心优雅配合,媒体资源丝滑入库,支持 302 直链播放,支持同步删除远端文件。可以配合 Quark-Auto-Save/CloudSaver, OpenList, Emby 力求即存即看。 ### 如何实现,为什么要这么做? STRM 是一个网络资源的快捷方式,它使得无须在本地存储媒体文件,让绿联影视中心播放时再直接从网络上请求媒体资源,因扫描媒体库只识别文件名,而不用读取媒体文件内容,所以入库极快。支持 STRM 文件的还有 Emby, Jellyfin, Kodi 等流媒体播放器。 **什么是"风控"?** 网盘服务器风控是网盘服务商针对服务器安全性和稳定性风险进行管理和控制的方式。它的目标是保护服务器免受恶意攻击、未经授权的访问和其他潜在风险,为了减少服务器会发生的故障,确保自家的服务器能够正常运行,网盘服务商有一系列的措施和策略用来保护自家的服务器。 ### 特性 * 支持 OpenList、WebDAV、夸克网盘、115网盘、天翼云盘、123云盘 等网络驱动 * **任务管理** * 基于 Crontab 的定时任务 * 单个任务独立日志 * 任务工具箱:内容替换、一键清理 * **STRM 生成** * 目录时间检查 * 增量/同步生成:可清理远端已删文件 * 指定生成的媒体后缀、文件大小阈值 * 指定复制的文件后缀 * 本地存储实时监听生成 * **Webhook** * 联动 QAS、CloudSaver 转存即触发任务 * 配合油猴脚本,网页转存即触发任务 * Emby 中删除媒体,同步删除远端文件 * CloudDrive2 文件变更通知实时触发任务 (Pro) * **插件系统** * STRM内容替换、非法文件名修正 等插件,支持任务级配置 * 飞牛影视刷新 插件 (Pro) * **管理页面** * 存储浏览、批量重命名 * 任务日志查看 * **一站式 Emby Jellyfin Plex 302 直链播放 (Pro)** > 本教程需要熟练使用 Docker,并理解项目跟容器之间的关系,如有 Docker 相关问题,最好先自行百度。 ## 2. 安装指南 在 Docker 目录创建 SmartStrm 文件夹。 ### Docker Compose 部署 ```yaml version: "3" services: smartstrm: image: cp0204/smartstrm:latest container_name: smartstrm restart: unless-stopped network_mode: host volumes: - ./config:/app/config - ./logs:/app/logs - ./strm:/strm environment: - PORT=8024 - ADMIN_USERNAME=admin #你的登录名 - ADMIN_PASSWORD=admin_password #你的登录密码 ``` ## 3. 使用 部署好了以后在浏览器地址输入:`https://:8024` 可访问 SmartStrm 服务。 输入 docker-compose 中配置的用户名跟密码后进入详情页。 > SmartStrm 存储管理里支持夸克网盘、115网盘、123网盘以及天翼网盘,且对直链获取有一些针对性优化,如果像作者一样需要用到 TaoSync 进行定时备份文件到网盘上,或者有不支持的网盘,比如作者的迅雷云盘也可使用 Openlist 进行挂载。(建议没有特殊需求的话,一个工具即可解决,避免耦合) 下面使用夸克网盘进行演示,驱动选择夸克网盘,填入 Cookie,其他按默认的填写就可以了。 **Cookie 获取方式参考**:[夸克网盘 / TV / Open 获取Cookie](https://doc.oplist.org/guide/drivers/quark) 点击完成后就可以在列表中看到夸克网盘的具体情况。 点击 **任务管理** - **添加任务** - 输入任务名称 - 使用存储选择添加的夸克网盘 - 扫描路径选择你夸克网盘的多媒体文件夹 - 编辑执行时间(`0 3 * * *`) 这个执行时间看个人需要,不建议太频繁调取(作者设置的每天凌晨 3 点跑一次)。 点击运行按钮后,可查看日志。 ### 关联 Openlist 如有其他网盘需求,可以关联 Openlist。 点击 **存储管理** - **添加存储**(OpenList 可以在绿联的应用中心下载,详细教程官方知识库有教程:[OpenList功能介绍与使用教程](https://support.ugnas.com/knowledgecenter/?ori=1#/detail/eyJjb2RlIjoiMSYmNjgifQ==)) **Token 获取**:OpenList 管理后台 - 设置 - 其他 - 令牌 需要先在 Openlist 里面绑定自己的网盘。 点击 **存储浏览** 检查 openlist 是否挂载成功,如显示网盘目录即代表挂载成功,点击右上角新建任务,创建任务。 编辑任务名称、执行时间,这边定时任务时间作者设置的 30 分钟执行一次:`*/30 * * * *`(时间看个人而定)。 点击保存,返回任务管理,可以点击运行按钮手动运行。 返回文件管理里面的 Docker 里面的 SmartStrm 里面的 strm 文件夹,确认是否创建成功。 如果创建成功,下面可以在 **影视中心** - **设置** - **媒体库** - **新建媒体库** - **应用**。 等待扫描完成即可在媒体库看到对应的刮削了。 目前绿联影视中心定时扫描只支持每天运行一次(后期应该会改)。 ## 4. 进阶使用 ### 302 直链播放 (Pro) 这个应该是你们需要的,我看了一下价格还算合适,有需要的可以试一下。302 代理可以搭配 Emby 或者 Jellyfin,官方应用中心有 Jellyfin 的安装,点击安装即可。 * 官方 Jellyfin 文档:[Jellyfin快速入门指南](https://support.ugnas.com/knowledgecenter/#/detail/eyJpZCI6MTg0MCwidHlwZSI6InRhZzAwMiIsImxhbmd1YWdlIjoiemgtQ04iLCJjbGllbnRUeXBlIjoiUEMiLCJhcnRpY2xlSW5mb0lkIjo1OTIsImFydGljbGVWZXJzaW9uIjoiIiwicGF0aENvZGUiOiIifQ==) * 官方 Emby 文档:[在绿联 NAS 上搭建 Emby 流媒体服务](https://support.ugnas.com/knowledgecenter/#/detail/eyJjb2RlIjoiMiYmMzYxIn0=) 作者用 Emby 举例: ### Docker Compose 安装部署 Emby ```yaml services: emby: image: amilys/embyserver:latest container_name: emby restart: always ports: - "8096:8096" volumes: - ./config:/config - /volume3/Docker/SmartStrm/strm:/strm #这个是你的strm的刮削地址 environment: - TZ=Asia/Shanghai - UID=0 - GID=0 - GIDLIST=0 devices: - /dev/dri:/dev/dri ``` 点击 `http://宿主机IP:8096` 访问 Emby,选择语言,创建用户。 ### SmartStrm 设置 **1)开启 302 代理** * 系统设置 → 302 代理 * 服务端口:8097 * 媒体服务器地址:`http://192.168.x.x:8096` 这里填 emby 的地址 * 需要Emby外部播放器按钮可打开 **2)Emby 设置** * Emby 后台 → 媒体库 → 添加 * 类型(电影/电视剧/音乐) * 文件夹路径:容器内 `/strm/任务名` * 保存并扫描刮削 保存完成后就下一步下一步就 OK 了。 下面配置客户端播放,作者用的爆米花实现(爆米花打钱!)。 > 302 也不是所有人都需要的,看个人需求。 **12.29 更新**:绿联影视中心也是支持 302 的!!!不用去搞 emby 了好像。 *** **项目地址**:[Cp0204 / SmartStrm](https://github.com/Cp0204/SmartStrm) 其他高阶玩法看作者文档。 --- --- url: /tutorials/deploy-emby-cloudsaver-qas-integration.md --- # SmartStrm 一站式 Emby 302 夸克直链播放 > 原链接:https://linux.do/t/topic/924963 > > 作者:Jochen(LINUX DO) 项目地址:[GitHub - Cp0204/SmartStrm](https://github.com/Cp0204/SmartStrm) 夸克网盘的 88VIP 服务对个人用户非常方便,资源丰富,论坛上也有许多大佬分享优质内容。然而,目前挂载夸克的方式通常需要通过本地服务器,完全达不到 88VIP 的速度,尤其是在外网(公网或组网)观看时,体验还要受到宽带上行速度的限制,影响观看体验。相比之下,**@Cp0204** 大佬的 SmartStrm 可以实现 302 夸克直链播放,即服务器只负责转发(重定向)到夸克网盘的真实资源链接,而不是自己传输数据,不仅提供流畅的观看体验,还减轻了本地服务器和宽带的压力,下面以 fnOS 为例主要介绍下 SmartStrm 和 Emby 的安装和配置。 ## 一、环境与目标 * 环境:飞牛 FNOS(Docker 环境)、Emby * 目标:部署 SmartStrm/Emby → 配 302 代理、STRM 规则、存储与任务 → Emby 播放 ## 二、目录准备(示例路径) * SmartStrm 目录:`/vol1/1000/docker/SmartStrm`(首次启动自动生成 `config/ logs/ strm/`) * Emby 配置:`/vol1/1000/docker/emby/config` * 关键映射:`/vol1/1000/docker/SmartStrm/strm` → Emby 容器内 `/strm` ## 三、部署 Docker ### 1)SmartStrm(host 网络,端口默认 8024) ```yaml name: smartstrm services: smartstrm: image: cp0204/smartstrm:latest container_name: smartstrm restart: always network_mode: host volumes: - ./config:/app/config - ./logs:/app/logs - ./strm:/strm environment: - PORT=8024 - ADMIN_USERNAME=自定义账号 - ADMIN_PASSWORD=自定义密码 # - LICENSE= ``` ### 2)Emby(映射 SmartStrm 的 `strm` 到 `/strm`) 需要把 SmartStrm 的 strm 映射到 emby: ```yaml services: emby: image: amilys/embyserver:latest container_name: emby restart: always ports: - "8096:8096" volumes: - /vol1/1000/docker/emby/config:/config - /vol1/1000/docker/SmartStrm/strm:/strm environment: - TZ=Asia/Shanghai - UID=0 - GID=0 - GIDLIST=0 devices: - /dev/dri:/dev/dri ``` ### 3)启动与访问 * 飞牛可视化点击部署 * SmartStrm:`http://宿主机IP:8024` * Emby:`http://宿主机IP:8096` ## 四、SmartStrm 设置 ### 1)开启 302 代理 * 系统设置 → 302 代理 * 服务端口:`8097` * 媒体服务器地址:`http://192.168.x.x:8096` 这里填 emby 的地址 * 需要 emby 外部播放器按钮可打开 ### 2)配置 STRM 规则 这里**默认即可**: * 系统设置 → STRM 设置 * 媒体后缀:`mp4,mkv,mov,avi` * 大小阈值:`>= 20 MB` * 复制到本地:`nfo,ass,srt,jpg,png` * 生成根目录:`/strm` * 勾选"对 STRM 进行 URL 编码" * SmartStrm 地址:`http://宿主机IP:8024` ### 3)添加存储(夸克) * 存储管理 → 添加存储 * 驱动:夸克网盘 * Cookie:浏览器登录后 F12 复制整段 Cookie 粘贴 * STRM 模式:智能回落(Pro) ## 五、创建任务并生成 STRM ### 1)任务管理 → +添加任务 * 存储:选择 quark * 路径:选择需要同步的文件夹(如 `/来自:分享/电影`、`/来自:分享/电视剧` 等) * 定时:`0 0 * * *`(每天 00:00),或手动"运行" ### 2)生成位置 * 容器内:`/strm/任务名` * 宿主机对应:`/vol1/1000/docker/SmartStrm/strm/任务名` ## 六、配置 Emby 媒体库 * Emby 后台 → 媒体库 → 添加 * 类型(电影/电视剧/音乐) * 文件夹路径:容器内 `/strm/任务名` * 保存并扫描刮削 **排查**:如库为空,确认已生成 `.strm`、路径映射一致、大小阈值不致过滤。 ## 七、播放验证 * Emby 需要打开代理后的地址:`http://宿主机IP:8097` * 我是把 emby 添加到 alist-tvbox 后,用影视 app 观看的,虽然少了很多 emby 的功能,但是可以免费跳过片头片尾 * 4K 拖动进度条秒播 * 查看视频链接,是 SmartStrm 的 ## 八、高级操作 ### 1. Quark-Auto-Save 自动转存资源并 Emby 入库 Quark-Auto-Save 是一个强大的自动化工具,可以实现资源的自动转存和 Emby 入库,大大简化了资源管理流程,追番神器! #### SmartStrm 插件配置 * webhook:`http://192.168.x.x:8024/webhook/d74dc...` * strmtask:`国外动画,电视剧集,国漫等`(对应 SmartStrm 的任务名称) * xlist\_path\_fix:`不用 alist 或者 openlist 这里不用填` #### Emby 插件配置 * url:`http://192.168.x.x:8096` * token:`88e7b11df00c47bd91...`(Emby API Token) ### 2. Cloud Saver 手动转存资源并 Emby 入库(手动推送) 适用场景:临时/单次保存分享资源,保存后立即触发 SmartStrm 生成 STRM,并立刻让 Emby 入库,无需等待自动任务。 #### 1)扩展 → 新建自定义推送(Webhook) * Cloud Saver 侧边栏 → 扩展 → "+ 新建自定义推送" * 接口地址(SmartStrm Webhook):`http://192.168.x.x:8024/webhook/你的WebhookToken` * 请求类型:POST * 请求体格式:JSON * 触发延迟时间(秒):1 * 字段(新增三项): * event:`cs_strm` * savepath:`/{savePath}/{shareTitle}` * strmtask:`电影,电视剧,国漫,国外动画` * 保存后启用该推送卡片。 #### 2)在资源卡片发起"保存后推送" * 进入 Cloud Saver 资源列表,点选要保存的条目。 * 在弹出的"选择保存目录"窗口中: * 选择网盘保存路径(如:`/根目录/来自:分享/电影`)。 * 右下角选择"保存后执行推送 → 夸克网盘"(自定义名称)。 * 点击"保存"开始转存并等待推送执行。 --- --- url: /settings/strm.md --- # STRM 设置 在 “**系统设置**->**STRM 设置**” 中,你可以定义 `.strm` 生成的全局行为。 ## 扫描设置 * **媒体文件后缀**:自定义哪些文件被识别为媒体,如 `mkv,mp4,mov` ,这些文件将生成 STRM * **媒体文件大小阈值**:仅对大于该 MB 数的文件生成 STRM,用以过滤掉过小的文件(如样片、短视频) * **复制到本地的文件后缀**:这些文件将直接复制(下载)到生成目录,如 `jpg,png,nfo,srt` 等刮削文件 ## 生成设置 ### 生成根目录 * 容器内固定为 `/strm` ,一般不用更改 * 飞牛应用将跟随应用设置中的设定,注意为 SmartStrm 提供读写权限 ### 基础地址 这是写入 `.strm` 文件中的前缀 URL,用以访问 SmartStrm 的直链解析服务。 * 它必须能被你的 Emby/Jellyfin 服务器访问到。 * 通常填写为 `http://宿主机IP或域名:SmartStrm管理端口`。 ### URL 编码 对 `.strm` 内的 URL 进行编码。这可以增强对中文、特殊符号路径的兼容性。 ### 云盘类存储生成类型 * **文件编号模式 (推荐)**:使用网盘的文件 ID (File ID) 作为索引。优点是请求播放时可以减少至一个请求,略微提升播放速度。 * **路径兼容模式**:使用完整的文件路径,播放时内部可能有多个请求。 ### 安全签名 如果你将 SmartStrm 服务器暴露在公网,开启此功能可以防止恶意用户猜解你的文件路径。 * 外网访问时只有携带正确签名的请求才会被处理 * 启用或更换密钥后,云盘类 `.strm` 文件需要重新生成 * 当基础地址是内网IP并使用 **302代理** 时,无论签名开启或密钥更换,内部免签放行 --- --- url: /home.md --- > \[!TIP] 💡 提示 > 你可以使用 AI 智能体来辅助了解本项目。 > > ``` > 阅读 SmartStrm 文档,指引我快速上手 > https://smartstrm.github.io/llms-full.txt > ``` --- --- url: /settings/webhook.md --- # Webhook SmartStrm 强大的 Webhook 功能可以让你摆脱“定时扫描”的被动,实现“存即触发,秒级入库”,以及实现“Emby 删除同步”的闭环操作。 ## 地址获取 在 **“系统设置**->**Webhook”** 中,你可以看到一个唯一的 URL,例如: `http://yourip:8024/webhook/abcdef123456` 该链接含 token 信息,用于验证身份,请勿泄露;如不慎泄露,你可以点击右侧按钮进行 **重置**,重置后将使所有已在其他地方配置的 Webhook 失效。 ## 常用联动方案 ### Emby 删除同步 实现“在 Emby 中删除影片,同步删除网盘文件”的闭环操作。 > \[!TIP] 实现前提 > SmartStrm 的 STRM 目录需挂载到 Emby 容器内的 `/strm` 路径。 > > 如果你无法改变 Emby 的 STRM 目录(例如群晖套件版)的解决办法:手动修改 SmartStrm 的配置文件 `config.yaml` ,找到 `strm_in_emby:` ,修改为 SmartStrm 的 STRM 目录在 Emby 中的路径,重启 SmartStrm 。 在 **“系统设置->Webhook->Emby 删除同步设置”** 中启用该功能,默认关闭。 在 **“Emby->后台管理->通知”** 中设置: * **网址**: SmartStrm Webhook 地址 * **请求内容类型**: application/json * **Events**: 勾选 `媒体库-媒体删除` ### 联动 Quark-Auto-Save QAS 在自动转存夸克资源后,可以通知 SmartStrm 立即生成 STRM。在 QAS 插件中设置: * **webhook**: SmartStrm Webhook 地址 * **strmtask**: 关联的 SmartStrm 任务名,支持多个如 `tv,movie` * **xlist\_path\_fix**: 可选 * 如果 SS 使用的是夸克驱动,无需填写 * 如果 SS 使用的是 OpenList 驱动挂载夸克,需填写路径映射。例如把夸克根目录 `/` 挂载在 OpenList 的 `/quark` 下,则填写 `/quark:/` * SmartStrm 会使 OpenList 强制刷新目录,无需再用 alist 插件刷新 ### 联动 CloudSaver 支持夸克、天翼、115、123网盘在 CloudSaver 转存后触发生成 STRM,基本和 QAS 参数的逻辑相同,但需增加 `event` `savepath` 和调整 `xlist_path_fix` 参数。 * **webhook**: SmartStrm Webhook 地址,从 `系统设置 - Webhook` 中获取 * **strmtask**: 相关的 SmartStrm 任务名,支持多个如 `tv,movie` * **event**: `cs_strm` * **savepath**: `/{savePath}` * **xlist\_path\_fix**: 可选 * 任务使用夸克网盘、115 开放平台、123云盘开放平台、天翼云盘驱动时无须填写 * 使用 OpenList 驱动时需填写,夸克、115、123网盘同 QAS,天翼云盘 `/你挂载在oplist的路径:/全部文件` ,只改动 : 前面部分,后面 /全部文件 保持不变。 * **delay**: `0` 可选,延迟执行的秒数 ![cs\_189\_set](img/cs_189_set.png) ![cs\_quark\_set](img/cs_quark_set.png) ### 网页转存自动触发任务 在网页转存资源成功时,向 SmartStrm 推送当前的网盘类型和保存路径,自动匹配并触发任务。 **使用指引**: 1. 安装 [油猴/暴力猴/篡改猴](https://greasyfork.org/zh-CN/help/installing-user-scripts) 浏览器扩展 2. 安装脚本:[SmartStrm助手 - 转存触发任务](https://greasyfork.org/zh-CN/scripts/549634) 3. 打开任意分享页面,按提示填入 SmartStrm Webhook 地址 4. 如后续需要修改 Webhook 地址,可从油猴扩展菜单中呼出 ### CloudDrive2 文件变更触发任务 在 **系统设置->Webhook->CloudDrive2 文件变更触发设置** 中启用功能,默认关闭。 并设置 **存储映射** ,有两种联动方式: 1. **两边各添加同一网盘的同一账号(推荐)**:支持 115、天翼云盘,填写格式为 `A=A1,B=B1,C=C1` 表示把 CD2 的 A 存储映射到 SS 的 A1 存储。 2. **利用 CD2 的 WebDAV 功能**:把 CD2 添加为 WebDAV 存储,该方式文件数据经过 CD2。 1. 如添加 CD2 名为 `115open` 的存储到 SS 的 `115openA` ,WebDAV 地址 `http://yoururl:19798/dav/115open` ,映射填写格式同上如 `115open=115openA`。 2. 也可以加整个 CD2 根目录,假如在 SS 名为 `CD2_DAV` 存储,填写格式为 `/=CD2_DAV`;但有以上指定存储映射时优先用指定的映射。 > \[!TIP] 配置实例 > > 使用 115 网盘,在 CD2 的名称是 `115open` ,在 SS 的名称是 `open115_Cp0204` > > 在 SS 中填写存储映射 `115open=open115_Cp0204` ,创建路径为 `/影视库/电影` 的任务 > > 当 CD2 中检测到 `/115open/影视库/电影/影名 (2026)` 变更时,SS 会根据映射,自动找到要触发的任务。 CD2 中的配置,将以下内容复制到 CD2 的 Webhook 配置中,文件名自定义。 ```ini [global_params] # 此处 base_url修改为你的 SmartStrm Webhook 地址,其他保持不变 base_url = "http://192.168.8.8:8024/webhook/9df1236ad884a83" enabled = true [global_params.default_headers] content-type = "application/json" user-agent = "clouddrive2/{version}" [file_system_watcher] url = "{base_url}/file_notify?device_name={device_name}&user_name={user_name}" method = "POST" enabled = true body = ''' { "device_name": "{device_name}", "user_name": "{user_name}", "version": "{version}", "event_category": "{event_category}", "event_name": "{event_name}", "event_time": "{event_time}", "send_time": "{send_time}", "data": [ { "action": "{action}", "is_dir": "{is_dir}", "source_file": "{source_file}", "destination_file": "{destination_file}" } ] } ''' ``` ### MoviePilot 整理完成触发任务 **使用场景**:影视资源和 MoviePilot 在远程大盘主机上,而 SS 、Emby 在本地轻主机上。 在 **系统设置->Webhook->MoviePilot 整理完成触发设置** 中启用功能,默认关闭。 并设置 **存储映射** :如 `/media/movie=OPLIST/movie,/media/tv=OPLIST/tv` ,表示把 MP 的 `/media/movie` 路径映射到 SS 名为 `OPLIST` 的存储的 `/movie` 目录。 > \[!TIP] 配置实例 > > 在远程主机 MP 容器内电影路径是 `/media/movie` ,在 OpenList 中把该目录挂载到 `/movie` > > 在本地部署 SS ,添加该远程 OpenList 存储,名为 `OPLIST` ,并创建路径为 `/movie` 的任务 > > 填写存储映射 `/media/movie=OPLIST/movie` > > 当 MP 整理完成 `/media/movie/影名 (2026)` 时,SS 会根据映射,自动找到要触发的任务。 在 MoviePilot 的 **插件->Webhook**(没有就在插件市场中搜,作者是 jxxghp 的)中设置: * **请求方式**:POST * **webhook地址**:SmartStrm Webhook 地址 ## 开发者接口 SmartStrm 还支持通过自定义 POST 请求触发特定任务,供开发者调用: ```bash curl --request POST \ --url http://127.0.0.1:8024/webhook/9dfb5769ad483e83 \ --header 'Content-Type: application/json' \ --data '{ "event": "a_task", "task": { "name": "test", "storage_path": "/drive/quark/test", "dir_time_check": false, "incremental": false, "keep_local_asset": true, "plugins": {} }, "delay": 0, "debounce": 0, "strm": { "media_ext": [ "mp4", "mkv" ], "url_encode": true, "media_size": 100, "copy_ext": [ "srt", "ass" ] } }' ``` | 参数 | 说明 | | :---------------------- | :----------------------------------- | | `event` | 固定为 `a_task` | | `task.name` | 已存在的任务名,仅支持单个 | | `task.storage_path` | 可选,填写时必须为任务的路径或子路径 | | `task.dir_time_check` | 可选,启用目录时间检查 | | `task.incremental` | 可选,启用增量生成,反之同步生成 | | `task.keep_local_asset` | 可选,同步生成时保留本地刮削 | | `task.plugins` | 可选,任务调用插件的参数字典 | | `delay` | 可选,收到 hook 后延迟执行的秒数 | | `debounce` | 可选,同一任务同一路径任务防抖秒数 | | `strm` | 可选,STRM 设置字典 | 可选参数未提供时,默认按系统和任务设置中的值执行。 **最小化请求示例:** ```bash curl --request POST \ --url http://127.0.0.1:8024/webhook/9dfb5769ad483e83 \ --header 'Content-Type: application/json' \ --data '{ "event": "a_task", "task": { "name": "movie_task" } }' ``` ### 在线测试 (Playground) --- --- url: /tutorials/oneclick-strm-cloud-to-media-lib.md --- # 一键生成 STRM 文件,SmartStrm 让你的网盘秒变媒体库! > 原链接:https://mp.weixin.qq.com/s/GhXHx-hqqOHoSUyJ3YnvwQ > > 作者:肖昶(微信公众号:纳思稻壳) 本项目大部分功能免费用,但 `CloudDrive2 文件变更通知实时触发任务` 和 `Emby Jellyfin 302 直链播放` 需要购买授权才可用。部署前查看免费功能是否满足需求。本项目需要影视软件支持 Strm。例如:绿联的影视中心,极空间的极影视,Emby,Jellyfin 等。`飞牛影视` 暂不支持。 ## SmartStrm 是什么? **SmartStrm** 是一个媒体库 STRM 文件生成工具。和 Emby 优雅配合,媒体资源丝滑入库,支持 302 直链播放,支持同步删除。配合 Quark-Auto-Save, CloudSaver, Emby 力求即存即看。 ## ✨ 特性 * ⚙️ 自动生成 .strm 文件或软链接,供媒体服务器识别 * 🚀 支持 302(Pro 版本支持)直链播放,绕过本地带宽瓶颈 * 🔄 支持远程删除同步,保持本地与云端一致 * 🔔 支持 Emby API 自动刷新媒体库 * 🗂️ 支持字幕、海报、NFO 元数据自动整理 * 🌐 Web UI 管理任务,支持 Docker 一键部署 ## 🐳 部署指南 ### 方案一:Docker 单容器 ```bash # 一键启动(请把 admin123 改成你的密码) docker run -d \ --name smartstrm \ --restart unless-stopped \ --network host \ -v $(pwd)/smartstrm/config:/app/config \ # 挂载配置目录 -v $(pwd)/smartstrm/logs:/app/logs \ # 挂载日志目录,可选 -v $(pwd)/smartstrm/strm:/strm \ # 挂载 STRM 生成目录 -e PORT=8024 \ # 管理端口,可选 -e ADMIN_USERNAME=admin \ # 管理用户名 -e ADMIN_PASSWORD=admin123 \ # 管理用户密码 -e LICENSE= \ # 许可证字符串(如有) cp0204/smartstrm:latest ``` **参数说明**: * `ADMIN_PASSWORD=admin123`:`admin123` 改成你的强密码 * `LICENSE`:pro 版本的许可证,有就填。没有保持不动 * `$(pwd)`:当前终端所在目录,例如现在终端在 `/home/it` 这里的 `$(pwd)` 就代表这个目录 ### 方案二:Docker Compose `docker-compose.yml` 文件: ```yaml name: smartstrm services: smartstrm: image: cp0204/smartstrm:latest container_name: smartstrm restart: unless-stopped network_mode: host volumes: - ./config:/app/config # 挂载配置目录 - ./logs:/app/logs # 挂载日志目录,可选 - ./strm:/strm # 挂载 STRM 生成目录 environment: - PORT=8024 # 管理端口,可选 - ADMIN_USERNAME=admin # 管理用户名 - ADMIN_PASSWORD=admin123 # 管理用户密码 - LICENSE= # 许可证字符串(如有) ``` **参数说明**: * `ADMIN_PASSWORD=admin123`:`admin123` 改成你的强密码 * `LICENSE`:pro 版本的许可证,有就填。没有保持不动 ## 📖 使用 ### 基本步骤 1. **访问管理后台** * 访问 `http://NASIP:8024` 打开管理后台 2. **登录** * 使用你设置的用户名和密码登录进入管理后台 * 如未修改用户名和密码,默认为:`admin/admin123` 3. **添加存储** * 驱动支持以下服务和网盘,可以根据自己需求选择 4. **添加任务** * 创建任务以定时生成 STRM 文件 5. **确认生成 strm** * 打开部署映射的设备目录,例如:`docker 映射目录/smartstrm/strm/电影` * 现在就可以使用支持 strm 的播放器进行播放,无需把整个影视文件下载到本地再进行播放 ### 其它功能 * **存储浏览**:可以查看网盘的内容 * **系统设置**:可以进行 `STRM 设置`、`重命名设置`、`Webhook` 等设置 ## 总结 SmartStrm 支持 Emby/Jellyfin 播放、302 直链代理、任务管理、Webhook 联动等功能。它强调"即存即播",支持增量同步、远程删除、媒体库刷新。但有些功能需要付费使用。 **如果你追求**: * 自动化、联动性强、功能全面 → 推荐使用本项目 * 命名规范、剧集整理、手动控制 → 更推荐 OpenList-strm *** **项目地址**:[GitHub - Cp0204/SmartStrm](https://github.com/Cp0204/SmartStrm) --- --- url: /tutorials/deploy-to-play-ugreen-demo.md --- # 从部署到播放:smartstrm + 绿联云影视 实战演示 > 原链接:https://mp.weixin.qq.com/s/b7uHKTKcrtu-tYnA51DktA > > 作者:云上小牛(微信公众号) 大家好,今天给大家介绍一款我使用了一段时间后,认为 **非常轻量且实用** 的 STRM 生成项目 —— **smartstrm**,作者是 **cp0204**。 在此之前,我陆续使用过 **CMS、MP、OpenList** 等多款 STRM 生成项目,它们整体都很优秀,但或多或少都不够"纯粹"。这些项目往往集成了较多额外功能,虽然功能全面,但在实际使用中容易给人一种略显臃肿的感觉。 其中 **CMS** 已经算是比较克制和纯粹的方案了,基本覆盖了「转存 → 整理 → STRM 生成」的一条龙流程。不过它支持的网盘类型相对有限,并且需要付费(这里并无贬义,我本人也是 CMS 的重度用户)。 也正因如此,当我发现 **smartstrm** 这个项目时,第一感觉就是:**它做得非常精细,也非常克制**,真正专注于 STRM 生成本身,整体体验十分清爽。 > 友情提醒:**smartstrm 同样包含付费功能**,不过是否付费完全取决于个人需求。就我个人的使用体验而言,**免费版本已经可以满足大多数日常使用场景(绿联影视+strm)**,按需选择即可。 ## Docker 部署 本次演示将通过 **绿联 NAS 的 Docker 功能** 进行。 点击【Docker】→【项目】→【创建】,按照图示填写好 `docker-compose` 配置。在此之前请先提前创建好相关文件夹。**授权码可暂时不填写**,后续也可以在 Web 页面登录后再进行填写。 ```yaml services: smartstrm: image: cp0204/smartstrm:latest container_name: smartstrm restart: unless-stopped network_mode: host volumes: - /volume1/docker/smartstrm/config:/app/config # 挂载配置目录 - /volume1/docker/smartstrm/logs:/app/logs # 挂载日志目录,可选 - /volume1/strm:/strm # 挂载 STRM 生成目录 environment: - PORT=8024 - ADMIN_USERNAME=admin # 管理用户名 - ADMIN_PASSWORD=admin123 # 管理用户密码 - LICENSE= # 许可证字符串(如有) ``` ## 简单配置 随后在浏览器中访问 `http://[NAS IP]:8024`,并使用 `docker-compose` 配置中填写的账号和密码登录系统。 登录之后可以先随便点点,简单了解一下目前都有哪些功能。接下来我将直接演示,**如何通过夸克网盘,在绿联云影视中以 STRM 的形式播放电影**。 回到 **smartstrm**,点击【创建存储】,其余配置项按下图示例填写即可。 创建完成后,在【存储浏览】中即可浏览到网盘内的文件。 接下来在【任务管理】中创建新任务,相关参数可根据自身需求进行填写。 **需要特别注意的是**:如果关闭了【增量模式】,一定要确保本地 `/strm/子目录` **为空**。例如我这里使用的是 `/strm/test`,就必须提前确认该目录下没有任何文件;否则在任务执行时,一旦程序检测到网盘中不存在对应文件,**就会直接删除本地 /strm/test 下的文件**。 任务创建完成后,可手动点击【运行】,并在此处查看执行日志。 ## 播放测试 接下来进入测试环节,新建一个媒体库,并添加刚刚生成的 STRM 目录。 媒体库已正常完成刮削。 实测 PC 端局域网 302 播放正常,走直链方式,未消耗 NAS 上传流量。 手机客户端在公网环境下 **302 播放成功**,同样 **未占用 NAS 上传带宽**。 ## 写在最后 就我目前的使用体验来看,**smartstrm 是我用过最简单、也最纯粹的 STRM 生成工具之一**。部署和使用流程都非常直观,没有多余负担,上手成本也很低。 如果你有更进阶的需求,比如 **播放器本身不支持 302 直链播放**,也可以借助 **smartstrm 的代理功能** 来实现。这部分功能需要购买 **Pro 版本**,并且可以用于 **Emby、飞牛影视** 等主流媒体服务,按需选择即可。 此外,smartstrm 还提供了一些插件功能,后续也会持续开发和完善,值得持续关注。 不过如果只是配合 **绿联云影视** 使用,其实 **完全不需要购买 Pro 版本**,免费功能已经足够满足日常需求。当然,依旧要感谢 **smartstrm 项目作者 cp0204** 的付出与贡献。 --- --- url: /module/tasks.md --- # 任务管理 任务是 SmartStrm 的执行核心,它实现网盘特定目录到本地 `.strm` 文件目录的映射。 我们建议为每个大类(如电影、剧集、动漫)创建独立的任务,这样可以分别执行,同时也能更好地细分管理。 ## 配置任务 ### 基础配置 * **任务名称**:唯一标识,建议使用英文简写,如 `movie` * 生成的 `.strm` 文件将存放在 `/strm/任务名` 目录下 * **使用存储**:选择在 `存储管理` 中添加的可用存储 * **扫描路径**:存储中媒体文件所在的路径,光标在输入框停留片刻可提供目录索引 ### 执行时间 * 使用 **Crontab 表达式** 设定自动执行的频率(分 时 日 月 周) * **随机按钮**:点击骰子图标可以生成一个半夜运行的随机时间点,**建议多个任务错开时间以减轻同时并非的负载** > \[!TIP] Crontab > CRON 表达式是一个字符串,包含五个到七个由空格分隔的字段(每种软件不一样),表示一组时间,通常作为执行某个程序的时间表。可视化工具:[crontab执行时间计算](https://tool.lu/crontab), [crontab.guru](https://crontab.guru) ``` 示例: * * * * * - - - - - | | | | +----- 星期 (0-7,0和7都代表周日) | | | +---------- 月份 (1-12) | | +--------------- 日期 (1-31) | +-------------------- 小时 (0-23) +------------------------- 分钟 (0-59) ``` ### 执行选项 * **目录时间检查**:通过对比文件夹修改时间来跳过未变动的目录,极大提升扫描效率 * 开启后仅当远程目录修改时间>本地目录时才扫描子目录;如文件更新后仍跳过扫描,请尝试取消本选项 * **增量生成模式** * 使用增量生成时,仅新增文件,不清理远端存储不存在的文件 * 使用同步生成时,文件跟随远端,清理远端已不存在的文件 * 同步模式下提供 **保留本地刮削的文件** 选项,可避免清理 Emby 入库时置入的刮削文件,基于常见命名规则判断,并非完全准确 * **实时监听文件变更**:在使用 "本地文件系统" 驱动时,可以开启该选项,基于文件系统变更事件实时生成对应的 `.strm` 文件,无需等待任务执行 ## 工具箱 在任务编辑页,你可以点击 **“工具”** 按钮调出进阶操作: ### STRM 内容替换 当你更换了公网域名、内网 IP 或端口时,无需重新生成数万个文件,直接使用此工具一键批量替换已生成的 `.strm` 内部 URL 内容。 ### 全量覆写 强制忽略本地已存在的文件,重新从网盘拉取信息生成。 ### 一键清除 删除该任务目录下所有的生成文件,通常用于重置任务,或修改配置后重新生成。 ## 任务插件 你可以为特定任务单独开启插件,比如让 `剧集` 任务开启 **“非法文件名修正”**,而让 `电影` 任务开启 **“飞牛刷新插件”**。这让你的任务能够高度定制化。 --- --- url: /tutorials/smartstrm-thunder-mt-multithread-cache.md --- # 使用 SmartStrm + Thunder-MT,普通白金会员(VIP)也可以在家流畅看高码率电影 > 原链接:https://club.fnnas.com/forum.php?mod=viewthread\&tid=67721 > > 作者:Agoni\_JoWZ3(飞牛社区用户) 自从有了 AI,作为一个不会编程的伸手党,我的很多想法也可以得到实现。 ———— *“天才程序员”的诞生* 在最新的 **SmartStrm** 更新中,SS 支持挂载 **迅雷云盘** 了,挂载选项有原画优先/速度优先可以选择,但是速度优先的情况下,画质被压缩的有点厉害,原画的话,因为迅雷云盘非 SVIP 单线程下载仅支持 3M/s,高于 24Mbps 码率的电影/电视剧播放起来很卡。通过高强度冲浪,我在 https://linux.do/t/topic/120270 找到了解决问题的方法。在 AI 的辅助下构建了“**Thunder-MT**”这个项目,他的作用是将 SS 获取的直链通过多线程缓存后再发送到播放端,达到流畅播放的作用。所以这个项目 **只能用于你部署的服务器在本地**,或者你的服务器 **上行带宽足够大** 的情况下才可以很好的运行。 安装 SS,飞牛用户直接在应用商店就可以下载安装,简单无脑。 通过 docker-compose 部署 **Thunder-MT**: ```yaml services: thunder-mt: container_name: thunder-mt image: ghcr.io/sisheng36/thunder-mt:latest network_mode: host # host 网络模式下 ports 无效,服务直接监听宿主机 8010 environment: - TZ=Asia/Shanghai - TRUNK=120M # 单次 Range 返回量 / 缓冲窗口(最大缓存) - SPLIT=3M # 并行下载分块大小 - FIRST_CHUNK=2M # 无 Range 请求首块大小(优化起播速度) - CONNS=3 # 并行 goroutine 数(线程) - HOST=0.0.0.0 - PORT=8010 - HEADERS={} # 请求直链时附加的 HTTP 头,JSON 格式 - ALLOW_HOSTS=127.0.0.1 # 允许代理的目标 host 白名单(逗号分隔),留空则不限 volumes: - ./data:/data restart: unless-stopped healthcheck: test: ["CMD", "wget", "-qO-", "http://127.0.0.1:8010/health"] interval: 30s timeout: 5s retries: 3 start_period: 10s logging: driver: json-file options: max-size: 10m max-file: 3m ``` 部署完成后,在 SS 的储存管理中,修改迅雷云盘为 *原画优先*,在任务管理中,选择迅雷云盘的任务,点击任务管理“**编辑任务**”界面的“**插件**”(**不要** 直接点击“插件管理——STRM 内容替换”进行修改,这是全局应用插件,你挂载的其他储存会受到波及),打开“STRM 内容替换”,并修改其中的配置,为原有的 strm 链接之前加入新的请求头 `http://127.0.0.1:8010/stream?url=`,具体设置应考虑到你自己的设置,SS 是 hosts 模式或是通过应用商店安装的才可以填 127.0.0.1,不能直接照抄。 ![STRM 内容替换配置](https://club.fnnas.com/data/attachment/forum/202607/15/101214iemgemtto7j7j3yg.png) 项目已经对神医、MediaInfoKepeer 插件的媒体信息提取做了优化,提取媒体信息时不会拉起多线程缓存。服务 http://ip:8010,可以看到最近通过此项目缓存加速的统计。此项目仅用于交流和学习。 ## 后记 昨日忽然听闻 GLM 大幅封禁中转站,我在用的中转站也下架了 GLM 的模型,真是唏嘘不已(以后只好用 GPT 老爷爷修炼焚决)。 ———— *陨落的天才* --- --- url: /help/about.md --- # 关于 ## 项目诞生背景 **SmartStrm** 最开始源自于 夸克自动转存 (QAS) 的一次 [PR 讨论](https://github.com/Cp0204/quark-auto-save/pull/65#issuecomment-2779488163),以及其他 STRM 项目自己用着处处不顺手(精准生成、速度快、方便调用)。 所以立项之初就决定了要和 QAS 能联动,后来也和 CloudSaver 作者一拍即合,基本做到这两个工具“搜索->转存->生成STRM->Emby入库->播放”全自动的工作流,这里有一个[演示视频](https://www.bilibili.com/video/BV1wtaAzCEBv)。 STRM 生成的基础功能免费,基于免费版本就可以实现用 STRM 方案播各主流云盘的资源,和 QAS、CS 联动转存即触发生成,个人认为一点已经可以媲美同类工具了。 除此之外,SmartStrm 的插件集成、Webhook 功能对自定义生成和开发者调用非常友好。 作为一个工具类软件,我希望它足够精巧和克制,而非大而全。就像一块积木,和其他积木一起拼在一起,在你的 NAS 中组合成你自己的自动化观影方案。 希望你能喜欢。 ## 物料 ### 应用名 `SmartStrm` > 两个S大写,并非强制但建议,这样我会比较欣慰。 > > 在群组交流中,有时也被简称为 `SS`。 ### 应用图标 #### \[svg, 256x256] ![icon](img/icon.svg) #### \[png, 512x512] ![icon](img/icon.png) ### Logo ![logo](img/logo.png) ## 法律条款 * [使用条款](/help/terms-of-service) * [隐私政策](/help/privacy-policy) * [开放源代码许可](/help/open-source-software-notice) --- --- url: /tutorials/cloudsaver-smartstrm-jellyfin-auto-transfer.md --- # 基于网盘的自动转存与 STRM 生成方案 CloudSaver + SmartStrm + Jellyfin 实现零本地存储播放 > 原链接:https://317520.xyz/post/wpzc > > 作者:Eric ## 方案概述 近年来硬盘价格持续走高,相比之下,各类网盘的性价比反而愈发凸显。 如果你不希望在本地存储大量影音文件,但又想在 Jellyfin 中实现流畅播放,那么 **STRM + 网盘直链** 的方案是一个非常理想的选择。 本文将分享一套完整的网盘转存系统方案,可以实现: * 资源一键转存到网盘 * 自动生成本地 `STRM` 文件 * Jellyfin 直接播放 * **几乎不占用本地存储空间** > 相关文档下载:[下载地址](https://pan.quark.cn/s/36cc354a3764) *** ## 一、方案整体架构说明 本方案主要由三个部分组成: 1. **CloudSaver**:负责资源搜索与一键转存,支持多个主流网盘,提供转存完成后的自动触发能力 2. **SmartSTRM**:将网盘中的资源自动映射为本地 `STRM` 文件,为 Jellyfin / Emby / Plex 提供本地媒体结构 3. **Jellyfin**:作为媒体服务器,直接播放 STRM 对应的网盘资源 整个流程中,**不需要本地存储真实视频文件**,仅生成体积极小的 STRM 文件。 *** ## 二、部署环境说明 本文演示环境为**飞牛系统(FnOS)**。如果使用其他 Linux / NAS 系统,Docker Compose 的部署方式基本一致。 本次需要部署两个 Docker 容器:**CloudSaver** 和 **SmartSTRM**。 *** ## 三、部署 SmartSTRM ### 1. 创建项目目录 建议为 Docker 项目统一建立一个主目录,方便后期管理。在该目录下为 SmartSTRM 创建独立子目录。 ### 2. 新建 Docker Compose 项目 在 Docker 管理界面中: 1. 新增 Compose 项目 2. 填写项目名称(如 `smartstrm`) 3. 选择刚才创建的目录路径 4. 粘贴 SmartSTRM 的 Compose 文件 ### 3. 修改配置参数 根据自己的实际情况修改以下内容: * **STRM 本地存储路径**(非常重要) * **端口号**(避免与其他服务冲突) * **访问用户名和密码** *** ## 四、部署 CloudSaver ### 1. 新建 CloudSaver 项目 部署方式与 SmartSTRM 类似。需要注意检查端口是否被占用,如果冲突修改为其他端口即可。 ### 2. 构建并访问 CloudSaver 构建完成后,通过浏览器访问 CloudSaver 页面。首次使用需要注册账号: > **管理员注册码:230713** *** ## 五、CloudSaver 基本配置 ### 1. 添加网盘支持 CloudSaver 支持多种网盘类型: * 115 网盘(Cookie 登录) * 夸克网盘(Cookie 登录) * 天翼云盘(账号登录) * 123 网盘(账号登录) ### 2. 获取夸克网盘 Cookie 1. 打开夸克网盘网页版并登录 2. 按 `F12` 打开开发者工具,切换到「网络」 3. 刷新页面,在第一个 `list` 请求中找到 `cookie` 4. 将完整 Cookie 内容复制并粘贴到 CloudSaver 配置中 ### 3. 导入搜索频道 在设置中找到**搜索频道**,支持批量导入,相关文件在视频简介中提供,导入时选择**增量更新**。 *** ## 六、配置 SmartSTRM ### 1. 添加存储(网盘) 1. 进入「存储管理」→「新增存储」 2. 名称可自定义(如:夸克) 3. 驱动类型选择对应网盘 4. 粘贴 Cookie 并保存 ### 2. 创建 STRM 生成任务 进入「任务管理」→ 新建任务: * **任务名称**:如 `电影` * **使用存储**:选择刚才添加的网盘 * **扫描路径**:网盘中电影所在目录 * **执行时间**:暂时保持默认 *** ## 七、CloudSaver 与 SmartSTRM 联动配置 ### 1. 新建自定义推送插件 在 CloudSaver 中: 1. 进入插件管理 → 新建自定义推送 2. 执行类型选择**转存后执行** 3. 云盘选择对应网盘 4. 保存 ### 2. 配置 Webhook 1. 在 SmartSTRM 设置中找到 **Webhook 地址** 2. 将地址复制到 CloudSaver 推送配置中 3. 触发延迟时间设置为 **3 秒**(转存完成后 3 秒触发 STRM 生成) 4. 添加自定义字段 5. 启用该推送规则 *** ## 八、完整流程测试 进行一次测试转存: 1. 在 CloudSaver 中选择资源,点击转存 2. 选择目标目录 3. 在"保存后执行推送"中选择对应网盘 转存成功后,CloudSaver 触发推送 → SmartSTRM 自动执行任务 → 本地生成 STRM 文件。 *** ## 九、Jellyfin 中的使用 ### 1. 添加媒体库 在 Jellyfin 中将 STRM 文件所在目录映射为媒体库,媒体类型按「电影 / 剧集」分别添加。媒体库扫描完成后即可看到影片条目,测试播放确认正常即可。 *** ## 十、总结 通过 **CloudSaver + SmartSTRM + Jellyfin** 这套方案,可以实现: * 几乎不占用本地存储 * 网盘资源自动转存 * STRM 文件自动生成 * 媒体库自动更新 如果你希望构建一个**低成本、高扩展性、适合长期使用的影音系统**,这套方案非常值得尝试。 --- --- url: /module/browser.md --- # 存储浏览 SmartStrm 提供了一个 **存储浏览** 模块,允许你直接在 Web 界面中预览远端文件,方便直观地创建任务。 ## 文件浏览器 在 **存储浏览** 标签页中,你可以: * **切换存储**:在页面左上方的下拉菜单中选择已添加的存储驱动 * **目录导航**:支持点击文件夹进入、上一级返回,或直接在地址栏输入路径 * **新建目录**:点击工具栏的「新建目录」按钮,在当前路径下创建新文件夹 * **基本操作**:右键点击文件或文件夹,可以进行 **重命名**、**删除** 或 **移动** 操作;右键媒体文件还可 **复制 STRM 地址**,快速获取该文件的播放链接 * **路径搜索**:在当前目录下快速过滤查找特定文件 ## 批量命名 内置了三种重命名模式,帮助你快速整理杂乱的网盘文件名,使其符合媒体库识别规范。 ### 1. 魔法变量 程序会自动尝试识别文件名中的标题、集数等信息。 * **命名模板**:你可以自定义命名格式,如 `S{season}E{episode}.{ext}` ### 2. 正则替换 利用正则表达式进行精准替换。 * **匹配**:输入正则表达式,如 `EP(\d+)` * **替换**:输入替换后的内容,如 `E$1` ### 3. 顺序命名 针对没有规律的文件名进行纯体力活重命名。 * **配置项**:前缀(如 `S01E`)、起始编号、补位宽度(如 `2` 表示 `01, 02...`)、后缀。 ## 影视识别 在文件浏览器中点击 **影视识别** 按钮,可以联动 TMDB API 对当前目录下的资源进行智能识别。 1. **选择类型**:电影、剧集或混合 2. **手动修正**:如果自动识别不准,可以手动输入名称或年份进行二次搜索 3. **海报预览**:实时展示识别到的影视海报、评分及简介 4. **一键重命名**:识别成功后,可以根据 TMDB 返回的各种元数据变量(如 `{tmdbid}`、`{episode_name}`)进行批量更名 > \[!TIP] 使用前提 > 此功能依赖于你在 “系统设置->影视识别” 中配置的 TMDB API 密钥,推荐配置网络代理以确保稳定访问。 --- --- url: /module/storage.md --- # 存储管理 SmartStrm 能够连接多种云端和本地存储。在正式开始创建生成任务前,你需要先在 **存储管理** 模块中配置好你的账号。 ## 配置流程 1. 点击 **添加存储**。 2. **存储名称**:起一个好记的别名(如 `myquark`),该名称将用于任务引用 3. **选择驱动**:根据你的网盘类型选择对应驱动 4. **鉴权信息**:根据网盘驱动的不同,通过 **扫码登录** 或 **Cookie** 等方式授权 > \[!TIP] 提示 > 建议存储配置保存后先点击 **测试** 按钮确认连接成功后再进行后续的任务配置 ## 支持的驱动一览 | 驱动名称 | 说明 | | :-------------------- | :----------------------------------------------------------------- | | **OpenList** | 可转接各类网盘、WebDAV、连接远程文件资源等 | | **WebDAV** | 兼容所有标准 WebDAV 协议,支持 123 VIP、可转接 CloudDrive2 | | **本地存储** | 将已挂载的文件、或本地文件再次映射为 .strm | | **夸克网盘** | 支持原画代理和转码直链,如需使用转码直链(302)需要抓取移动端请求URL | | **夸克网盘TV** | 支持扫码登录,但接口仅支持只读访问(浏览和下载) | | **115开放平台** | 通过开放平台API调用,合规使用官方接口,建议设置访问限频 | | **天翼云盘** | 支持原画直链,支持家庭云,电信播放速度极快,支持 .cas 秒传播放 | | **迅雷网盘** | 迅雷会员有不错的速度,普通用户限速,提供原画优先/速度优先模式 | | **ANi Open** | 一个支持直链的番剧公益站,网络环境问题可能需要镜像才能使用 | | **123云盘开发者** | 2026年3月后,需开通开发者权益包方可调用 | | **123云盘第三方挂载** | 官方 OAuth2 跳转授权,无须开通开发者权益包 | | **光鸭云盘** | 支持 OAuth 授权、点播直链,目前仅提供只读访问 | | **移动云盘** | 通过 139 邮箱 Cookie 登录,支持完整文件操作与 302 直链播放 | ## 驱动补充说明 以下是特定驱动的一些帮助信息: ::: details WebDAV WebDAV 驱动直链可能会暴露你的明文密码,建议分配非管理用户使用。 生成支持 **直链模式** 和 **代理解析** 两种模式。 * **直链模式**:生成格式为 `http://用户名:密码@WebDAV/path` ,[这种 URL 已被弃用](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Guides/Authentication#使用_url_中的身份凭据进行的访问),在 Web 端可能无法播放。 * **代理解析**:由 SmartStrm 处理 STRM 请求,尝试从后端直接 302 到 CDN 地址,以解决部分客户端的兼容性问题,不支持 CDN 跳转时再返回原 WebDAV 直链。 ::: ::: details 夸克网盘 20260212 起,受夸克 API 改动影响,仅填 Cookie 无法获取302直链。 如需使用转码直链(302)需要抓移动端任一 drive-m.../file 的请求链接。[抓取方法](/help/resource#夸克网盘移动端-url-抓包) ::: ::: details 夸克网盘TV 每个账号支持 2 个 TV 端登录。 登录提示驱动"设备数超限"的问题,可以在 **APP->我的->设置->账号与安全->登录设备管理**,退出和解除绑定不用的TV端登录。 ::: ::: details 天翼云盘 支持 `.cas` 秒传文件的直链解析:**STRM设置->媒体文件后缀** 中加入 cas 扩展名,可以直接播放 cas 生成的 strm 。 **.cas 支持特性与说明:** * 通过家庭共享秒传临时文件获取直链,自动清理临时文件(含回收站) * 直链已缓存优化,有效期内二次请求将直接返回直链,而非重复秒传 * 理论上媒体库视频编码可以正常获取,和正常入库视频格式 strm 无异 * 为确保能顺利秒传,家庭共享应留秒传文件相应大小的空间 * 使用神医大批量入库时并发扫视频编码,有可能会瞬时挤爆家庭共享 * 家庭共享下 `.cas_tmp` 目录为本项目创建与复用,建议保留 ::: ::: details 迅雷网盘 **STRM 模式:** * **原画优先**:优先获取原始画质的直链,但可能不如转码的直链快 * **速度优先**:优先获取速度最快的直链,极少部分文件可能会获取到转码画质 **注意事项:** * 迅雷开放 API 本不支持新建目录、移动文件、重命名操作,目前是兼容性支持,可能不稳定或随时失效 ::: ::: details 光鸭云盘 受平台接口限制,光鸭云盘驱动目前仅支持只读能力(浏览、下载与点播直链),不支持新建目录、移动文件、重命名、删除等写操作。 由于驱动不支持重命名,**非法文件名修正插件** 等依赖重命名能力的插件对该驱动不生效。 ::: ::: details 移动云盘 1. 存储授权关键参数是 `RMKEY` 和 `Os_SSo_Sid` ,可通过登录邮箱 Web 端 Cookie 提取。也可以在 139邮箱 APP 抓包提取,这两个值分别对应请求 cookie 中的 `rmkey` 和 URL 中的 `sid` 。 2. 支持 `.cas` 秒传文件的直链解析:**STRM设置->媒体文件后缀** 中加入 cas 扩展名,可以直接播放 cas 生成的 strm (和天翼 cas 用法基本一致)。 **.cas 支持特性与说明:** * 通过秒传临时文件获取直链,自动清理临时文件(含回收站) * 直链已缓存优化,有效期内二次请求将直接返回直链,而非重复秒传 * 理论上媒体库视频编码可以正常获取,和正常入库视频格式 strm 无异 * 为确保能顺利秒传,移动云盘应留秒传文件相应大小的空间 * 使用神医大批量入库时并发扫视频编码,有可能会瞬时挤爆云盘 * 该目录下 `.cas_tmp` 目录为本项目创建与复用,建议保留 ::: --- --- url: /help/faq.md --- # 常见问题 ## 基础与许可 ### 基础版可以使用吗?有什么功能限制? 基础版完全支持 STRM 生成、定时任务运行、存储浏览、基础 Webhook 触发等功能,已经能够满足绝大多数人需求。 Pro 版本主要增加**302代理**、**CD2触发**等进阶功能,定价极其合理,从高级功能中获取一定的回报、激励持续开发,更有利于项目的长远发展。 ### 是否支持网盘资源转存? 暂无计划。SmartStrm 的定位是**专业高效的 STRM 生成工具**。转存需求可以配合 `Quark-Auto-Save` 或 `CloudSaver` 使用,不重复造轮子。 ### 什么是 `dev` 镜像? 是指 SmartStrm 开发版本 `cp0204/smartstrm:dev` (只发布 amd64 架构),它用于发正式版本前进行功能测试,不建议在生产环境中使用。它并不总是最新,也有可能跳过 dev 版本直接发布正式版本。 ## 存储与 STRM 生成 ### 新存入的文件没有生成? 尝试关闭 **"目录时间检查"** 选项,这个选项本意是为了减少历遍请求,快速生成。但在某些盘中增修 `/aa/bb/cc/` 下的文件,只有目录 `cc` 的修改时间会更新,`aa` 和 `bb` 的修改时间不变,所以不会往下索引。 ### 任务目录能创建多级子目录吗? 不支持。一个任务对应一个生成目录,任务目录不可重叠,这是底层逻辑。推荐创建多个任务(如 `夸克1-tv`、`夸克2-tv`、`天翼-tv`),然后在媒体库中把多个 strm 目录加到同一个库里。 ### 夸克TV 转码直链画质如何? 夸克TV 驱动只有转码模式,走 302 直连,可能会压缩画质。实测 4K 资源转码后码率下降不多,甚至可能给原码;但 1080P 和动漫类资源压缩较明显。SVIP/88VIP 用户获取高质量视频时,仍可能是未压缩的原画资源。 > 注意:夸克能 302 的直链一定是转码的,STRM 方案只能使用转码链接。夸克网盘驱动则有原画代理(走 NAS 流量)和转码直链两个选项。 ### OpenList 驱动和 SmartStrm 原生驱动有什么区别? * **OpenList 驱动**:生成的是 OpenList 的直链,base\_url、sign 都跟随 OpenList,直链解析、302 跳转、签名验证由 OpenList 提供 * **SmartStrm 原生驱动**(如夸克、天翼):由 SmartStrm 直接解析直链,针对播放场景优化,基础地址和签名跟随 SS 的设置 两者功能上都能正常使用,选择哪种取决于你已有的基础设施。SmartStrm 未直接支持的网盘,可以使用 OpenList 转接。 ### 如何为 PikPak WebDAV 设置代理? 为容器添加环境变量如: ```bash HTTP_PROXY=http://172.17.0.1:10808 HTTPS_PROXY=http://172.17.0.1:10808 ``` 把 172.17.0.1:10808 替换为你的 http 代理,并且应为黑白名单,而非全局代理。 ## 播放与兼容 ### 提示"没有兼容的流"或"播放失败"? 1. **测试链接**:用记事本打开对应的 `.strm` 文件,复制里面的地址到浏览器,看能否下载 2. **基础地址**:检查 **"STRM 设置"** 中的 **"基础地址"** 是否设置正确 3. **格式兼容**:部分 Web 端浏览器不支持的编码(如 H.265)需要使用桌面客户端播放 ### 没有兼容的流、播放没声音、视频偏色? 用 STRM 播放后,数据不经过 Emby 后端,资源完全由播放客户端解码(如果用 Web 端就是浏览器解码),能加载资源但不能播、没有声音、杜比资源偏色,都是浏览器解码能力的问题,可以尝试调用本地播放器,或第三方播放器播放。 ### 支持 `.iso` 原盘资源吗? 支持 `.iso` 的 STRM 生成,需要在 **系统设置->STRM 设置->媒体文件后缀** 中,加入 iso 后缀。 而能否播放取决于播放客户端,使用 STRM 播放后,资源完全交由客户端解码(比如 Web 端肯定不行,因为浏览器无法解码 `.iso` 格式),已知 SenPlayer, Infuse 可以播放。 ### 支持 BDMV 蓝光原盘文件夹结构吗? BDMV 是章节化结构(index.bdmv + 多个 m2ts 片段),依赖 playlist(mpls)解析,而 strm 指向单一文件,无法表达多片段结构。建议以下方案: 1. **转封装为 MKV**(推荐):用 MakeMKV/DVDFab 转成单文件,保留章节信息,再生成 strm 2. **打包为 ISO**:整个 BDMV 打包成 iso,strm 指向挂载路径(需播放器支持 iso 挂载) ### 关于起播速度? 一个 `.strm` 播放需经历三个阶段: 1. **直链请求**:SmartStrm 从网盘请求直链再做 302 跳转,内部会有若干个网络请求的时间。(使用 `文件编号模式` 可减少至一个网络请求,稍微提高请求速度) 2. **读取媒体编码(首播)**:和本地媒体不同,STRM 相当于一个快捷方式。入库时 Emby 不会预读媒体文件规格(4K, HDR, 编码, 大小等),在首次播放时,才从网络请求文件读取媒体规格,再响应客户端播放。(使用302代理并开启 `优化 STRM 首播速度` 可避免此过程耗时) 3. **客户端缓冲**:获取到直链后,客户端需要对视频文件缓冲;这个时间和你的网络、服务器有关,部分网盘还可能会有限速。 > 入库快,免下载、在线播放,但起播速度会变慢。这是 STRM 的优点,也是不可避免有弊端。使用下来通常在10秒内起播,个人认为可以接受,无须盲目追求起播速度。 ### 优化 STRM 首播和神医的区别? 原理不一样,神医是让媒体在入库的时候全部预读一遍视频编码,这其中就会有大量直链请求。本来用 STRM 就为了最小化请求,这一预读结果全请求了。**而 SmartStrm 是在播放的时候让直链先行返回,媒体库后端异步获取视频编码,根据用户的播放行为按需请求。** 最终效果一样,都是在用户首次播放的时候,免去 Emby 读取编码的等待环节,直接进入视频缓冲阶段。 ### 优化 STRM 首播效果不明显? 能否命中优化要看播放器行为,简单来说是 `浏览过程->缓存到STRM信息->首播时异步返回直链->同时让媒体服务器后台获取` 整个过程都是最优的请求,不会暴力缓存和请求直链。 1. 如果某些播放器浏览过程没有缓存到(例如爆米花没有单集浏览页),则不会干预 2. 如果不是首播(已经有媒体信息),就会等待和沿用跟随媒体服务器的原先的返回 所以在 Jellyfin 里你可能会发现,首播比已经播过的还快,首播的 SS 直接返回直链了,而播过的 Jellyfin 还要等 2s 左右。 ### 飞牛影视自家播放器和第三方播放器起播速度差异大? 飞牛影视有两套协议: * **飞牛自家播放器**:使用直接跳转协议,响应快,点了就播 * **第三方播放器**(SenPlayer、VidHub 等):使用飞牛的 Emby 兼容接口(基于开源旧版遗留),响应较慢 最终都是走直链,速度差异源于接口处理逻辑不同,而非链接问题。 ## 媒体库与 302 代理 ### 302 代理和异地下载的矛盾? 302 代理的核心是让客户端直接从网盘获取资源,即**异地下载**。播放时 SmartStrm 代理返回 302 重定向,播放器直接连接网盘下载,数据不经过你的 NAS。从原理上就无法避免异地流量,除非放弃 302 走 NAS 中转(但那样就没有使用 302 代理的意义了)。 ### 如何多开 302 代理? 使用场景:同时代理 Emby 和飞牛影视。 多开个 Docker 容器即可,各代理不同媒体库,主副容器 `/config` `/logs` 隔离、`/strm` 目录共享。副容器不配置存储和任务,只做 302 代理用。 ### 能否支持 Jellyfin 的删除同步? Jellyfin 的通知中缺少一些关键信息,导致无法得知要删除的路径,所以没办法支持。 *** > \[!TIP] > > 如果你的问题不在上述列表中,欢迎加入 [Telegram 交流群](https://t.me/smartstrm) 寻求帮助。 > > 进群请先阅读置顶公告,避免重复提问。 --- --- url: /settings/manager.md --- # 影视识别 在进行批量重命名或自动整理时,SmartStrm 利用 TMDB (The Movie Database) 的海量元数据来规范你的文件名。 ## TMDB 配置 在 **“系统设置**->**影视识别”** 中: * **API 密钥**:需要在前往 [TMDB - 我的 API 设置](https://www.themoviedb.org/settings/api) 获取 * **语言**:默认为 `zh-CN` 以获取中文标题和简介 * **网络代理**:由于国内网络环境原因,未设置时可能无法访问 TMDB API ## 命名模板 SmartStrm 使用极具灵活性的模板引擎,格式为:`{前缀,变量名:补位长度,后缀}`。 ### 常用变量 | 变量 | 描述 | 示例 | | :----------------- | :------------- | :----------------- | | `{title}` | 中文标题 | `冰与火之歌` | | `{title_original}` | 原始/英文标题 | `Game of Thrones` | | `{year}` | 出版年份 | `2019` | | `{season}` | 季号 | `01` | | `{episode}` | 集号 | `01` | | `{quality}` | 分辨率 | `4K` 或 `1080p` | | `{episode_name}` | 剧集的小节标题 | `Winter is Coming` | | `{tmdbid}` | TMDB 唯一标识 | `123456` | ### 进阶语法 1. **数字补位**:使用冒号指定长度。 * `{episode:3}` -> `001`, `002` 2. **条件显示**: * `{.,episode_name}`:若有标题则显示 `.剧集标题`,否则不显示点 ## 设置建议 * **剧集模板**:推荐包含 `S{season}E{episode}` 结构,这是媒体库识别季集的关键 * **综艺节目**:在 TMDB 中通常归类为 TV,同样建议使用剧集模板命名 --- --- url: /guide/usage.md --- # 快速开始 按照以下前四个步骤,可以通过 SmartStrm 让你的 Emby 媒体库快速充满内容。 ## 第一步:添加存储 登录管理后台后,点击左侧菜单的 **存储管理**。 1. 点击 **添加存储**。 2. 选择你要使用的驱动(如 115、夸克网盘、OpenList 等)。 3. 根据驱动要求填写授权信息。 4. 保存并检查连接状态。 ## 第二步:添加任务 点击左侧菜单的 **任务管理**。 1. 点击 **添加任务**。 * **任务名称**:起一个好记的名字(如 `movie`) * **使用存储**:选择你在第一步中添加的存储 * **扫描路径**:网盘中媒体文件存放的路径 2. 点击 **保存** 后,运行一次任务 ## 第三步:共享 STRM 目录 将 SmartStrm 的 `/strm` 目录同时挂载给你的媒体服务器(Emby/Jellyfin/Plex),使其能够访问到 SmartStrm 生成的文件。 通常在部署 Docker 时,我们会将同一个宿主机目录挂载给两个容器。例如: * **SmartStrm**: `/volume1/media/strm:/strm` * **Emby**: `/volume1/media/strm:/strm` ## 第四步:媒体库扫描 在 Emby 的后台管理中: 1. 进入 **媒体库** -> **添加媒体库** 2. 文件夹选择你挂载后的路径(如 `/strm`) 3. 选择对应的内容类型(电影/电视节目) 4. 开启扫描 完成以上步骤,你就能在 Emby 中看到云端的视频并直接播放了!🥳 > \[!INFO] 进阶优化 > 此时所有视频流量经过 Emby 服务端,如果你在局域网外访问,可能受限于家中网络的上传带宽(特别是多人同时播放时)。你可能还需要:**第五步:设置302代理** ## 第五步:302代理(Pro) 进入 SmartStrm **系统设置** -> **302代理** 1. **服务端口**:自定义代理后提供访问的端口 2. **媒体服务器地址**:填写 Emby 的访问地址 3. 保存设置和启用代理服务器 4. 在你的客户端中,改用 1 中填写的端口访问 Emby 这将使播放客户端点击播放时,直接从网盘直链获取视频流,享受最顺畅的播放。🎉 --- --- url: /guide/deploy.md --- # 快速部署 SmartStrm 主要通过 Docker 镜像分发,支持 Linux 与所有常见的 NAS 系统(群晖、fnOS、Unraid、绿联、极空间等)。 > \[!TIP] 💡 提示 > 你可以使用 AI 智能体来辅助了解本项目。 > > ``` > 阅读 SmartStrm 文档,指引我快速上手 > https://smartstrm.github.io/llms.txt > ``` ## 部署命令 推荐使用 Compose 部署方式,方便后续更新与路径管理。 ::: code-group ```yaml{9-12,16-17} [docker-compose.yaml] name: smartstrm services: smartstrm: image: cp0204/smartstrm:latest container_name: smartstrm restart: unless-stopped network_mode: host volumes: - /yourpath/smartstrm/config:/app/config # 挂载配置目录 - /yourpath/smartstrm/strm:/strm # 挂载 STRM 生成目录 - /yourpath/smartstrm/logs:/app/logs # 挂载日志目录,可选 - /yourpath/smartstrm/tools:/app/tools # 挂载工具目录,可选 # 以上 /yourpath 改为你实际存放配置的路径 environment: - PORT=8024 # 管理端口,可选 - ADMIN_USERNAME=admin # 管理用户名 - ADMIN_PASSWORD=admin123 # 管理用户密码 ``` ```bash{5-8,11-12} [docker run] docker run -d \ --name smartstrm \ --restart unless-stopped \ --network host \ -v /yourpath/smartstrm/config:/app/config \ # 挂载配置目录 -v /yourpath/smartstrm/strm:/strm \ # 挂载 STRM 生成目录 -v /yourpath/smartstrm/tools:/app/tools \ # 挂载工具目录,可选 -v /yourpath/smartstrm/logs:/app/logs \ # 挂载日志目录,可选 # 以上 /yourpath 改为你实际存放配置的路径 -e PORT=8024 \ # 管理端口,可选 -e ADMIN_USERNAME=admin \ # 管理用户名 -e ADMIN_PASSWORD=admin123 \ # 管理用户密码 cp0204/smartstrm:latest ``` ::: > \[!TIP] 部署建议 > > 你应该留意以上**着重标记的行**,修改为你自己的配置。 > > 网络模式建议按默认 `host` ,以便于在容器内自定义修改 302 代理端口。 > > **如果将 `8024` 端口暴露在公网,请务必修改默认的管理用户名和密码,同时建议配置安全入口。** 部署完成后,通过 `http://yourip:8024` 访问管理后台。 ## 更新命令 ```bash # smartstrm 容器一键更新命令 docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -cR smartstrm ``` ## 环境变量 | 变量名 | 默认值 | 描述 | | ------------------- | ---------- | ---------------- | | `PORT` | `8024` | 管理端口 | | `ADMIN_USERNAME` | `admin` | 管理用户名 | | `ADMIN_PASSWORD` | `admin123` | 管理用户密码 | | `MAINLOG_MAX_DAYS` | `7` | 容器日志保存天数 | | `TASKLOG_MAX_LINES` | `1000` | 任务日志保存行数 | | `ENABLE_IPV6` | `true` | 启用 IPv6 支持 | | `LOGIN_ENTRY` | `login` | 安全登录入口 | ## 其他版本 ### 飞牛应用 SmartStrm 已上架 fnOS,你可以在直接在应用中心搜索安装。 #### 应用数据 应用数据默认存放在 `应用文件/SmartStrm` 中,等同于: `/安装存储空间/@appshare/SmartStrm` ,卸载应用不会自动删除数据。 你可以在安装向导或中心的“应用设置”中修改 `STRM保存目录` 的路径,并赋予读写权限。 #### 应用更新 由于飞牛审核上架周期较长,通常会比 Docker 镜像滞后 1~2 个版本。你可以通过此脚本替换核心程序进行更新: ```bash # 飞牛应用更新 SmartStrm 核心程序脚本 bash <(sudo wget -qO- https://wget.la/https://github.com/Cp0204/SmartStrm/raw/refs/heads/main/tools/fnos_update_smartstrm.sh) ``` 你也可以在 [Releases](https://github.com/Cp0204/SmartStrm/releases) 下载最新 fpk 手动安装(需先卸载再重装)。 --- --- url: /module/plugins.md --- # 插件管理 SmartStrm 提供了一批灵活的预置插件,用于在 STRM 生成过程中对路径、内容或行为进行自定义和功能扩展。 ## 插件作用范围 插件作用范围可以分为 **全局** 和 **任务级**: * **全局**:对系统中所有任务生效,在主界面 **插件管理** 中配置 * **任务级**:可以针对不同任务进行差异化配置,在任务编辑页 **插件** 中配置 ## 内置插件 ### STRM内容替换 * **功能**:在生成 `.strm` 文件时,对其中的字符串进行替换 * **典型场景**:将 OpenList 的内网地址替换为公网地址、将本地驱动生成的目录路径替换为网络路径 ### 非法文件名修正 * **功能**:运行任务时重命名远端存储的非法文件名,去除特殊字符、截断过长的文件名;非必要不建议开启,有损运行效率。 * **典型场景**:115 文件名过长报错 `Filename too long`,天翼云盘含有特殊字符。 * **兼容性截断**:文件名超长时按 230 字节截断主干,并保留 `-thumb`、`-poster`、`-fanart`、`.zh-CN`、`.forced` 等后缀,确保视频与同名的海报、字幕、封面文件改名后仍能相互匹配。关闭后按 255 字节直接截断,只保留扩展名。 ### 飞牛影视刷新 * **功能**:运行任务后刷新飞牛影视,自动匹配媒体库、扫描指定目录,支持夸克、115、123,仅作为添加了挂载网盘的媒体库刷新使用。 ### Infuse.ISO兼容 * **功能**:遵循 Infuse 规则,以 `.iso.strm` 为后缀命名生成 ISO 文件,处理 .strm 内链接签名干扰的问题。 ### 文件名关键词过滤 * **功能**:生成时过滤文件名中含有特定关键词的文件,支持正则匹配,筛选或过滤模式,作用于每层文件夹、 媒体文件、复制的文件名。 * **典型场景**:跳过 `广告,QQ群,4K,完结` 等文件,灵活配置该插件可仅更新任务下的指定目录 ### 自定义STRM文件名 * **功能**:可自定义为 xxx.strm 或 xxx.mp4.strm 等格式。 * **注意**:自定义后原扩展名信息缺失,无法匹配远端文件,Emby同步删除功能将失效。 ### 任务请求延时 * **功能**:运行任务时,列出目录、文件复制后延时指定时间,降低风控几率。 * **典型场景**:115 等风控严格的网盘。 * **使用建议**: * 该插件可在 **任务级** 单独开启,只对需要的任务生效(如 `剧集` 任务用 115,`电影` 任务用夸克,则只给剧集任务开延时) ### 高级扫描过滤设置 * **功能**:覆盖系统全局的扫描设置,可自定义媒体文件后缀、复制文件后缀、**文件大小上下限范围**。 * **典型场景**:不同任务(如某音乐类任务、和影视类任务)可使用不同的扫描后缀,或对特定任务设置不同的文件大小过滤范围。 ### 提取视频封面 * **功能**:生成 STRM 时提取视频封面下载到同目录,解决无刮削信息媒体的封面显示问题。使用云盘预览图提取支持夸克网盘、夸克TV、天翼云盘、光鸭云盘,ffmpeg 提取支持所有驱动。 * **典型场景**:某些国产短片、动漫没有刮削信息,直接入库会没有封面,需要从视频中提取封面美化显示。 > Docker 环境中首次使用 ffmpeg 提取时将自动下载 ffmpeg 到 `/app/tools` 目录,如需持久化可挂载此目录到主机。飞牛应用则直接使用系统 ffmpeg 自带工具。 --- --- url: /tutorials/emby-clouddrive-smooth-playback.md --- # 搭建Emby+SmartStrm实现网盘影音丝滑播放 > 原链接:https://mp.weixin.qq.com/s/cGc19triWkT5v\_EjOvt0ig > > 作者:Leander(微信公众号:Leander的神秘日常) 本文在下载好媒体库内容的情况下,从零开始搭建 Emby、生成 Strm 并通过 Nginx 对 Emby 搭建反向代理方便访问。 ## 安装 Emby 访问 https://emby.media/linux-server.html,然后复制对应系统版本的 deb 链接,在服务器中通过 wget 下载,然后执行: ```bash dpkg -i emby-server-deb_4.9.3.0_amd64.deb # 版本号为 4.9.3.0 时的例子 ``` 会自动配置 Emby 服务,完成后访问 `IP:8096` 完成配置。 一直下一步直到配置完成即可。 ## 安装 SmartStrm ### 总体思路 SmartStrm 本质是一个 Web 服务 + 任务引擎: * **Web 管理端**:默认 **8024**(可改),用来配置存储、任务、Webhook 等。 * **生成 `.strm` 文件**:输出到你挂载的目录,之后给 Emby 读。 * **日志与配置**:建议都落盘挂载出来,否则容器一删全没。 ### 0)环境配置 #### 0.1 确认系统和权限 ```bash lsb_release -a whoami ``` #### 0.2 选一个"干净的工作目录结构" 按官方推荐的挂载结构来:config / logs / strm 分开。 ```bash sudo mkdir -p /opt/media-stack/smartstrm/{config,logs,strm} sudo chown -R $USER:$USER /opt/media-stack ``` 解释: * `/opt` 通常用于放服务型应用 * `strm` 目录就是未来 Emby 只扫它的"索引库"(只存文本 `.strm`,很轻) * `config/logs` 挂出来,容器删了也不丢配置/日志 ### 1)安装 Docker(Ubuntu 24.04) 如果你已经装过 Docker,可以直接跳到第 2 步;否则: ```bash sudo apt update sudo apt install -y docker.io docker-compose-plugin sudo systemctl enable --now docker docker version docker compose version ``` 把当前用户加入 docker 组(否则每次都要 sudo): ```bash sudo usermod -aG docker $USER newgrp docker ``` ### 2)写 compose 文件 在 `/opt/media-stack/smartstrm/docker-compose.yml`: ```yaml name: smartstrm services: smartstrm: image: cp0204/smartstrm:latest container_name: smartstrm restart: unless-stopped network_mode: host volumes: - /opt/media-stack/smartstrm/config:/app/config - /opt/media-stack/smartstrm/logs:/app/logs - /opt/media-stack/smartstrm/strm:/strm environment: - PORT=8024 - ADMIN_USERNAME=admin - ADMIN_PASSWORD=ChangeMe_To_A_StrongPassword ``` 解释: * `network_mode: host`:容器直接用宿主机网络栈,等于服务"裸跑"在 VPS 上的 8024 端口 * `volumes`:严格对齐官方挂载路径 `/app/config` `/app/logs` `/strm` * `PORT/ADMIN_USERNAME/ADMIN_PASSWORD`:官方明确支持的环境变量 ### 3)启动 SmartStrm ```bash cd /opt/media-stack/smartstrm docker compose up -d docker ps docker logs -n 80 smartstrm ``` ### 4)连上 Web 管理端并完成"首次登录" 浏览器打开 `http://你的VPS公网IP:8024`,用你在 compose 里写的 `ADMIN_USERNAME / ADMIN_PASSWORD` 登录。 > **管理端口 8024 不建议长期裸露在公网** ### 5)更新策略(官方给的"一键更新") SmartStrm README 里推荐用 watchtower 对指定容器做更新: ```bash docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -cR smartstrm ``` ## 配置存储+生成 Strm ### 准备工作 使用 123 云盘的 OpenAPI 需要购买开发者权益包 20 元一个月。 开发者权益包开通后会把 `client_id` 和 `client secret` 以站内信形式发送给我们,妥善保存,后面会用到。 另外,想要 302 就 **必须购买 SmartStrm Pro**,但是价格明显不是很高,支持一下开发者我觉得也是理所应当。 购买以后许可证会自动发送到你的邮箱里,然后在 **系统设置** → **关于** 填入许可证即可。 ### 创建存储 打开 **SmartStrm**,创建存储,驱动选 123 开放平台。 把之前收到的 `client_id` 和 `client secret` 输入。 ### 打开 302 代理 这个功能命名上有点谜语人,经过查阅该项目的 `README.md` 发现这就是一个直链访问的功能。 ### 生成 strm 进入 **存储浏览** → **添加任务**,扫描路径输入云盘路径即可。 > 非常建议每个目录都创建,即使 SmartStrm 会自动扫描并生成子目录内的文件 strm,单线程速度也太慢了,我正创建多个任务以尝试多线程工作。 另外,如果在任务页面点击编辑并修改任务名和路径,它就会自动创建一个新任务,可以用这个方法创建一些设置相似的任务。 可以稍等一会生成完毕再添加 Emby 扫库。 ## 配置媒体库 因为我们用的是 strm 中转,所以扫库非常快,飞一般的速度。 ## 在 Infuse 上播放 ### 通过 Emby Connect 账号添加 在 https://emby.media/community/index.php?/register/ 注册账号。 ### 通过服务器信息添加 需要注意的是,地址前面还要加上协议,例如 `http://IP:8097`。 ## 播放检查 302 功能 内容没问题,直接播放看看。进度条可以随便拖,同时服务器上行不大,就说明 302 可以正常访问了。 折腾了半个多月终于弄好了。。。完结撒花! 网页版支持调用播放器播放。 ## 为 Emby 做反向代理方便访问,并通过 UFW 阻止 8096、8097 端口访问 ### 配置计划 ``` IP:8097 --> emby.mydomain.com ``` ### 配置 Nginx 反向代理 ```nginx server { listen 80; server_name emby.mydomain.com; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name emby.mydomain.com; ssl_certificate /etc/ssl/cert.pem; ssl_certificate_key /etc/ssl/key.pem; client_max_body_size 20G; location / { proxy_pass http://127.0.0.1:8097; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_buffering off; } } ``` 检查配置文件语法正确性并重启 Nginx: ```bash nginx -t systemctl reload nginx ``` ### 配置 DNS 解析 域名解析托管交由 Cloudflare,其他平台配置方法类似。 ### 通过 ufw 屏蔽外部直接通过端口访问 ```bash ufw enable ufw allow 22 ufw allow 443 ufw allow 8024 ufw deny 8096 ufw deny 8097 ``` 以此类推,按照自己的需求设置即可,allow 是允许,deny 是拒绝。 --- --- url: /changelog.md --- # 更新日志 ### v0.5.1 * 驱动 * **统一请求超时**:为所有驱动引入默认超时,避免网盘无响应时任务线程永久卡住 * 光鸭云盘:修复文件修改时间字段取值错误的问题 * 插件 * **非法文件名修正:新增「兼容性截断」模式**:文件名过长时按 230 字节截断主干,并保留 `-thumb`、`-poster`、`.zh-CN` 等后缀,确保视频与同名海报、字幕改名后仍能正确匹配 * 自定义STRM文件名:自动去除首尾空格,避免生成的文件名异常 * 移除已废弃的 **STRM不加扩展名** 插件,请改用 **自定义STRM文件名** * Webhook * **新增任务防抖参数 `debounce`**:同一任务、同一路径在指定秒数内被重复触发时只执行一次,MP 默认开启 2s 防抖时间,避免短时间重复通知导致任务反复运行 ### v0.5.0 * 驱动 * **新增 移动云盘 驱动**:通过 139 邮箱 Cookie 登录,支持文件列表、删除、重命名、新建目录、移动等完整文件操作,支持下载直链与 STRM 302 重定向播放 * **移动云盘支持 CAS 秒传**:支持 `.cas` 秒传文件还原,临时文件自动清理(含回收站),直链缓存优化 ## v0.4.x **核心特性**:重构任务调度管理(支持停止运行中任务、队列执行、防并发),增强安全性(手动重置Webhook token、环境变量安全入口、STRM签名功能),新增夸克网盘TV驱动,重构影视识别功能支持TMDB批量补全命名,插件系统全面升级,优化STRM首播速度功能(支持Emby/Jellyfin/飞牛影视),存储浏览视图优化。 ### v0.4.20 * 302代理 * **嵌入调用外部播放器按钮**:适配 Jellyfin 12.0 ,修复播放链接失效的问题 * 插件 * 提取视频封面:为 ffmpeg/ffprobe 请求添加 UA 请求头,避免被 CDN 拦截(如光鸭云盘) * STRM生成 * 修复插件修改内容后导致签名失效的问题 * 其他 * 添加隐私政策与使用条款 ### v0.4.19 * 驱动 * **新增 光鸭云盘 驱动**:支持 OAuth 授权登录,支持文件列表、下载与点播直链;受平台接口限制,目前仅提供只读能力 * OpenList:获取二进制数据时补充 UA 请求头,修复部分场景下载刮削文件失败的问题 * 插件 * 提取视频封面:兼容光鸭云盘,支持提取网盘预览图 ### v0.4.18 * 驱动 * **新增 123云盘第三方挂载应用 驱动:支持官方 OAuth2 跳转授权,无须开通开发者权益包,支持 302 直链** * 原「123云盘开放平台」驱动更名为「123云盘开发者」 * 插件 * **提取视频封面**:支持自定义封面文件名,支持 `{name}` 变量(如 `{name}.jpg` 与视频同名) ### v0.4.17 * 驱动 * **迅雷网盘**:实现容量获取和文件重命名功能,读取直链过期参数以优化缓存时间 * **补全 `新建目录` 和 `移动文件` 能力**:除部分只读驱动(夸克网盘TV、ANi)外,其他驱动已支持 * 天翼云盘:修复 `.cas` 秒传文件未兼容 `sliceMD5` 键名的问题 * UI * **存储浏览文件右键菜单增强**:新增「复制STRM地址」功能,对媒体文件右键可获取其 STRM 播放地址 * 优化文件右键菜单的交互和样式 * 其他 * 重构存储驱动错误处理逻辑,统一异常抛出机制,提升错误识别能力 ### v0.4.16 * 驱动 * **新增 迅雷网盘 驱动**:支持 OAuth 授权登录,支持 302 直链,提供 `原画优先` 和 `速度优先` 两种 STRM 模式 * OAuth 登录优化:支持授权前存储名自定义,跳转前可输入自定义名称而非固定使用账号名 * 115开放平台:优化 API 速率限制默认值,调整新建默认存储名为 `open115_userid` * 插件 * **新增 高级扫描过滤设置 插件**:支持在任务级别自定义扫描的媒体文件后缀、复制文件后缀和**文件上下限范围**等设置,不同任务可使用不同的扫描规则 * 飞牛影视刷新:修复影视 token 过期时未正确检测的问题 ### v0.4.15 * 驱动 * **WebDAV:新增 `代理解析` 生成模式**,由 SmartStrm 处理 STRM 请求,在某些云盘中尝试直接 302 到 CDN 地址,提升播放兼容性;不支持时自动回落到原拼接直链地址。 * **天翼云盘:新增 `.cas 中转的家庭共享` 配置项**,支持指定秒传使用的家庭共享,未指定则使用账号默认家庭共享。 * 缓存优化:优化文件删除和重命名后的路径缓存清理逻辑 * Webhook * **Emby 删除同步:优化删除电影时目录的清理逻辑,若本地目录已被删除则同步删除对应的远端目录** * UI * 优化飞牛影视刷新插件描述,优化优化站点图标配置 ### v0.4.14 * 驱动 * 115开放平台:修复列出不存在目录时返回错误数据的问题(当目录ID不存在时,115开放接口不会报错而是返回根目录数据,SS从驱动侧修补此错误) * 天翼云盘:修复使用路径兼容模式生成 CAS 秒传文件 STRM 时,重复获取到同一缓存直链的问题 * 302代理 * 默认禁用「优化 STRM 首播速度」选项,避免潜在的兼容性问题,需要此功能的用户可手动开启 * 默认禁用「隐藏 Emby Premiere 推广」选项,用户按需开启 * 优化首播速度功能:在媒体源中注入一些兼容性字段,尝试提升播放兼容性 ### v0.4.13 * 驱动 * **新增文件缩略图获取功能**:支持 夸克网盘、夸克TV、天翼云盘 驱动的缩略图获取和显示 * OpenList:修复最多获取 200 个文件的问题,支持大目录的完整文件列表获取 * 插件 * **新增 提取视频封面 插件 (Pro):生成 STRM 时提取视频封面下载到同目录,解决无刮削信息媒体的显示问题。使用云盘预览图提取支持夸克网盘、夸克TV、天翼云盘,使用 ffmpeg 提取支持所有驱动。** * UI * **添加文件缩略图预览功能**:鼠标悬停动态显示缩略图,位置自适应 * 存储浏览增加目录文件数量和筛选数量显示 * 优化按钮和表单组件显示样式,统一边框与圆角 * 改进插件管理中的 Pro 标识 * 302代理 * 修正请求体处理逻辑,修复部分情况下日志 OpenList 302 播放错误的问题 * Webhook * **触发特定任务增加自定义任务参数覆盖**:新增任务配置 `dir_time_check`, `incremental`, `keep_local_asset`, `plugins` 参数的自定义覆盖 * **添加 CORS 支持**:支持跨域请求,同时文档站支持 [在线测试 (Playground)](https://smartstrm.github.io/settings/webhook#在线测试-playground) * 配置管理 * 优化配置管理逻辑,增强配置加载异常处理 * 构建 * Docker 镜像指定 alpine 版本为 3.23,确保构建环境一致性 * 更新多个依赖包版本,修复开源组件的潜在问题 ### v0.4.12 * 驱动 * **天翼云盘:支持 `.cas` 秒传文件的直链解析**:设置中加入 cas 扩展名,可以直接播放 cas 生成的 strm **特性与说明:** * 通过家庭共享秒传临时文件获取直链,自动清理临时文件(含回收站) * 直链已缓存优化,有效期内二次请求将直接返回直链,而非重复秒传 * 理论上媒体库视频编码可以正常获取,和正常入库视频格式 strm 无异 * 需注意大批量入库时神医并发扫视频编码,有可能会挤爆家庭云 * 为确保能顺利秒传,家庭云应留相应大小的空间 * STRM生成 * **修复复制文件时 `%` 字符编码问题**:移除了URL编码中的 `%` 安全字符,对其双重编码 * **兼容 `.cas` 文件大小阈值逻辑**:添加对 .cas 小文件的阈值自兼容处理,无须调整媒体文件大小阈值 * 任务管理 * 修复偶发的编辑存储同时前端迭代任务列表时的并发问题 ### v0.4.11 * 驱动 * **天翼云盘:修复扫码登录状态丢失导致报错**:添加login\_type字段区分登录方式,实现扫码登录的刷新机制 * UI * **添加TMDB API密钥缺失提示**:当用户未配置TMDB API密钥时,影视识别显示提示信息 ### v0.4.10 * 驱动 * **天翼云盘:新增二维码登录功能,提升登录便利性** * 115开放平台:添加二维码登录;调整API默认访问速率为2QPS,避免不明真相的新用户表示SS害他 * UI * 优化二维码登录轮询和失败处理机制 ### v0.4.9 * 驱动 * 夸克网盘:优化转码直链支持的判断及UI显示,如移动端URL验证成功,用户信息中显示 `(APP)` 标签 * 302代理 * 修复开启 `优化 STRM 首播速度` 后,因提早上报播放状态,影片异常地标记为`已播放`的问题 * STRM 生成 * 增强签名白名单,增加302代理的目标IP到签名白名单,提升代理服务器的兼容性 ### v0.4.8 * UI * **优化任务状态更新机制**:前端任务状态显示响应更及时,减少心跳和不必要的开销 * **存储浏览添加运行当前目录任务功能**:当存储浏览当前路径匹配任务时显示"运行当前"按钮,方便快速生成指定目录的 STRM * 插件 * **新增 自定义STRM文件名 插件**:支持自定义 STRM 文件的命名规则,提供更灵活的文件名控制 * **Infuse.ISO兼容 新增兼容性修正**:修正 STRM设置 / OpenList 开启签名功能时 `.iso` 文件无法播放的问题 * STRM不加扩展名插件:添加废弃提示和迁移建议,建议使用 自定义STRM文件名 插件替代 ### v0.4.7 * 任务管理 * **重构任务的调度管理:支持停止运行中任务**,一个任务一个线程执行,同个任务多次触发按顺序队列执行,防止并发执行导致的异常 * 统一任务调度:将 Webhook 触发的任务交给任务管理器统一管理,并支持队列 * 任务状态实时显示:前端动态显示运行状态,当任务正在运行时日志模态框提供停止按钮 * Webhook * **新增 MoviePilot 整理完成触发任务 (Pro)**:支持远程服务器作为媒体直链源,使用 STRM 集成到本地媒体库的场景 * 302 代理 * **增强 `优化 STRM 首播速度` 功能:新增支持 Jellyfin,现已全面支持 Emby/Jellyfin/飞牛影视,并优化了缓存策略以增强兼容性** * 优化 Jellyfin 外部播放器按钮注入位置,解决移位问题 * STRM 生成 * 修复开启签名时,潜在的特定字符编码导致的签名验证失败问题 * 插件 * 任务请求延时:调整事件时机,列目录失败也延时 * 其他 * 优化 Webhook 设置界面:优化支持列表样式,增加文档链接 * 优化手机使用影视识别时文件列表的显示高度 * 修复 License Store 中邮箱含 `+` 字符导致支付时签名校验失败的问题 * 更新项目文档链接至独立站点 ### v0.4.6 * 302 代理 * **支持三方播放器使用飞牛 STRM 302 直链播放**:代理 `8005` 端口,已测试客户端 VidHub、网易爆米花 * 如无法播放且为 Docker 部署,请尝试将主机的 `strm` 目录真实路径加入容器目录映射中,如 `/vol1/1000/path/strm:/vol1/1000/path/strm` * **增加 `优化 STRM 首播速度` 功能**:引入实验性功能,缓存 STRM 直链并异步获取音视频信息,大幅提升首次播放的速度 * STRM 生成 * 修复复制文件自动命名时对媒体后缀大小写敏感:当媒体后缀为大写时,复制文件正确设置为 `.(media_ext).copy_ext` 后缀 * 驱动 * 天翼云盘:修复 Emby 删除失败,文件路径查找的逻辑问题 * 其他 * 302代理优化全局请求和会话管理,提升响应性能和速度 ### v0.4.5 > \[!CAUTION] BREAKING CHANGE > 所有版本更新到此版本将默认开启签名功能,或将导致 STRM 播放失败,请重新生成或手动关闭签名 * **新增三项安全改进** * **增加手动重置 Webhook `token` 功能**:重置后将使所有已配置的 Webhook 失效,如从未手动重置过,token 将随用户名或密码的修改而变化 * **增加环境变量 `LOGIN_ENTRY` 配置安全入口**:默认值 `login`,当配置了该环境变量时,未登录不会自动跳转到登录页 * **增加 STRM 签名功能**:支持对 SmartStrm 提供解析服务的 STRM 直链签名,以防止路径被猜解请求 * 启用或更换签名密钥后,云盘类 STRM 文件需要重新生成 * 当基础地址是内网IP并使用自带的302代理时,内部免签放行 * **所有版本更新到此版本将默认开启签名,或将导致 STRM 播放失败,请重新生成或手动关闭签名** * 驱动 * OpenList:修复文件名带 `#` 的文件复制失败的问题 * 302 代理 * 增加 `隐藏 Emby Premiere 推广` 选项:隐藏网页端右上角 `获取 Emby Premiere` 按钮 和 `发现 Emby Premiere` 卡片 * 改进 `嵌入调用外部播放器按钮` 功能:兼容上游 mpv-handler:// 协议的修改、优化按钮样式兼容 Emby 4.9 圆角,更新 MXPlayerPro, Fileball, SenPlayer 播放器图标 * Webhook * 网页转存触发任务:重构 115 油猴处理逻辑适应新页面,调整提示框显示时长至 5 秒 * UI * 优化多个驱动的提示信息 * 添加 STRM URL 生成预览:在编辑 STRM 设置时,提供生成效果预览,方便用户确认配置是否正确 ### v0.4.4 * STRM 生成 * **同步生成时提供 `保留本地刮削的文件` 选项:** 基于常见刮削文件名称判断,并非完全准确,有可能出现仍然删除了刮削的文件,或保留了一些无用文件的非期望情况 * 插件 * **文件名关键词跳过:新增支持正则匹配,新增筛选或过滤模式、新增仅对目录生效选项,灵活配置该插件可仅更新任务下的指定目录** * 非法文件名修正:增加去除首尾空格选项,改进过长文件名截断以正确处理中文字符 * Webhook * 补充 QAS、CloudSaver、油猴触发任务对 `quark_tv` 驱动的支持 * 优化 Emby 删除事件中目录的处理逻辑:修复对电影目录删除 * UI * 改进任务编辑中的 Crontab 输入交互 * 更新插件全局开关描述提示 ### v0.4.3 * 驱动 * **新增 夸克网盘TV 驱动**:支持扫码登录,更友好地支持 302 直链 * Webhook * 优化 CloudDrive2 触发任务的处理逻辑:修复某些场景下提早提取父目录导致失去匹配任务路径的问题 * 增强 CloudDrive2 存储映射:支持映射到 SS 存储的子路径,填写格式为 `cd2_storage=ss_storage/path` * UI * 统一 夸克网盘/TV 驱动参数文案:原 `STRM 模式` -> `STRM 资源请求方式` ### v0.4.2 * 驱动 * 夸克:适配夸克API变更(302转码直链播放失败,报plf\_invalid错误),目前的解决方案需要抓取移动端URL,详见 [#57](https://github.com/Cp0204/SmartStrm/issues/57) * OpenList:修复配置了 site\_url 二级目录的连接 * 302 * 修复 https 反代环境下链接协议问题 * 重命名 * 影视识别增加 `{title_original}` 变量支持 * 其他 * 增加 robots.txt 禁止搜索引擎收录 * 优化设置界面样式与说明 * 支持 LINUX DO Credit 兑换 (Beta) ### v0.4.1 * 任务 * 优化任务状态查询方法与异常处理,修复错误的 crontab (如2月31日) 导致的白屏 * 驱动 * 115开发平台:增强API响应错误处理,暴露近期风控上限错误 * 新增 ANi Open 驱动:一个 ANi 搬运作品番剧公益站,该驱动为只读资源类型,当前目录结构在 Emby 中识别率较低,建议自建镜像和与飞牛影视配合使用 * 插件 * 飞牛影视刷新:支持强制 HTTPS 和自签证书 * UI * 优化:实时任务实时日志性能,避免日志量过大导致的页面卡顿 * 修复:当以 HTTPS 浏览管理时,Webhook 地址协议错误地显示为 HTTP * 302 * Emby 直链转化支持 Emby 4.6 老版本的播放逻辑 * 优化内网 IP 检测逻辑:支持更多 STRM 内网地址,新增对 .local、.internal 和 .lan 的内网识别 * 更新静态文件路由前缀,修复和 fnOS 图标资源冲突 > \[!TIP] > > v0.4.0 已支持飞牛影视反代,主要解决在外网中无法播放 URL 是内网的 STRM 的问题。 > > 具体用法:代理 5666 端口,在 飞牛APP 或 飞牛播放器 连接代理后的端口,不能用 FN ID 和官方转发。 ### v0.4.0 * 302 * 修复:嵌入 `调用外部播放器按钮` 失效的问题 * 修正命中日志中 STRM 类型的判断逻辑 * 优化代理小文件时的响应处理逻辑,减少异常错误 * 插件 * **新增 `任务请求延时` 插件**:运行任务时,各请求行为后延时指定时间,降低风控几率 * 优化:各插件事件触发的性能开销 * 重命名 * **重构重命名,改为 `影视识别` 功能:在设置 TMDB API 密钥后,支持识别影视数据批量补全命名** * 批量重命名-顺序命名:支持排序、自定义编号补位 * UI * **重构存储浏览视图:支持排序、调整列宽、当前目录搜索过滤,相关文件类型显示图标** * 优化:编辑任务时扫描路径的输入交互,新增任务时默认填入 `/` * 优化:从存储浏览中新建任务,自动填入任务名称 * 驱动 * WebDAV:修复使用某些服务端时缺失第一个文件 * 优化各驱动删除和重命名错误时的处理逻辑,在日志中抛出异常 * Webhook * 优化 Emby 删除事件处理逻辑,移除媒体库文件夹时跳过处理 * 构建 * 更新多个依赖包版本 ## v0.3.x **核心特性**:新增飞牛影视刷新插件,支持IPv6双栈,优化302代理性能,增强天翼云盘驱动(支持家庭共享),适配Emby音乐类型302请求。 ### v0.3.8 * 驱动 * 夸克网盘:再次修复某些情况下元数据下载失败的问题 * UI * 新增错误友好页面提示,提升体验 * 其他 * 日志屏蔽流断开的错误信息,通常是客户端提前断开连接,为无害错误 * 优化初始化流程,减少面板打开等待时间 * 构建 * 修复部分环境下升级应用后版本号未更新的问题 ### v0.3.7 * 驱动 * 夸克网盘:修复某些情况下元数据下载失败的问题 * 天翼云盘:优化登录和错误处理逻辑,修复二次授权报错的问题 * 插件 * 飞牛影视刷新:增强对移除缺失影片的处理 * 302 * 对媒体请求路径大小写兼容,**尝试修复 Infuse 302 跳转** * 修复端口占用检测逻辑:未启用 IPv6 时,不检查其端口 * 优化代理服务器线程,减少内存占用,提高启动停止速度 * UI * 为任务扫描路径添加上一级目录按钮 * **支持在关于页面配置许可证密钥**:如在此处设置,请确保环境变量 `LICENSE` 为空,否则应用重启时将优先读取环境变量 * 样式调整:导航调整顺序,优化设置标签样式、优化提示样式 * 其他 * 添加 `/goto_proxy_server` 路由跳转到代理服务器 * 优化全新安装时的默认配置:包含更多媒体文件格式、默认大小阈值调整为 2MB * 构建 * 重构配置路径支持环境变量,移除硬编码 * 添加 8097 端口暴露,兼容 Docker Desktop 部署 * 优化构建,减小 30% 镜像体积 ### v0.3.6 * 302 * **适配 Emby 中音乐类型的 302 请求**:已测试音流、Emby Web 端、安卓客户端,需网盘支持直链(115、123、天翼驱动支持;夸克驱动音频不支持直链,在 `智能回落` 模式下,自动转为NAS代理请求),OpenList 驱动则跟随其存储特性 * 驱动 * 天翼云盘:修复 emby 删除同步时 path 报错的问题 * 天翼云盘:修复内部重授权后重试未更新请求头,导致的容器重启时初始化死循环 * 插件 * 飞牛影视刷新:修复不扫描任务根目录的问题 ### v0.3.5 * 驱动 * 天翼云盘:修复云盘非 VIP 用户获取套餐失败时报错的问题 * 插件 * 飞牛影视刷新:调整免费试用次数至 100 次,且可手动重置 * 302 * 修复 LAN IP 的判断 * 修复 `没有兼容的流` 的问题 ### v0.3.4 * 驱动 * 115开放平台:优化刷新令牌失效判断逻辑 * **天翼云盘:支持家庭共享**,重构请求处理 * 插件 * **新增 飞牛影视刷新 插件**:运行任务同时刷新飞牛影视,自动匹配媒体库、扫描指定目录,自动移除缺失影片,支持夸克、115、123网盘(飞牛影视不支持 STRM ,仅作为添加了挂载网盘的媒体库刷新使用) * 优化 非法文件名修正 插件:改进修正后文件路径的处理逻辑,避免部分场景下重复修正 * Webhook * 为 CloudSaver 推送增加 open115, pan123 支持,配置方法同夸克 * 其他 * 优化内网IP检测逻辑,支持 IPv4 和 IPv6 双协议检测 * 优化版本检查逻辑,提高服务可用性 * 统一 /smartstrm\_fid 路由,附加路径参数 * 优化部分日志输出,改善用户体验 * 优化天翼屎山代码、增加新的屎山代码 ### v0.3.3 * 驱动 * 夸克网盘:修复违规文件的文件名变 `某***` 的问题 #39 * 其他 * 支持 IPv6 ,默认启用监听双栈,可通过环境变量 `ENABLE_IPV6` 控制 ### v0.3.2 * 驱动 * 123云盘开放平台:修复使用 `文件编号模式` 时获取直链失败和报错 * 115开放平台:修复某些系统(已知群晖)下的 pick\_code 缓存报错 ### v0.3.1 * 驱动 * WebDAV:新增对UTC时间格式的支持 * WebDAV:修复生成时传递多余参数报错的问题 * 夸克网盘:添加 `转码最高画质` 配置选项,用于限制获取转码直链时的最高画质 ### v0.3.0 * STRM 生成 * **云盘类存储生成支持 `文件编号模式`**:以文件编号替代原路径方式写入 STRM 内容,减少API请求,可稍微提高起播速度(推荐);改模式后重新生成建议使用以下 `全量覆写` 功能 * 驱动 * **本地文件系统:添加 `兼容模式` 选项,以支持 CloudDrive2/Rclone/SMB 等挂载点的文件变更监听** * 123云盘开放平台:添加 `重新授权` 选项,避免每次保存都重新请求 token * 夸克网盘:更新 M3U8 直链白名单支持 Hills, Yamby 客户端(Yamby需MPV播放) * 夸克网盘:改进回落逻辑,当获取视频转码直链错误时,例如新上传资源在转码中,回落到原码代理 * OpenList:兼容 AList 旧版和小雅无 created 字段 * 任务工具 * 增加 `全量覆写` 功能:强制历遍所有目录、覆盖生成,避免先删除再生成时媒体库中媒体被自动移除 * 优化 `STRM 查找替换` 功能:替换内容不改变文件时间,避免媒体库中排序打乱 * 插件 * 修复任务级插件先启用再关闭时不应用全局插件配置 * UI * 修正 Webhook URL 为和当前请求相同的访问协议 * 任务编辑:更新 `增量生成模式` 的标签和描述 * 文件浏览:优化文件重命名和删除后处理逻辑,免重请求更新列表 * 新建任务:优化路径参数处理逻辑,兼容末尾带 `/` 时能正常获取下级目录 * 其他 * 驱动重构统一文件操作接口,优化调用效率 * 调整版本检查代码到后端 ## v0.2.x **核心特性**:新增123云盘开放平台支持,本地文件系统支持实时监听文件变更即时同步生成,插件系统支持任务级别配置,新增日志自动清理功能。 ### v0.2.3 * 驱动 * 123云盘开放平台:新增 `增强目录变更检测` 选项,使用目录大小信息(有10min左右滞后)辅助识别多层级的变更,建议开启 * 123云盘开放平台:修复复制文件时“获取文件数据失败” * STRM 生成 * 修复自 v0.2.0 引入的重复获取复制文件数据 bug ### v0.2.2 * 驱动 * **添加 123云盘开放平台 支持**,需自行申请[成为开发者](https://www.123pan.com/developer) * 夸克网盘:新增 `增强识别目录修改时间` 选项,以多层级下的最近文件新建时间作为父辈目录修改时间,建议开启 * 本地文件系统:增强文件监听的异常处理 * UI * 优化驱动参数字段默认值设定 ### v0.2.1 * STRM 生成 * 修复0字节元数据文件复制错误导致的任务中断 * 驱动 * 本地文件系统:优化本地监听任务的启动与停止逻辑 * 构建 * 更新多个依赖包版本 ### v0.2.0 * **添加日志自动清理功能**,默认保留主日志7天、任务日志1000行,可通过环境变量配置 * 驱动 * 本地文件系统:相关任务**支持实时监听文件变更,即时同步生成** (Pro) * 插件 * **支持任务级别的插件配置**:可对不同任务单独配置插件参数 * Infuse.ISO兼容: 优化命名逻辑,解决与不加后缀插件的冲突 ## v0.1.x **核心特性**:新增插件系统,支持Plex Web的STRM播放和302重定向,增强STRM生成错误处理,新增非法文件名修正、STRM内容替换、STRM不加扩展名、Infuse.ISO兼容等插件。 ### v0.1.2 * 插件 * 新增 文件名关键词排除 插件:生成时跳过文件名中含有特定关键词的文件 * 新增 STRM内容替换 插件:生成时自动替换 STRM 内的文本内容 * 302 代理 * **支持 Plex Web 的 STRM 播放和 302 重定向** * 兼容部分 Plex 客户端 302 重定向(需另行调整 Plex 远程设置) ### v0.1.1 * 插件 * 非法文件名修正:添加 `"` 为 Windows 文件名非法字符 * 新增 Infuse.ISO兼容 插件:以 .iso.strm 为后缀命名生成 ISO 文件 ### v0.1.0 * STRM 生成 * 增强错误处理机制,生成错误时跳过而不终止任务 * 支持部分复制的元数据(海报、json,以 `.-_` 分割)自动增加 .(ext) 更名 * 重构远程文件存在性检查逻辑,提升性能 * 驱动 * 115:调整刷新令牌的时间间隔,缓解临界状态刷新失败 * 插件 * **新增插件系统**,便于后续功能扩展 * 新增 非法文件名修正 插件:运行任务时重命名远端存储的非法文件名,去除特殊字符、截断过长的文件名 * 新增 STRM不加扩展名 插件:支持不添加如 .(mp4) 的扩展名 * 构建 * 更新多个依赖包版本 ## v0.0.x **核心特性**:首次发布,支持多驱动(OpenList/AList、WebDAV、本地文件、夸克网盘、115、天翼云盘),STRM生成与同步删除,Webhook支持(Emby删除同步、联动QAS/CloudSaver),302直链播放,CloudDrive2实时触发任务。 ### v0.0.11 * STRM 生成 * 修复同名媒体的元数据文件名匹配逻辑 * 驱动 * 夸克:修复部分视频有画面没有声音 * Webhook * 为 a\_task, qas\_strm, cs\_strm, web\_save 事件增加延迟执行支持 * 改进 a\_task 事件的 strm 字典处理逻辑为可选覆 ### v0.0.10 * 驱动 * 夸克:修复某些场景下载字幕等元数据失败的问题 * 302代理 * 修复播放本地资源时请求超时导致的暂停问题 * 后台管理 * 修复登录保持,Cookie 默认有效期 31 天 * 访问 /login 时,如已登录则自动跳转到首页 * 其他 * 重构组件加载方式,略微微微优化性能 * 优化部分日志输出 ### v0.0.9 * 驱动 * 调整 115、天翼的授权信息为主动刷新,减少掉授权的问题 * 优化 OpenList 目录刷新逻辑,解决新转存目标路径获取失败问题 (本次为部分驱动的优化和稳定性更新,如未使用以上驱动可不更新) ### v0.0.8 * Webhook * 增加网页转存时触发任务功能,依赖油猴扩展,支持115、夸克、天翼(使用相应驱动) * 驱动 * WebDAV:修复远端返回空时间的报错,兼容 PikPak * UI * 优化存储的用户 VIP 样式 ### v0.0.7 * 设置 * 优化初始化时 SmartStrm/Emby 地址的默认设置 * 优化版本信息记录和获取方式 * 302代理 * 夸克:网易爆米花添加到302白名单 * UI * 修正正则重命名替换为空时可用性的判断 ### v0.0.6 * 302代理 * 提高调用本地播放器时的起播速度 * 配置管理 * 优化配置读取逻辑,增加稳定性 * 增加配置写入异常时的备份机制 * UI * 添加任务和存储为空的引导提示 * 增强前端版本比较和提示 ### v0.0.5 * 驱动 * 修复115一处报错,优化一键授权回调逻辑 * 夸克优化视频直链获取,**部分资源支持杜比原码** * 302代理 * **Emby/Jellyfin 网页端支持嵌入调用外部播放器按钮** * 优化其他工具生成的 STRM 处理逻辑 * Webhook * 优化 Emby 同步删除代码 * 增加默认请求返回版本信息并优化错误处理 * UI * 增加重命名功能说明 * 增加关于页和第三方开源许可 ### v0.0.4 * 驱动 * **支持天翼云盘驱动🎉,不依赖 xxList 提供直链** * 修复115一处请求失败问题 * 尝试兼容某些不规范 WebDAV 服务 * Webhook * **支持 CloudDrive2 文件变更通知实时触发任务** (Pro) :*因作者专门斥巨资开了CD2会员来适配调试这个功能,故为Pro功能* * 使用多线程处理触发的任务 * 适配 CloudSaver 使用天翼云盘驱动任务的接收路径 * 任务工具箱 * 内容替换在当前页面保留输入,方便对多个任务进行相同替换 * 使用多线程处理后台任务 * 其他 * 存储名称过滤 / 字符,增强防错 * 优化异常处理和错误信息返回,帮助识别问题 ### v0.0.3 * STRM 生成 * 优化复制文件名的处理逻辑,如目录下有需生成的同名媒体,将复制的文件命名为 `同名.(media_ext).copy_ext` 解决 nfo 不匹配的问题 https://github.com/Cp0204/SmartStrm/issues/1#issuecomment-3216267328 * 302代理 * 修复观看 直播/IPTV 没有兼容的流 * 驱动 * 修复本地文件驱动兼容性问题 #1 * 修复本地驱动路径问题 * Webhook * 优化 Emby 同步删除时无效路径的错误提示 ### v0.0.2 * 驱动 * 添加 115 开放平台一键授权功能 * 夸克添加 SVIP+ 识别 * STRM 生成 * 修复大写扩展名的判断异常 * 调整远程目录读取失败时不创建本地目录 * 优化日志输出,增加读取目录失败计数 * UI * 完善页面文案描述、错误提示、防错 * 部分代码逻辑重构,提升性能 ### v0.0.1 首次发布,一个媒体库 STRM 文件生成工具。 和 Emby 优雅配合,支持 302 直链播放,支持同步删除远端文件。 正如其名,配合 quark-auto-save/CloudSaver, OpenList, Emby 力求即存即看。🥳 * 多驱动支持 * OpenList/AList、WebDAV、本地文件、夸克网盘、115 * STRM 生成 * 基础生成功能 * 远端删除自动清理 * 生成后缀、大小阈值、复制文件后缀等基础设定 * Webhook 支持 * Emby 媒体删除同步 * 联动 QAS/CloudSaver 触发任务 * 存储浏览 * 基础目录浏览 * 批量重命名(WIP) --- --- url: /help/tutorials.md --- # 第三方教程 感谢社区大佬们为 SmartStrm 创作的精彩教程! ## 视频教程 * [**10分钟搞定!飞牛OS部署 SmartStrm+Emby 最强联动**](https://www.bilibili.com/video/BV14shdzaEY7/) * [**SmartStrm 302 原理,使用演示,在外秒播云盘资源**](https://www.bilibili.com/video/BV1DKaGzUEP7/) * [**告别硬盘焦虑:手把手教你打造“空壳”影音系统,只有1KB也能看4K蓝光 | Jellyfin + SmartStrm + CloudSaver 闭环联动教学**](https://www.youtube.com/watch?v=5nhwJK8W_mw) ## 图文教程 * [**SmartStrm + Emby:夸克网盘 302 直链播放完全指南**](https://club.fnnas.com/forum.php?mod=viewthread\&tid=36387) * [**SmartStrm 部署,配置 Emby 媒体库,CloudSaver+QAS 联动,一站式302**](https://linux.do/t/topic/924963) * [**QAS+SmartStrm 部署、追更秒入库丝滑体验**](https://zhuanlan.zhihu.com/p/1943376528730756600) * [**SmartStrm +Emby +OpenList +Emby 联动删除,零成本NAS播放完全指南**](https://post.smzdm.com/p/amon9plz/) * [**SmartStrm + Openlist + 绿联影视中心 避免网盘风控**](https://club.ugnas.com/forum.php?mod=viewthread\&tid=2037) * [**飞牛影视配置 STRM 指南**](https://www.wifilu.com/4683.html) * [**搭建 Emby+SmartStrm 实现网盘影音丝滑播放**](https://mp.weixin.qq.com/s/cGc19triWkT5v_EjOvt0ig) * [**Docker 推荐:Strm 生成工具 SmartStrm**](https://mp.weixin.qq.com/s/q_Yz77DnZ4nRf3EjWaVxjg) * [**cloud189-auto-save + cas2ss + SmartStrm, 天翼云盘订阅追剧新姿势**](https://club.fnnas.com/forum.php?mod=viewthread\&tid=61826) * [**基于网盘的自动转存与 STRM 生成方案 CloudSaver + SmartSTRM + Jellyfin 实现零本地存储播放**](https://317520.xyz/post/wpzc) * [**使用 SmartStrm + Thunder-MT,普通白金会员(VIP)也可以在家流畅看高码率电影**](https://club.fnnas.com/forum.php?mod=viewthread\&tid=67721) ## 参与创作 有不少新手提到希望有较详细的视频或图文教程,因为~~作者很懒~~不爱写教程、宁愿写代码,如果你发布了关于 SmartStrm 的教程(公众号、B站、知乎、值得买、小红书、论坛等),图文视频均可,对其他用户有帮助的,**根据内容质量可兑换 1~2 年 Pro**,已购可续。 内容可以但不限于在各 NAS 系统的部署方法、和 OpenList、QAS、CS 联动配置、Emby、Jellyfin 入库配置、302 代理等。**注意,教程演示请勿使用国内版权资源。** **兑换方式**:将内容链接、平台登录截图(证明账号所有权)邮件到 `Cp0204📧163.com` [^1],参加并兑换成功默认视为授权 SmartStrm 对内容 RAG 检索、公开引用、保留原作者信息前提下的整理和转载。 [^1]: 邮件不回复任何一对一的使用咨询,如果你有此类问题,请加TG群交流。 --- --- url: /help/license.md --- # 许可说明 SmartStrm 遵循“基础功能免费,进阶特性订阅支持”的原则,定价极其合理,从高级功能中获取一定的回报、激励持续开发,更有利于项目的长远发展。 ## 订阅 Pro 1. **获取密钥**:前往 [License Store](https://licenserver.0x69.win/store/smartstrm) 订阅,订阅成功后将收到密钥邮件 * 点击管理后台左下角 **免费版** 也可跳转 2. **输入验证**:进入 **“系统设置**->**关于”**,输入密钥并点击 **验证** 3. **续订**:点击管理后台左下角的 **“到期时间”** 即可跳转续订页面 > \[!TIP] 邮箱与续订 > 许可密钥与邮箱绑定,邮箱是唯一标识,**同一个邮箱续订后有效期会累加延续**,续订后可以无须重新配置密钥,容器下次重启将自动读取最新到期时间。 > \[!TIP] 订阅性质与服务支持 > 订阅为软件功能使用权,并非部署、使用辅导等服务,因个人原因无法使用不支持退款。 > > 开发者将根据个人时间在交流群中提供有限的使用交流,如果您确实需要更深入的指导,可以另外联系付费的技术支持服务。 > \[!CAUTION] 密钥使用原则 > 密钥可以应用于你个人名下的多台私有服务器,但严禁用于转售或分发共享,严禁用于商业用途,否则将基于设备指纹、异地验证、短时间验证、验证次数等因素被系统综合判定后自动封禁。请妥善保管密钥,如不幸泄露,请及时主动联系开发者。 ## 版本差异对比 | 功能 | 免费版 | Pro 版 | | :------------------------ | :----: | :----: | | STRM 基础生成 | ✅ | ✅ | | 各类存储驱动支持 | ✅ | ✅ | | Emby 删除同步 | ✅ | ✅ | | 批量重命名 | ✅ | ✅ | | 网页、QAS、CS转存触发任务 | ✅ | ✅ | | 自定义 Webhook 触发 | ✅ | ✅ | | 任务级插件配置 | ⏰ | ✅ | | TMDB重命名 | ⏰ | ✅ | | 飞牛影视刷新 插件 | 🔢 | ✅ | | 提取视频封面 插件 | ❌ | ✅ | | 302 代理服务器 | ❌ | ✅ | | CloudDrive2 联动生成 | ❌ | ✅ | | MoviePilot 联动生成 | ❌ | ✅ | | 本地存储实时监听 | ❌ | ✅ | > ✅ 支持 | ❌ 不支持 | 🔢 次数限制 | ⏰ 限时免费/试用 ## LICENSE **SmartStrm**(以下简称“本应用”)是一个闭源项目,但站在巨人的肩膀上使用了多个开源库。我们尊重并遵守其 [《开放源代码许可》](/help/open-source-software-notice) 要求。 1. **项目性质与目的**:本应用旨在通过程序自动化提高网络服务的使用效率,没有对第三方的破解行为,只是对于已有的 API 进行封装和调用。若需达到最佳使用体验,用户仍需开通相关平台的付费服务。 2. **数据来源与责任限制**:本应用所处理的数据均直接或间接来源于第三方,开发者不对网盘中用户上传、存储的任何内容的合法性、准确性、完整性、安全性以及任何潜在的侵权行为负责,用户应自行评估并承担由此产生的一切风险。 3. **非商业用途与严禁非法用途**:本应用仅供个人学习、研究与交流使用,开发者禁止用户将本应用用于任何商业行为与非法用途。用户若将本应用用于非法用途,应独立承担所有法律责任,开发者不承担任何连带责任。 完整条款请参阅 [使用条款](/help/terms-of-service),隐私相关事项请参阅 [隐私政策](/help/privacy-policy)。 --- --- url: /help/resource.md --- # 资源与技巧 这里提供一些与项目使用非必须的,但可能对你整体使用有帮助的工具与技巧。 ## 精选工具 * [Quark-Auto-Save](https://github.com/Cp0204/quark-auto-save) 夸克网盘签到、自动转存、命名整理、发推送提醒和刷新媒体库一条龙。 * [CloudSaver](https://github.com/jiangrui1994/cloudsaver) 网盘资源搜索与转存工具,支持豆瓣热门榜单展示,支持115网盘,夸克网盘,天翼网盘,123云盘一键转存。 * [cas2ss](https://github.com/sisheng36/CAS2SS) 轻量级中间件,将 cloud189-auto-save 任务更新自动推送到 SmartStrm Webhook。 * [TGAutoSaveDrive](https://github.com/ccc333cn/tgautosavedrive) Telegram 频道追更转存助手,目前仅支持 115 网盘,重点适配 gimy115 和 QukanMovie 两类频道格式。 * [StrmTool](https://github.com/jinlin-teck/StrmTool) 为 Emby/Jellyfin 设计的插件,用于优化 strm 文件的媒体信息管理和播放体验。 ## 文档资料 * [Terminus 终点站 WIKI](https://embywiki.911997.xyz/docs/usage/play-in-browser/) 一个 Emby 公益服,并非让你注册它,其 WIKI “在各种设备上使用” 具有参考价值。 * [Emby公益不完全指北](https://wiki.freeembyguide.eu.org/docs/use/recommand.html) 其“客户端推荐”章节具有参考价值,帮助你选择适合自己的 Emby 客户端。 * [Emby 媒体命名最佳实践](https://emby.media/support/articles/Movie-Naming.html) * [Infuse 媒体命名最佳实践](https://support.firecore.com/hc/zh-cn/articles/215090947-%E5%85%83%E6%95%B0%E6%8D%AE-101) * [Windows 文件系统命名约定](https://learn.microsoft.com/zh-cn/windows/win32/fileio/naming-a-file#naming-conventions) ## 简明技巧 ### 夸克网盘移动端 URL 抓包 > 20260212 起,受夸克API改动影响,仅填 Cookie 无法获取302直链,具体表现为“回落到NAS代理,仅转码直链播放失败,日志报错 \[plf\_invalid]” > > 继续使用直链需要抓取移动端抓包,相关讨论:[#57](https://github.com/Cp0204/SmartStrm/issues/57), [OpenList#2115](https://github.com/OpenListTeam/OpenList/issues/2115) iOS 安装证书可以抓,安卓没 root 抓不了,可以在电脑上使用模拟器抓包,以下是简要教程: **准备工作**:电脑,下载 [MuMu模拟器](https://mumu.163.com/)、[proxypin-android.apk](https://github.com/wanghongenpin/proxypin/releases)、[夸克.apk](https://www.wandoujia.com/apps/7457948/history_v954) **实施步骤:** 1. 启动 MuMu模拟器: * **右上角菜单->设备设置->其他->Root 权限** 打开 * **磁盘->磁盘共享 展开->可写系统盘** 打开 2. 把 ProxyPin 、夸克 的 apk 拖入模拟器安装 3. ProxyPin 打开 **右上角菜单->HTTPS代理->启用HTTPS代理、安装根证书->一键自动安装到系统**,重启模拟器 4. 打开 ProxyPin 启动抓包,挂后台,打开 **夸克->登录后->随便点几个网盘文件夹**,回到 ProxyPin 查看抓到的请求 5. 在抓包列表找到 `drive-m.../file` 的请求,**长按请求->复制URL** (不要进入详情复制,否则参数不正确) 6. 将 URL 填入 **夸克网盘** 存储的参数中(v0.4.2+ 支持) ### 115 网盘风控说明 > 2026年2月左右,115开放平台大面积对用户(即使是VIP)实施严格的风控。当接口返回提示:"已达到当前访问上限,请稍后再试",这是被风控的表现。 **下面是佚名网友的经验分享:** 目前经过测算115open的永v用户大约是每天15000个访问动作就会每日访问上限,普通vip用户应该1万以内,qps速率应该限制在5以内。 所以你要清楚自己使用115open授权应用的习惯,知道哪些应用使用了115open。 访问动作包括(播放、整理重命名、下载视频文件和字幕图片元数据文件、提取媒体信息、扫片头片尾、截图等)每个文件操作一下就等同于一个访问。 所以如果你每天都大量整理资源就应该把这些访问数合理分配使用,不要去浪费在没有意义的动作上面。 1. 感觉永远不会看的剧就不需要提前提取媒体信息和提取片头片尾。 2. 不要把图片和nfo信息刮削进网盘存放,用emby刮到本地反而是多线程快的多。 3. Infuse打开一个剧集详情页就会同时给5集剧集做文件信息加载访问,所以不要浪费在这。 ### 解决 Emby 识别媒体问题 如因 Emby 无法识别出媒体封面和信息,可能是因为网络环境无法访问 TMDB API 导致,需要给 Emby 设置 HTTP 代理。Docker 部署在容器环境变量中添加如下两条: ```ini HTTP_PROXY=http://172.17.0.1:10081 HTTPS_PROXY=http://172.17.0.1:10081 # 以上 IP:PORT 改为你自己的代理地址,并设置为黑/白名单 ``` ### 飞牛 Docker 镜像没提示升级的更新方法 飞牛的镜像仓库有缓存,所以需要强制拉取,使用此方法无须命令行操作,只需点击几下即可。 1. 打开 **飞牛 WebUI->Docker->Compose**,停止项目 2. 在右侧的 **`···` 中->清理**,但不要删除 Compose ! 3. 在 **本地镜像** 中删除对应镜像 4. 重新回到 **Compose** 启动项目,将会重新拉取最新镜像和构建 --- --- url: /guide/what-is.md --- # 项目介绍 **SmartStrm** 是一款为私有媒体服务器打造的极效 **STRM 文件生成与管理系统**。 它主要面向NAS/家庭影音用户,旨在打通主流云盘(夸克、天翼、移动、115、123、迅雷、光鸭等)与私有媒体库(Emby, Jellyfin, Plex, 飞牛影视)之间的“最后一公里”。 实现云盘影音在私有媒体库中入库、播放,带来流畅的观影体验。 ![main](img/main.png) [快速部署 ->](/guide/deploy) ## 核心价值 1. **硬盘零压力**:将 TB 级别的蓝光资源映射为几 KB 的 `.strm` 文件,告别昂贵的硬盘扩容。 2. **入库不等待**:快速生成和入库,支持增量生成,新转存的电影、剧集直接加入你的媒体库中。 3. **播放不转圈**:依托 302 重定向技术,视频流直接由播放客户端向网盘请求,不经过你的 NAS 中转,避免带宽瓶颈。 4. **全自动闭环**:配合 `Quark-Auto-Save` `CloudSaver` 等工具,实现“转存->入库->播放”的全流程自动化。 ## 什么是 STRM? STRM 文件(`xxx.strm`)本质上是一个文本快捷方式。它告诉媒体服务器:“我并非二进制视频流,真正的视频流在下面这个 URL 里”。 **SmartStrm** 的任务就是: * 替你找到这些资源的真实 URL * 按照任务和规范的目录结构组织起来,自动生成 * 根据需要进行 302 劫持,让播放器获得最快的直链体验 ::: details STRM 文件详情 > 以下意译自 [Emby 文档 - STRM 文件](https://emby.media/support/articles/Strm-Files.html) 通过 STRM 文件,你可以让 Emby 像播放本地文件一样,直接播放网络上的各种音视频流。只要 Emby 支持相应的格式和传输协议,就能正常播放。 简单来说,STRM 就是个普通的文本文件,只不过后缀名改成了 `.strm`,里面写上了网络流的链接(URL)。这同样适用于本地或局域网共享的媒体,此时文件里填的就是文件路径,而不是网址。 **使用方法** 先新建一个文本文档,把后缀名 `.txt` 改成 `.strm`。然后用记事本(或其他文本编辑器)打开它,把网络流的直链地址填进去;如果是本地或共享文件,就填文件路径。 内容格式如下: ``` http://host/path/stream ``` 或 ``` mms://host/path/stream ``` 或 ``` rtsp://host/path/stream ``` 或本地路径: ``` F:/Movies/Topgun (1986)/Topgun.mp4 ``` 或网络共享路径: ``` \\EMBYSERVER\Movies\Topgun (1986)\Topgun.mp4 ``` **举例说明** 电影目录结构: ``` \Movies \300 (2006) 300 (2006).strm ``` STRM 文件适用于任何类型的视频,比如电影、剧集、音乐视频、家庭录像等。 命名方式和其他视频文件保持一致即可,然后放在同目录下就能被 Emby 识别。 ::: ## 功能一览 * **存储管理**:轻松聚合媒体资源,多驱动灵活支持 * **任务管理**:灵活的 Cron 计划,支持增量/同步生成,便捷的字符串替换工具 * **存储浏览**:内置简单文件浏览器,支持 TMDB 智能识别批量重命名 * **插件管理**:提供文件名修复、内容替换、通知刷新等多种扩展能力 * **Webhook**:强大的“朋友圈”功能联动,转存触发任务,Emby 同步删除 * **302代理**:一站式 Emby/Jellyfin/Plex/飞牛影视 302 直链播放 ## 工作原理 > \[!TIP] > > 引用请保留出处。*为便于识别和理解,部分细节仍有简化。* ```mermaid flowchart TD %% 定义节点样式 classDef keyNode stroke:#00a2e9,stroke-width:3; classDef cloudNode stroke:#f57c00; classDef playerNode stroke:#4caf50,stroke-width:3; subgraph GroupGen["📦 SmartStrm 生成"] storage["➕ 添加存储"] ==> task["📋 添加任务"] task ==> gen["📝 生成STRM"] end gen --> add2emby("📚 Emby入库") add2emby --> getplayinfo(["▶️ 请求播放"]):::playerNode getplayinfo ==>|8097| proxy{{"🎭 代理请求"}} getplayinfo -.-> |8096| emby subgraph GroupProxy["🚀 SmartStrm 代理"] proxy ==> ssHandle[/"🔀 处理数据"/]:::keyNode cache[("直链缓存")]:::keyNode -.-> smartstrm ssHandle ==> whatstrm{"🧠 识别
STRM类型"} whatstrm ==>|"由 SmartStrm 生成"| smartstrm["✨ SmartStrm解析"]:::keyNode whatstrm -->|"由第三方生成"| otherstrm["第三方解析"] end ssHandle -.->|交换数据| playback playback -.-> ssHandle emby -.->|⚡首播优化| ssHandle otherstrm -.->|支持302| cloud{{"☁️ 云盘"}}:::cloudNode smartstrm ==>|✅ 302重定向| cloud cloud ==>|🔗直链| player(["📺 播放器播放"]):::playerNode otherstrm -.->|不支持302| 第三方代理 -.->|NAS上行| player subgraph GroupEmby["Emby 默认"] emby["Emby"] -.-> isFirstPlay{"是否首播"} isFirstPlay -.->|否| playback[/"返回播放信息"/] -.-> decode["Emby解码"] isFirstPlay -.->|是| codec[识别媒体编码] -.-> playback cloud1{{"云盘"}}:::cloudNode -.->|数据流| codec cloud2{{"云盘"}}:::cloudNode -.->|数据流| decode end decode -.-> |NAS上行| player ``` --- --- url: /tutorials/fnos-strm-tutorial-external-access.md --- # 飞牛影视 strm 实战教程:手把手教你生成strm,外网播放全搞定,全程白嫖 > 原链接:https://mp.weixin.qq.com/s/J7ec2RbkK1s-aRh29jP7AA > > 作者:知新坊(微信公众号) 昨天,飞牛影视终于正式上线了 strm 功能,今天 ARM 系统 lean 也发影视包了支持 strm,对玩网盘影视的朋友来说,这个功能可以说是等了很久的,终于不用再为了刮削网盘资源而频繁触发风控,账号安全性一下子就上来了。 其实早在很久之前,就有不少用户在社区里反复提到 strm 的需求,而这一次,飞牛 NAS 总算是把它真正落地了。 功能虽然上线了,但在实际使用中我也发现了一个现实情况,很多朋友并不会生成 strm 文件,尤其是目前有些项目生成的 strm 文件,默认写入的是局域网 IP 地址,这就意味着它只适用于内网环境,一旦离开家里的局域网,播放就会直接失败。 也正因为这个原因,如果你希望在外网、异地甚至手机端正常播放 strm,就必须配合域名或者公网访问方式来使用,否则 strm 的优势很难真正发挥出来。 所以今天这篇文章,我用尽量简单、可照着操作的方式,从 strm 的生成方法讲起,再到如何解决外网播放的问题,一次性把这件事讲清楚,让你真正把飞牛影视的 strm 用起来,整个过程全部白嫖,不需要付费使用。 ## 安装 strm 生成项目 ### 1. 安装 SmartStrm 飞牛的朋友直接在应用中心 **安装套件 SmartStrm**,此应用其中 302 代理是收费的,但是我们不需要使用,用它免费的挂载网盘生成 strm 功能就行了。 ### 2. 登录 SmartStrm 使用浏览器访问 `http://ip:8024` 进行登录访问。 ### 3. 部署"节点小宝" 在 NAS 上面部署"**节点小宝**"使用他的专属域名作为 strm 文件的前缀。 因为如果你自己没有域名或者公网的话,在外网无法访问,所以我们借助节点小宝的专属域名,免费用户可以创建一个。 安装后登录并前往控制台,在快捷访问里面并在发现服务里面添加 **SmartStrm 项目进去**。 如果发现服务没找到就手动添加一下也行,添加后没展示出来,点击右上角刷新按钮就行了。 添加后生成专属域名。这个域名现在能直接打开 SmartStrm 项目。 此时就可以使用这个专属域名再去 SmartStrm 里面继续配置了。 > 有人会问免费的就 5g 流量够用吗?完全够,因为就 302 转跳一下 2kb-3kb 左右,加载一个视频只需要浪费 2kb-3kb 的流量,5g 流量消耗完我估算了一下一个月看 100 万部电影能用完。别用域名访问项目,就做 302 就可以了,至于影视资源图片之类的全部走飞牛 FN Connect 权益。 ### 4. 配置生成 strm 文件里面的基础地址 在 **系统设置** → **strm 设置** → **生成设置**,修改默认 strm 储存路径和基础地址 **(节点小宝专属域名)结尾不能有斜杠 /**。 安装的时候或者后台修改路径的,需要应用设置给权限。 ### 5. 挂载网盘 可以挂载夸克、115、天翼、123 等,找到 **储存管理** → **添加储存**。 **以夸克为例**,设置储存名称、驱动选择夸克网盘、填入夸克的 cookie,其他都保持默认就行。 **夸克的 cookie**:网页版登录夸克网盘获取,cookie 全部复制进去就行。 如下图能看到用户名和储存空间容量就是可以了。 ### 6. 创建任务 按照下面的设置完保存就行: * **任务名称**:随意(今后生成 strm 的文件夹) * **使用储存**:上面第 5 步骤创建的(自己按照自己设置的名字选) * **扫描路径**:就是夸克里面影视的储存目录(单击就可以选择) * **执行时间**:定期对目录进行扫描,并生成 strm 保存后,手动点击执行一遍任务。 可以通过日志查看进度。 此时我们去目录,就能看到生成的 strm 文件了。 并且可以打开一个 strm 看一下,里面的前缀是不是节点小宝的专属域名,是的话就没问题了。 此时我们就可以去飞牛影视里面进行添加和刮削了。 ### 7. 飞牛影视给 strm 添加权限 给 strm 文件夹添加权限。 ### 8. 添加媒体库 就是正常的影视后台添加分类和目录了,正常进行刮削就行了。 ## 飞牛影视存在的几点问题 * **115 网盘**:目前体验最好,STRM 基本秒播,效果不输 Emby,刮削还更省事 * **夸克**:走 302 转码播放,浏览器和飞牛播放器可播但飞牛 APP 不支持,且浏览器起播快,飞牛播放器起播慢 * **天翼云盘**:浏览器能播,APP 所有客户端暂时不行,后续有待观察 因为 app 播放有点问题还不太建议切换,可以先尝试一下用用看。 除了我讲的之外,你还可以使用 OpenList,但是有点麻烦,定时同步还得配合第三方,115 网盘生成的工具就很多了,什么 cms、mp 都可以。 > 个人观点,仅供参考 --- --- url: /tutorials/fnos-strm-guide-x86-arm.md --- # 飞牛影视配置STRM指南\[含X86/ARM] > 原链接:https://www.wifilu.com/4683.html > > 作者:WIFI之路 ## 背景 飞牛本周更新了影视应用(0.9.1),增加了对 STRM (流媒体链接文件) 的支持,现在我们可以利用 SmartStrm 等第三方工具,快速生成影视 STRM 库来实现 STRM 的兼容和播放。 ## 名词解释 ### 什么是 Strm STRM 是纯文本格式的流媒体链接文件,核心用途是存储影视文件的直连访问链接(多为网盘直链 URL),通常一个影视文件对应一个同名 STRM 文件。 举个例子:《流浪地球 2》的 STRM 文件(流浪地球 2.strm)中,会记录该影片的 MP4 直连 URL,示例为:`http://192.168.1.100:5244/d/电影/流浪地球2.mp4` 这类直链 URL 虽能在常规视频播放器中直接播放,但飞牛影视播放器不支持直接配置视频链接,而 STRM 文件可完美适配这一使用场景。 目前 STRM 文件可直接替代本地音视频原文件,适用于 Emby、Jellyfin、Kodi、飞牛影视等各类支持流媒体的播放器,且支持手动生成,也可通过第三方工具批量创建。 ### 什么是 SmartStrm SmartStrm [GitHub](https://github.com/Cp0204/SmartStrm) 是一个 Strm 文件的快速生成工具。 本质上就是网盘影视文件的「名称 / 目录」到本地 strm 文件的「一对一自动化转换器」。 ### SmartStrm 对比网盘挂载 **播放效率高** SmartStrm 可以直接生成本地的 Strm 文件库,这样影视播放器其实就是直接播放远程直链。如果是挂载网盘,可能需要缓存 / 中转数据。 **刮削入库快** 如果是网盘挂载影视播放器可能需要大量扫描读取文件内容,频繁读写易触发 API 限速。Strm 库就是个快捷方式,影视播放器入库只需要根据影视名刮削。 **无法自动获取视频内部截图** 因为刮削阶段仅读取本地 .strm 文本,不会访问 / 下载网盘视频源文件。.strm 是 "播放时才触发网盘请求" 的本地占位文件,刮削只扫文件名 / 路径,不执行 ffmpeg 帧提取、不读视频流,所以没法生成适配内部截图。 总结就是 SmartStrm 其实就是针对影视的一种特化挂载方式,提高网盘中影视文件的挂载效率。 ## 操作步骤 本文以夸克网盘为例进行讲解。 ### 1. 安装 SmartStrm(应用方式部署) 应用中心上架了 SmartStrm 应用直接安装即可。 #### 1.1 安装 SmartStrm **1.1.1** 应用中心搜索安装 SmartStrm 即可。 **1.1.2** 进阶配置中的 STRM 目录需要单独设置。 因为 SmartStrm 的默认 STRM 目录,飞牛影视无法识别。 我设置的是 `/vol2/1000/Media/Strm` 表示存储空间2中管理员下的 Media/Strm 目录,你可以在飞牛的文件管理中直接复制目录路径。 其他设置保持默认即可。 #### 1.2 新增 SmartStrm 允许访问的文件夹 打开 **应用中心** - **SmartStrm** - **应用设置** - **+文件夹** 选择刚刚安装中设置的 `/vol2/1000/Media/Strm` 即可。 ### 2. 安装 SmartStrm(docker方式部署) docker 方式部署,仅供参考。 #### 2.1 下载 Smartstrm 镜像 镜像仓库搜索 `cp0204/smartstrm` 下载。 #### 2.2 创建 Smartstrm 容器 **2.2.1** 端口设置保持默认。 **2.2.2** 存储位置需要做如下设置。 必须映射目录,不然飞牛影视无法读取 strm 数据。 * 添加 strm 库,用来映射 strm 数据 * 本地路径:`/vol1/1000/Media/strm` * 装载路径:`/strm` * 添加 logs 库,用来映射日志数据 * 本地路径:`/vol1/1000/Media/strmlog/logs` * 装载路径:`/app/logs` * 添加 config 库,用来映射配置数据 * 本地路径:`/vol1/1000/Media/strmlog/config` * 装载路径:`/app/config` 以上本地路径可以根据自己的需要灵活搭配,因为我飞牛影视已经添加了 Media 的权限,所以我为了省事儿就在 Media 中创建相关目录。 **2.2.3** 环境变量需要做如下设置。 添加两个环境变量,用户名和密码: * `ADMIN_USERNAME=admin` * `ADMIN_PASSWORD=admin123`(根据自己需要自定义) 其他不需要修改创建启动即可。 ### 3. 配置 SmartStrm #### 3.1 打开 ip:8024 登录 SmartStrm 管理面板 #### 3.2 存储管理中添加存储 我这里使用的是夸克,Cookie 获取可以参考相关教程。 其他配置如图所示。 #### 3.3 添加任务 添加任务的目的就是用来扫描生成 strm 库。 **3.3.1** 建议电影和电视剧分别建立两个任务,网盘内的目录也建议是两个目录。 **3.3.2** 执行时间需要双击或者编辑才会生成定时扫描任务,否则只能手动扫描。 **3.3.3** 底部插件和工具可以定义文件名格式或者过滤指定的文件,按照自己需要配置即可。 **3.3.4** 添加完成后需要手动执行扫描。才能生成 strm 库。 ### 4. 配置飞牛影视 首先你要确保你的飞牛影视版本在 0.9.1 以上。 arm 需要你手动安装 `trim-media-0.9.1-2-release-mainland-arm64.fpk` 这个离线应用。 #### 4.1 新增允许访问的文件夹 打开 **应用中心** - **影视** - **应用设置** - **+文件夹** 目录在你安装时的 `/vol2/1000/Media/Strm` 目录。如果已经添加其上级的 Media 目录,所以无需额外添加了。 #### 4.2 飞牛影视新增媒体库 选择存储空间 2/xx 的文件 `/Media/Strm/电影` 作为你的电影库目录。 现在你可以观看电影了。 ## 资源下载 解压密码:wifilu.com 来源:123盘 | 提取码: vGlR [立即下载](https://www.123865.com/s/9a5rVv-8HCsH?pwd=vGlR#)