milmilmilmil
功能

离线下载

把剧集、字幕和弹幕留在 Mac 上,没有服务器也能播。

概览

macOS 客户端可以把一部作品复制到本机,在连不上服务器时照样播放。它不是第二个媒体库,而是「接下来要看的东西」的缓存:受你设定的磁盘配额约束,看完之后会自动消失。

离线下载是 macOS 客户端的功能。服务器只提供一个描述「一份副本需要什么」的接口;Web 端只做串流,不保留本地副本。

一份副本包含什么

每一集都完整保留,播放时不需要再去取任何东西:

部分说明
媒体文件原始文件,逐字节复制。不转码、不重新封装。
外挂字幕服务器已知的每一条 sidecar 字幕轨,含语言与标题。内嵌字幕随文件本身一起保留。
弹幕制作副本当时的弹幕快照。

手动保留

在作品页或离线分页选择要保留的剧集。进度按集显示,重启后会续传;可以把某一集固定住(pin),下面的规则就不会删它。

自动保留

自动保留默认关闭——不问一声就占掉几个 GB 是很讨厌的事。在设置 › 离线里打开后,它会:

  • 为你追的每部作品保留接下来 1、2、3 或 5 集未看的剧集。
  • 在启动时、每小时、以及服务器通知有新集可看时各跑一次。
  • 在你最后一次播放后 24 小时删掉已看完的副本(固定住的除外)。
  • 通过优先删除最早看完的副本,把占用控制在配额内——5、10、20、50 或 100 GB。固定住的副本永远不会被删。

播放

本地副本位于播放阶梯的最上层:

  1. 离线副本 —— 直接从 Mac 自己的磁盘播放。
  2. 本地文件 —— 通过挂载的卷读取媒体库文件。
  3. 直接串流 —— 向服务器发 byte-range 请求。
  4. 重新封装 —— MKV 转成 MP4。
  5. HLS 转码 —— 自适应串流。

某一层不可用时播放器会退到下一层,所以副本在应用不知情的情况下被删掉,也只是改为串流而已。

保持最新

清单里的每个文件都带 ETag 和大小。当服务器上的文件发生变化——换了更好的版本、修复了一次坏掉的下载——本地副本就对不上了,下一轮规则运行时会重新下载。

API

GET /api/v1/anime/{bangumiId}/offline-manifest 一次返回一部作品的全部可播剧集:文件 URL、大小、ETag、容器与编码、字幕轨、弹幕 URL——客户端做一份副本所需的一切。见 API 参考。

本页内容