收起左侧

飞牛影视 iOS 手机端无法使用 STRM 播放视频(网页版正常 安卓版正常)

3
回复
73
查看
[ 复制链接 ]

1

主题

3

回帖

0

牛值

江湖小虾

系统版本:X86

设备环境:虚拟机、局域网、fn0S 1.2.0302、iOS 应用版本为 V1.33.2、iOS 版本为 iOS27beta、飞牛影视版本为 0.9.7-3

BUG现象:使用SmartStrm刮削的STRM,在飞牛iOS客户端影视无法播放,网页版播放正常 安卓版正常

具体为SmartStrm使用SmartStrm的 115open 驱动和 webdav(公网服务器的 openlist)刮削的STRM 文件在飞牛影视 iOS 客户端都无法播放(提示:“STRM直连播放异常,可能原因:网盘挂载连接断开、触发网盘风控、网盘限制非会员操作。(403)”),但是网页版可以正常播放,不管开启网盘优先直连还是关闭网盘优先直连都无法正常播放,已排除 STRM 本身问题和网盘问题,个人怀疑是飞牛影视 iOS 客户端的 STRM 直连逻辑有问题导致的。

upload 附件:fnOS_STRM_HAR_sanitized_2026-08-03.zip

具体原因高度指向:

飞牛 iOS 获取直链时指定 User-Agent: trim_player,但把 115 CDN 地址交给 iOS 原生播放器后,最终媒体请求没有继续携带这个 UA,115 因 UA 与直链校验不一致返回 403。

关键证据

两端请求的是同一个 media_guid、同一个 STRM 文件、同一个 115 CDN 文件路径。

电脑调用 /v/api/v1/stream 时提交:

"header": {
  "User-Agent": ["Mozilla/5.0 ... Chrome/150 ..."]
}

服务端返回:

"header": {
  "User-Agent": ["Mozilla/5.0 ... Chrome/150 ..."]
}

手机调用相同接口时提交:

"header": {
  "User-Agent": ["trim_player"]
}

服务端也明确返回:

"header": {
  "User-Agent": ["trim_player"]
}

两端拿到相同的 115 CDN 文件,但临时直链中的两个字段不同:

  • t:生成/有效时间不同;
  • k:直链校验值不同。

这说明服务端不是简单返回固定地址,而是按当前播放请求生成临时直链。手机必须使用服务端要求的 trim_player 请求该直链。

电脑端浏览器能够自然保持 Chrome UA,所以正常;iOS App 网络请求使用 Alamofire,但实际播放通常切换到 AVPlayer/AppleCoreMedia。若飞牛没有正确向 AVURLAsset 注入 trim_player,或者 iOS 27 Beta 没有在重定向及后续 Range 请求中保留它,就会出现当前 403。

排除项

HAR 显示手机端:

  • /stream 两次均返回 HTTP 200;
  • 响应业务码均为 code: 0
  • STRM 已成功解析成 115 CDN 原画地址;
  • 媒体信息、HEVC、音频信息均解析成功;
  • 没有出现 OpenList、SmartStrm 或飞牛服务端返回的 403。

手机 HAR 中唯一的 502 来自照片服务的 /p/api/...,与影视播放无关。

因此错误发生在:

飞牛返回 115 CDN URL
→ iOS 原生播放器请求 CDN
→ 115 返回 403

最终 CDN 请求没有被这份手机 HAR 捕获,所以暂时无法直接看到它实际发送的 UA,但前后证据已经非常集中。

建议追加给官方

对比 iOS 与 Web HAR 后发现,两端 /v/api/v1/stream 均成功返回 HTTP 200 和 115 CDN 原画地址。Web 端请求及响应中的指定 User-Agent 均为 Chrome UA;iOS 端请求及响应中的指定 User-Agent 均为 trim_player。115 CDN 地址的校验参数随请求重新生成。怀疑 iOS 客户端将直链交给 AVPlayer/AVURLAsset 后,没有在初始请求、302 重定向及后续 Range 请求中持续携带服务端返回的 User-Agent: trim_player,导致 115 校验失败并返回 403。请检查 AVURLAsset 的 HTTP Header 注入及 iOS 27 下重定向后的 Header 保留逻辑。

补充交叉测试:同一账号、同一局域网、同一媒体及同一 STRM,分别使用 iOS 27、iOS 18、Android 和 Web 测试。iOS 27 与 iOS 18 均稳定提示 STRM 直连异常 403;Android 与 Web 均可正常播放。由此可排除 iOS 27 Beta、STRM 文件、网盘风控及直链本身异常,问题应为飞牛 iOS 客户端通用播放逻辑。结合 HAR,iOS /stream 响应要求使用 User-Agent: trim_player,请重点检查 AVPlayer/AVURLAsset 初始请求、重定向及 Range 请求是否持续携带该 UA。

出现频率:必现

联系方式:飞牛fnOS粉丝群712-热河

425637d3-4ad4-4d92-96c3-e21d05a24121.jpeg

213d670b-2c37-4e80-91f5-d5add29e1dd1.jpeg

收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

1

主题

3

回帖

0

牛值

江湖小虾

昨天 13:08 楼主 显示全部楼层

补充交叉验证:Android、iOS 18、iOS 27 Beta 和 Web 均连接同一台 NAS、同一个飞牛影视服务端,播放同一个媒体库中的同一 STRM 文件。Android 与 Web 均可正常播放,iOS 18 和 iOS 27 Beta 均稳定返回 STRM 直连异常 403。因此可以排除服务端版本差异、iOS 27 Beta、STRM 文件、SmartStrm、115 网盘风控及直链失效,问题可定位为飞牛 iOS 客户端通用的 STRM 直连播放逻辑。

HAR 显示 iOS 调用 /v/api/v1/stream 成功,HTTP 状态为 200、业务码为 0,服务端已成功解析 STRM 并返回 115 CDN 原画地址,同时明确返回播放请求头 User-Agent: trim_player。错误发生在客户端获得直链之后。请重点检查 iOS AVPlayer/AVURLAsset 是否在初始媒体请求、重定向以及后续 Range 请求中持续携带 User-Agent: trim_player。Android 客户端对照正常,可直接比较 Android 与 iOS 最终访问 cdnfhnfile.115cdn.net 时的实际请求头。

已知问题 麻烦等待后续版本修复

9

主题

20

回帖

0

牛值

江湖小虾

一样的问题

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则