隐私说明

用 TurboDL 的时候,哪些数据会离开你的机器;以及那些永远不会离开的东西。

docs/i18n/legal/PRIVACY_zh-CN.md在 GitHub 上查看原文下载

这份说明回答一个问题:用 TurboDL 的时候,哪些数据会离开你的机器。

写它不是为了合规凑数。下载工具天然要替你访问网络,所以"它到底往哪儿发东西"值得说清楚, 而不用你自己去翻源码确认。

TurboDL 是一个库,不是一个服务#

这一点决定了下面所有内容:没有我们的服务器,也就没有"我们的服务器收到了什么"这一说。 你在自己机器上跑它,它替你做网络请求,仅此而已。

什么时候会联网#

只有这些时刻,而且都由你触发:

时刻请求去哪里
你提交一个下载任务你给的那个 URL。TurboDL 只访问这一个地址
分片并发还是那个 URL,用 HTTP Range 请求不同的字节区间
HLS 下载M3U8 清单所在的地址,以及清单里写明的分片地址
DNS 解析系统 DNS;如果你配了 TurboConfig.dns,就是你自己填的静态 hosts 或 DoH 服务
你配了代理你填的代理服务器

没有别的出站连接。没有"心跳",没有"上报",没有后台悄悄发起的请求。

不会发生的事#

  • 不做使用统计,不收集设备信息、安装量、功能调用次数。
  • 不做崩溃上报。异常会在你调用的地方抛出来,由你的程序决定怎么处理。
  • 不做更新检查。库不会去问"有没有新版本";CLI 也不会在运行时联网查版本。
  • 不读与你无关的文件。它打开的是你指定的目标文件与自己的续传状态文件。
  • 不改与你无关的路径。除非你的代码给了它那个路径(例如 JS 插件显式开启了外部目录)。

落在磁盘上的东西#

文件说明
目标文件你要下到哪儿就写到哪儿
断点续传状态分片进度记录,与你指定的目标文件同目录。任务完成或删除后清理
JS 插件的沙箱目录只有加载 JS 插件时才创建,位于工作目录下的 turbodl-js/<插件目录名>/,含 storage/(插件自己的持久数据)与 downloads/(临时下载)

插件的沙箱目录名由插件 id 加一段短摘要组成 —— 两个不同 id 的插件不会共用目录, 卸载时清理的是它自己那一份。

关于 JavaScript 插件#

JS 插件跑在嵌入式的 QuickJS 引擎里,每个脚本一个运行时与一个上下文。脚本能做的事被 宿主 ABI 限定:算 URL、拼请求头、生成签名、读写自己的沙箱目录、写日志。

它不经手下载的数据流,也读不到沙箱之外的文件 —— 除非加载它的宿主把 allowExternalDestination 打开,明确允许写外部路径,同时也就明确承担了相应的后果。

插件写的日志进入宿主的日志系统(host.log),落在哪里由你的程序决定,TurboDL 自己不写日志文件。

官网站点#

官网站点是纯静态页面:没有分析脚本,没有 Cookie,没有从第三方 CDN 拉来的字体或图标 —— 样式、图标、脚本都随页面一起发布。打开它就是在看一堆文件,不会因此产生任何"访问统计"。

(更新日志页上的版本信息由 GitHub 的公开 API 在你本地抓取后写进仓库,访客打开页面时不会 触发对 GitHub 的请求。)

如果你发现了问题#

这份说明与代码不一致,就是一个需要修的问题 —— 请在 Issues 里告诉我们。代码里没有做到的事, 文档里就不该写着做到了。

← 全部文档