Repository navigation
AniBox 更新日志
v4.0.0 (2026-10-22)
本次是 AniBox 的首个大版本,也是自原 Fntv-Plus 改名以来的全面重写:桌面壳由 Electron 迁移到 Tauri 2 + Rust 2024,界面改为 React 19 + TypeScript 自绘并直连飞牛影视 API,播放交给独立 mpv 进程;在此基础上补齐首页 / 发现 / 媒体库 / 详情 / 观影记录 / 设置 / 更新 / 诊断的完整链路,接入 Bangumi 账号与追番同步、AniList 放送时刻、TheIntroDB 片头片尾跳过、B 站扫码与自建弹幕源、原生手柄与 WebView2 离线安装。与旧 Electron 版在架构与代码上相互独立,并非旧版延续。
💿 全新架构(本版最大变化)
- 桌面壳迁移到 Tauri 2 + Rust 2024:不再把网页塞进浏览器或做网页注入,前端 React 19 + TypeScript + Vite 自绘界面,Rust 侧承载配置、登录、播放、缓存、更新等核心能力;不再依赖 Electron 运行时,安装与启动链路整体精简。
- 直连飞牛影视 API:移植 Authx 登录链路,登录态、媒体库、季集、播放信息全部走原生接口;NAS 地址支持裸 IP、无协议头、全角冒号等宽容写法,错误按「构建 / 连接 / 超时」分类提示。
- 独立 mpv 进程播放:
mpv.exe以--input-ipc-server命名管道(JSON 行协议)与 Rust 通信,uosc 底栏、右键菜单、字幕、着色器与弹幕脚本原生可用;同一进程内loadfile replace复用会话,换集不再反复起进程。 - 本地 Go 代理复用:NAS 拉流经随包
proxy.exe(127.0.0.1:22346)中转,保留原项目的鉴权与重定向链路;需要请求头时由本地 relay 补齐 Referer / UA。 - 三级缓存与自定义协议:内存 → 磁盘 → 网络三级缓存,磁盘按 LRU 淘汰到上限 90%;新增
fntvimg(NAS / TMDB / Bangumi 图片代理)与fntvweb(热补丁覆盖层)两个自定义协议。
🏷 品牌升级:Fntv-Plus → AniBox(番盒)
- 全仓改名与标识统一:应用名、窗口标题、安装包产物(
AniBox-*)、仓库地址、徽章与文档统一为 AniBox;可见文案里遗留的 Fntv-Plus 全部清理。 - 数据目录自动迁移:旧 identifier
com.fntv.plus.tauri2的配置、缓存与 WebView 数据自动迁移到com.anibox.app,升级无需手动搬配置;旧版 AES-256-CBC 访问码/密码在迁移时解密后按 AES-256-GCM 重加密。 - 品牌视觉重做:新增 AniBox 应用图标(Windows / macOS / 各尺寸),顶栏字标改为纯 CSS/SVG 内联文字 + 多色渐变 + 缓慢流动动画(
prefers-reduced-motion兜底),不再内嵌商业字体。 - README 与合规重写:按原项目结构重排(徽章 / 声明 / 截图 / 功能 / 结构 / 安装 / FAQ / 合规 / 致谢),改用 Iconify SVG 图标;采用 GPL-3.0,新增第三方致谢与
THIRD_PARTY_NOTICES.md。
🏠 首页与界面
- 全屏 Hero 轮播:无限循环、首尾克隆位无缝衔接(克隆位先无动画映射回真实位,任何时刻点击都响应),补兜底复位定时器与 reduced-motion 守卫;海报优先取 TMDB 面积最大的横版,飞牛图兜底。
- 「继续观看」与媒体库横排:首屏未看完内容一键续播,卡片补齐集号 / 单集标题 / 剩余时长;横排加雪佛龙翻页,左缘统一对齐。
- 媒体库卡片信息增强:海报卡补充年份 / 季集数 / 更新时间 / 续看剩余,缺失字段自动隐藏;海报卡四按钮(播放 / 已看 / 收藏 / 更多)。
- 顶栏全局聚合搜索:
Ctrl K/⌘ K一次检索媒体库全部内容,结果按「全部 / 电影 / 电视剧 / 电视直播 / 人物 / 其他」分页,支持键盘上下选择、左右切页、回车直达详情。 - 外观与性能模式:浅色 / 深色主题、界面透明度滑杆(默认 85%)、性能模式(关闭动画与磨砂);主题切换改为从按钮处镂空扩散,所有页面 / 子视图返回上一级补转场动画。
- 侧栏与顶栏:侧栏改为覆盖式浮层(动态模糊),启动默认收起、展开后点击外部或任一入口自动收起;顶栏按背景亮度在纯黑 / 纯白间二值切换,按钮与图标自适应反色。
🔍 发现与元数据
- TMDB / Bangumi 双面板:左栏按媒体库版式重做(时间线 / 网格 / 紧凑列表 + 搜索 + 统计条),右栏为 Bangumi 账号与追番面板。
- Bangumi 账号绑定与追番同步:手动粘贴 Access Token 绑定,支持收藏状态同步与冲突策略;观看进度过 80% 自动把该集标「看过」,有条目观看记录时默认把追番状态改为「在看」。
- 新番日历与往季番表:右栏新番表显示「第 N 话」与精确放送时刻(AniList 官方 API 补 BGM 缺的「几点更新」),今日状态条提醒「已追订阅更新」;往季番表按年份 / 季度查询,名称改中文(BGM 数据源),卡片可点进详情。
- 评分与元数据:详情页新增评分组件(BGM + TMDB 双源,含分布透视与排名兜底);海报卡「⋯ → 刷新元数据」打开手动匹配弹窗,同时搜索 TMDB 与 Bangumi 镜像,选定后只写本地
metadata_overrides.json,按「剧 guid」统一覆盖标题 / 简介 / 评分 / 海报 / 季集数,可随时清除恢复。 - 自建镜像与降级:Bangumi / TMDB / GitHub / 统计均优先走自建镜像(带准入签名),缺密钥或网络错误按模块策略降级;Bangumi 图片改走自建
/img/*,规避lain.bgm.tv被 DNS 污染导致的裂图。
🎬 详情页
- 两栏沉浸式布局:全幅头图 + 大标题 / 元数据 + 播放·收藏 + 玻璃简介与演职员,右侧竖向选集;头图从顶栏下沿铺满首屏,底部无透底。
- 标签页与内容分页:详情 / 评论 / 吐槽 / 关联 / 角色 / 更多;关联条目横向分栏(一列一个关系),无 Bangumi 条目 id 时隐藏评论与吐槽。
- 选集自动定位与多版本:打开详情自动滚动到上次观看的那一集(跨季先切季),用户手动滚动即放弃定位;同一作品多文件时显示版本选择器,默认「上次播放的版本」→ 本机记忆 → 第一个版本。
- 剧照与人物:剧照改全屏轮播(只取 4K、最多 6 张),新增演员页
PersonPage与作品聚合;评论 / 吐槽拆成两页并各按设计稿重做版式。
▶️ 播放
- 起播链路重做:改用命令行直启(直链 + Referer / UA /
http-header-fields全进 mpv 命令行,零启动期 IPC),直链预检与 mpv 启动并行、代理预热,修复「窗口起来却播不动」与起播白等数秒。 - 拉流根因修复:必须用
play/info解析出的 guid 去拉流(而非原始容器 guid),修复拉流 500;播放前置校验与会话刷新对齐主仓库链路。 - 片头片尾跳过:mpv 内
smart_skip脚本 + TheIntroDB v4 自动识别并跳过 OP / ED,Rust 侧按「guid → TMDB ID / 季 / 集」下发skip-metadata,无 TMDB 锚点时不误触发。 - 电视直播直链:直播条目直接取
play/info.live_channels[]的可播地址起播(不走对直播返回 500 的playvideo),自动挑选可用线路并记录线路名。 - PotPlayer(可选):命令行起播 +
potctl.exe轮询进度,Referer / UA 由本地 relay 代转;设置面板可切换 mpv / PotPlayer 并统一播放后端(relay / potctl),修复 PotPlayer 标题与列表乱码(可读文件名 + HLS 分片绝对化)。
💬 弹幕
- 本地弹幕 shim:
127.0.0.1:22347为 uosc_danmaku 提供 B 站弹幕接口,注入标题并复用会话,逐源展示命中情况;补齐 NAS 字幕端点(搜索 / 下载),AniBox 内「加载字幕」与在线中文搜索恢复可用。 - 自建弹幕源:接入
danmu_api子进程(127.0.0.1:22352),支持最多 4 个地址故障转移,未命中自动降级内置 B 站弹幕,失败根因直接展示在弹幕面板。 - B 站账号与缓存:弹幕面板新增 B 站登录 / 扫码(qrcode SVG 本地渲染)、Node 一键检测与自建源配置、弹幕缓存清理。
📺 观影记录
- 合并去重:数据 = 飞牛
play/list∪ 本机播放历史,Rust 侧按「作品」聚合、按剧级 guid 去重,列表时间倒序。 - 三种展示与热力图:海报网格 / 紧凑列表 / 时间线三种展示并记忆选择;活跃度热力图改为日级台账(播放过即算、按剧集去重一天一次),旧 Electron 版台账自动迁移。
- 年度报告:总时长、部数、月度节奏、观影时刻、年度 TOP5、连续天数、看完率,支持年份切换与导出 PNG 长图;本地记录补齐
duration_ms/watched_ms/progress/finished,上限提升到 3000 条。 - 评分与评语:详情浮层并列 TMDB / BGM 评分,支持「我的 5 星 + 评语」并落盘
ratings.json。
⚙️ 设置 · 更新 · 诊断
- 设置面板重写:六组(通用 / 外观 / 账号 / 缓存 / 诊断 / 关于)、10 个标签分类,带切换动画、键盘导航与窄窗适配;启动页、关闭行为三态、托盘、缓存上限、库隐藏、轮播 Logo 开关等集中管理。
- 双通道更新:热补丁只覆盖前端静态资源(下载 → sha256 校验 → 原子切换 → 可回滚,走
fntvweb覆盖层);全量更新后台流式下载(Range 断点续传)完成后直接拉起 NSIS 安装器,不跳转 GitHub。 - 反馈与诊断:应用内工单(新建 / 我的工单 / 会话 / 轮询)、诊断日志与 mpv 日志分级过滤、组件级开关、诊断包导出、日志脱敏上传、匿名统计开关。
- 原生手柄:Rust
gilrs显式切 XInput 后端全局轮询,前端焦点导航 + 设置面板(开关 / 死区 / 方向阈值 / 长按延迟 / 连跳间隔);mpv 或 PotPlayer 在前台时同样可用,窗口失焦自动暂停。
📦 安装与兼容
- WebView2 离线安装:Windows 打包由
downloadBootstrapper改为offlineInstaller(silent),安装包内置 x64 离线全量运行时,双击安装无需联网;新增tools/fetch-webview2-offline.ps1(多架构短链、断点续传、SHA-256 校验)与docs/webview2-offline.md(含 0x80010108 排查)。 - 自绘安装器:NSIS + 自绘界面(封面 / 许可 / 进度 / 完成页),修复双击入口
ERR_FILE_NOT_FOUND、进度分母、PLUGINSDIR 清理与任务栏图标等问题。 - fpk 微应用同步:
fpk/并入主仓库并改名 AniBox,产物为AniBox-<版号>.fpk(ARM64 为-arm64.fpk);内置镜像取数与弹幕源,影视应用文件零改动。 - 合规:首次启动免责声明闸门、设置内免责声明 / 开源许可 / 第三方致谢入口,GPL-3.0 许可与第三方资源声明齐全。
💻 支持平台
- ✅ Windows 10 / 11 (x64)(主要平台,已实测)
- ✅ 飞牛 fnOS(NAS / fpk 微应用;x86_64 已实测、ARM64 未实测)
⚠️ macOS / Linux:构建配置已就绪,尚未验证
📥 下载指南
| 平台 | 文件类型 | 说明 |
|---|---|---|
| 💻 Windows | .exe(NSIS) |
AniBox_4.0.0_x64-setup.exe,由维护者手动上传至本 Release(不通过自动构建),已实测 |
| 🍎 macOS | .dmg / .app |
构建配置已就绪(bundle.targets = "all"),将通过 GitHub Actions 自动构建并上传至本 Release;未实测 |
| 🐧 Linux | .AppImage / .deb / .rpm |
构建配置已就绪,将通过 GitHub Actions 自动构建并上传至本 Release;未实测 |
| 🏠 飞牛 fnOS | .fpk |
微应用(NAS),按主机架构选包:x86 主机装 AniBox-<版号>.fpk(已实测);ARM 主机装 AniBox-<版号>-arm64.fpk(.fpk;不改影视应用任何文件,原生 5666 端口访问不受影响,卸载即还原。升级:应用中心卸载时勾选「保留数据」→ 安装新包,设置与缓存自动恢复 |
💻 Windows(x64,已实测)
- 安装包:
AniBox_4.0.0_x64-setup.exe(NSIS + 自绘安装界面),由维护者手动上传至本 Release;系统要求 Windows 10 / 11 x64。 - 安装步骤:双击安装包 → 选择安装模式(当前用户 / 所有用户)与安装路径 → 可选创建桌面 / 开始菜单快捷方式 → 完成后直接启动。
- WebView2 运行时:安装包已内置 x64 离线全量运行时(
bundle.windows.webviewInstallMode = offlineInstaller,silent),安装全程无需联网;最低版本109.0.0.0。系统已安装且版本达标时自动跳过。 - 安装包体积:因内置离线运行时,包体比在线版大约 127 MB(压缩后),属正常现象。
- 无法安装 / 白屏 / 报
0x80010108:先完全退出(含托盘)再启动或重启系统;仍失败时手动运行同目录的MicrosoftEdgeWebView2RuntimeInstallerX64.exe /silent /install修复运行时;仓库根目录安装WebView2.cmd为联网兜底入口。详细排查见docs/webview2-offline.md。 - 完整性校验:
Get-FileHash .\AniBox_4.0.0_x64-setup.exe -Algorithm SHA256,与发布说明中的指纹比对。
🍎 macOS(构建配置就绪,将通过 GitHub Actions 自动构建,未实测)
- 产物形式:
src-tauri/tauri.conf.json的bundle.targets = "all",在 macOS 上构建会产出AniBox.app与AniBox_4.0.0_<arch>.dmg(Intel x64 与 Apple Silicon arm64 需分别在对应架构机器上构建,不产出通用二进制)。 - 系统要求:macOS 10.15 (Catalina) 及以上;渲染使用系统自带 WKWebView,无需额外运行时。
- 获取方式:将由 GitHub Actions 自动构建(构建配置已就绪,
bundle.targets = "all"),产物(.app/.dmg)发布到本 Release,无需自行构建。 - 安装步骤:打开
.dmg,把AniBox.app拖入「应用程序」。 - Gatekeeper(重要):项目未做 Apple 开发者签名与公证,首次打开会被系统拦截。可右键 App →「打开」并确认,或执行:
sudo xattr -dr com.apple.quarantine /Applications/AniBox.app - 无法打开时:确认包架构与本机一致(Intel 机不能装 arm64 包);可从终端
open /Applications/AniBox.app查看具体报错;若提示「已损坏」,执行上面的xattr -dr后再试。 - 播放依赖:随包
third_party/fntv-mpv、proxy.exe为 Windows 版二进制,macOS 构建需自行准备对应平台的 mpv 与代理,或在设置中把mpv_path指向本机 mpv(如brew install mpv)。
🐧 Linux(构建配置就绪,将通过 GitHub Actions 自动构建,未实测)
- 产物形式:同一份
bundle.targets = "all"配置,在 Linux 上构建会产出.deb、.rpm与.AppImage;发行版差异较大,产物将由 GitHub Actions 自动构建并发布到本 Release。 - 系统依赖:WebKitGTK 是系统共享库,无法像 WebView2 那样内置:
- Debian / Ubuntu 系:
sudo apt install libwebkit2gtk-4.1-0 libgtk-3-0 - Fedora / RHEL 系:
sudo dnf install webkit2gtk4.1 gtk3 - 构建机另需 Tauri 2 编译依赖(
build-essential、libwebkit2gtk-4.1-dev、libgtk-3-dev、librsvg2-dev、patchelf等)。
- Debian / Ubuntu 系:
- 安装步骤:
.deb:sudo apt install ./AniBox_4.0.0_amd64.deb(包管理器会自动补齐声明的依赖)。.rpm:sudo dnf install ./AniBox-4.0.0-1.x86_64.rpm。.AppImage:chmod +x AniBox_4.0.0_amd64.AppImage && ./AniBox_4.0.0_amd64.AppImage(便携,无需安装)。
- 注意事项:AppImage 虽打包了大部分库,仍依赖宿主机的 glibc、图形驱动与部分系统库,不保证「拷贝即用」;内网离线部署需自备 apt / dnf 依赖源。
- 播放依赖:弹幕与播放器配置已内置,但需自行安装 mpv(要求版本 > 0.37.0);随包
third_party/fntv-mpv、proxy.exe为 Windows 版二进制,Linux 构建需替换为对应平台的 mpv 与代理,或把mpv_path指向本机 mpv。 - 无法启动时:从终端运行可看到缺失库的具体报错(多为缺少
libwebkit2gtk-4.1);补齐上述依赖后重试。
📦 更新机制说明(4.0 起沿用双通道)
- 热补丁更新:只覆盖前端静态资源,应用内下载 → 校验 → 原子切换,重载生效,可一键回滚;Rust / 原生依赖改动不在热补丁范围。
- 全量包更新:应用内后台下载(支持断点续传)完成后拉起 NSIS 安装器覆盖安装。
⚠️ 本版为全量包更新(3.x → 4.0.0,第一位增加):桌面壳与播放架构整体更换,热补丁覆盖不到,请下载完整安装包覆盖安装;旧版配置与缓存会在首次启动时自动迁移。- 🏠 飞牛 fpk 版不参与上述自动更新:升级方式即上表「应用中心卸载(勾选保留数据)→ 安装新
.fpk」。
AniBox v4.0.0 · 全面重写后的首个大版本 🎉