日志原文:
20261024 18:49:57 || macos RuntimeError: Task error: File reconstruction error: CAS Client Error: Request error: HTTP status client error (401 Unauthorized), domain: https://cas-server.xethub.hf.co/v2/reconstructions/2e8a8401c4a126d8605898f71acc020d0cd19c4011ccf0f3c1da5b2ade0f042d
现象说明
在 macOS 上运行 pyVideoTrans(视频翻译字幕工具),触发文件重建任务时报错:
- 错误类型:
RuntimeError - 核心原因:
File reconstruction error文件重建失败 - CAS 客户端返回:
401 Unauthorized - 请求地址:
https://cas-server.xethub.hf.co/v2/reconstructions/xxx
401 的含义:鉴权失败,服务端拒绝本次请求,没有合法有效的身份凭证。 CAS 在这里是项目的内容寻址存储服务,负责模型 / 资源文件拉取、分片重建,不是学校单点登录 CAS。
根因汇总
- Token 失效 / 缺失:本地保存的 CAS 访问令牌过期、清空、损坏,是最常见原因;
- 网络问题:代理、翻墙、DNS 污染导致请求头里的 Authorization 被篡改或者丢失;
- 版本不匹配:pyVideoTrans 版本过旧,内置的 CAS 鉴权逻辑不再适配服务端;
- 服务侧权限变更:hf.co 这个远端 CAS 服务调整了访问策略,旧密钥不再放行;
- 缓存损坏:本地缓存目录里的 CAS 元数据、分片记录异常,触发重建流程反复鉴权。
分步解决方案(按优先级尝试)
方案 1:重新登录 / 刷新 CAS Token(优先试)
打开 pyVideoTrans 主程序,找到模型源设置:
- 退出当前账号 / 登出;
- 重新登录,让程序重新拉取、写入最新的鉴权 token;
- 重启软件,再次执行下载 / 重建任务。
很多时候只是 token 超时,重新登录即可修复 401。
方案 2:切换模型数据源,绕开这个 CAS 服务
这个 cas-server.xethub.hf.co 是 HuggingFace 侧的一个代理 CAS 节点,鉴权不稳定是常态:
- 在软件设置里切换模型源:国内镜像源 / 手动本地模型;
- 关闭自动在线重建,改为手动下载模型文件,放到本地模型目录;
- 软件优先读取本地模型,不再走远端 CAS 重建接口,直接规避 401。
方案 3:网络层面排查(macOS 特有)
macOS 上代理、VPN、Clash、Surge 很容易破坏 Authorization 请求头:
- 临时关闭所有代理、分流工具,直连网络重试;
- 不要用会替换 HTTP Header 的代理规则;
- 如必须代理:开启 “不修改请求头” 模式,关闭 auth 头篡改。
方案 4:升级 pyVideoTrans 到最新版
旧版本内置的 CAS 客户端、鉴权链路已经失效:
# 如果是 pip 安装版本
pip install --upgrade pyvideotrans
注意:macOS 建议使用项目自带打包 dmg,避免 pip 环境和 GUI 版本不一致。
方案 5:清理本地缓存
找到 pyVideoTrans 的缓存目录,删除 cas 相关缓存:
- 缓存路径一般:
~/Library/Caches/pyVideoTrans/ - 删除里面
cas、reconstructions、shard相关文件夹; ⚠️ 注意:删除后会重新下载分片,流量较大。
方案 6:直接手动下载模型,离线使用(终极稳定方案)
当 CAS 服务持续 401、鉴权策略锁死时,放弃自动重建:
- 去模型仓库手动下载完整模型包;
- 放到软件指定的本地模型文件夹;
- 在界面选择本地模型,不再调用
cas-server.xethub.hf.co接口。
补充说明
这个报错不是 macOS 系统权限、防火墙、磁盘权限问题,不要去改 SIP、磁盘权限,属于远端资源服务的鉴权拦截。 401 ≠ 403:
- 401:没有合法凭证(token 过期 / 没带 token)
- 403:凭证有效,但没有访问权限
小结
遇到 cas-server.xethub.hf.co 401,排查顺序: 重登刷新 token → 关闭代理 → 更新软件 → 切换镜像源 → 手动离线模型 离线模型方案是长期最稳的选择,不受远端 CAS 服务鉴权波动影响。