功能
离线下载
把剧集、字幕和弹幕留在 Mac 上,没有服务器也能播。
概览
macOS 客户端可以把一部作品复制到本机,在连不上服务器时照样播放。它不是第二个媒体库,而是「接下来要看的东西」的缓存:受你设定的磁盘配额约束,看完之后会自动消失。
离线下载是 macOS 客户端的功能。服务器只提供一个描述「一份副本需要什么」的接口;Web 端只做串流,不保留本地副本。
一份副本包含什么
每一集都完整保留,播放时不需要再去取任何东西:
| 部分 | 说明 |
|---|---|
| 媒体文件 | 原始文件,逐字节复制。不转码、不重新封装。 |
| 外挂字幕 | 服务器已知的每一条 sidecar 字幕轨,含语言与标题。内嵌字幕随文件本身一起保留。 |
| 弹幕 | 制作副本当时的弹幕快照。 |
手动保留
在作品页或离线分页选择要保留的剧集。进度按集显示,重启后会续传;可以把某一集固定住(pin),下面的规则就不会删它。
自动保留
自动保留默认关闭——不问一声就占掉几个 GB 是很讨厌的事。在设置 › 离线里打开后,它会:
- 为你追的每部作品保留接下来 1、2、3 或 5 集未看的剧集。
- 在启动时、每小时、以及服务器通知有新集可看时各跑一次。
- 在你最后一次播放后 24 小时删掉已看完的副本(固定住的除外)。
- 通过优先删除最早看完的副本,把占用控制在配额内——5、10、20、50 或 100 GB。固定住的副本永远不会被删。
播放
本地副本位于播放阶梯的最上层:
- 离线副本 —— 直接从 Mac 自己的磁盘播放。
- 本地文件 —— 通过挂载的卷读取媒体库文件。
- 直接串流 —— 向服务器发 byte-range 请求。
- 重新封装 —— MKV 转成 MP4。
- HLS 转码 —— 自适应串流。
某一层不可用时播放器会退到下一层,所以副本在应用不知情的情况下被删掉,也只是改为串流而已。
保持最新
清单里的每个文件都带 ETag 和大小。当服务器上的文件发生变化——换了更好的版本、修复了一次坏掉的下载——本地副本就对不上了,下一轮规则运行时会重新下载。
API
GET /api/v1/anime/{bangumiId}/offline-manifest 一次返回一部作品的全部可播剧集:文件 URL、大小、ETag、容器与编码、字幕轨、弹幕 URL——客户端做一份副本所需的一切。见 API 参考。