背景
最近在折腾 OpenList(Alist的分支)挂载天翼云网盘,希望通过 WebDAV 协议在 AIMP 播放器中直接播放音乐。配置完成后,浏览文件列表正常,但点击播放时总是失败。播放器报错无详细提示,只显示“File is unstreamable”其他软件要么显示“无法播放”要么点击歌曲无法播放进度条一直不动。
排查
1. 发现 302 重定向
经过各种测试和与一些软件作者交流得知:
访问openlist是带着header认证信息的,openlist重定向到天翼云的链接,但是后端把这个header传给天翼云了,导致访问天翼云失败
-
AIMP → OpenList(携带
Authorization: Basic xxx认证头) -
OpenList 返回 302 重定向 → 天翼云真实下载链接
-
AIMP 自动向天翼云发起新请求,原封不动地带上之前对 OpenList 的认证头
-
天翼云不识别该认证头,返回 403/401 拒绝访问
2. 问题本质
多个服务之间的认证信息错误传递。
AIMP 在处理 HTTP 重定向时,错误地将“对上游服务的认证头”传递给了下游服务(天翼云)。天翼云只接受自己的认证方式,因此拒绝播放。
尝试的解决方案
理想方案:让播放器在重定向时忽略认证头
AIMP等一些软件如果有“重定向时不转发认证头”“忽略请求头”的选项最好不过了,只需要打开即可解决问题
解决方案 1:换用一些支持自动忽略请求头的播放器
目前知道Light Player和Aplayer 是没问题的
Aplayer 比较特殊它是直接挂载webdav的
Sylvakru 和作者反馈了他说下个版本会修复(不支持版本3.1.2)(6月17日22点20分开发者私信我说已经修复了)
解决方案 2:本地代理模式
如果 OpenList 改为“本地代理”(不返回 302,而是由 VPS 转发数据),数据流会经过 VPS。但我的 VPS 月流量只有 10 GB,这一方案会导致流量翻倍,无法长期使用。
解决方案 3:本地挂载后播放
用 Rclone 将天翼云挂载为本地磁盘,AIMP 直接读取本地文件。虽然需要缓存,但彻底避开了 HTTP 认证问题。适合固定曲库场景。(多客户端多设备使用时比较麻烦特别是安卓端)
最终结论
自身不好解决这个问题,最好是能联系到软件开发者让开发者增加一个忽略请求头的设置
-
302 重定向时,不要自动转发
Authorization、Cookie等敏感头,除非目标服务与上游同域或明确需要。 -
提供可配置的“忽略重定向认证”开关,方便用户应对像天翼云这样不接受外来认证头的服务。
我目前的解决办法
没解决 哈哈 只能使用原生自带WebDav的软件挂载到播放器上了
后续:
时间2026年6月17日Sylvakru已更新为3.2.0并在更新内容里提到
- 修复了在使用 OpenList WebDAV 重定向模式时,音乐无法正常播放的问题。
- 修复了当 WebDAV URL 包含初始路径时,无法读取音乐文件标签的 Bug。
目前可以正常使用了