Undertone 弦外 隐私政策
最近更新:2026 年 10 月 17 日。本政策从本插件在 Chrome 应用商店首次发布之日起适用。
Undertone 弦外(下称「本插件」)是帮助学习日语的浏览器插件。字幕的处理都在你的电脑上完成,不上传你的字幕内容。不登录账号时,我们不收集、不上传你的学习数据;你自己选择登录 Undertone 账号后,学习数据会同步到我们使用的云服务(见下面「账号与同步(可选)」)。只有在你自己打开「翻译服务」之后,本插件才会把需要翻译的字幕句子直接发给你选的翻译服务商(见下面「会联网的情况」)。
本插件读取的内容
- 在 Netflix、YouTube 的观看页上,读取网站发给你浏览器的字幕文字(日文,以及你选的第二语言),用来显示双语字幕、假名注音、口语讲解和查词。
- 同时从网站自己的数据里取出这一集的编号和标题(Netflix 还有季、集序号),用来区分各集、标出收藏的出处;其余网页数据不保存。
- 不读取、不下载、不录制视频和音频,不绕过任何版权保护措施。
- 关掉「启用 Undertone」后,页面上不再显示本插件的界面;但在 Netflix、YouTube 观看页上播放的视频(包括关着时新打开的、切到的下一集),字幕仍会像打开时一样被读取(包括所选的第二语言字幕),在本机分词并存入分词缓存(不上传),以便你重新打开时立即恢复。
保存在你电脑上的数据
| 数据 | 存在哪里 | 谁能读到 | 用途 |
|---|---|---|---|
| 设置 | 浏览器的同步存储(chrome.storage.sync);你开启了 Chrome 同步时,Google 会在你的设备之间同步它 | 本插件(包括在视频网页里运行的部分) | 记住你的显示偏好 |
| 分词缓存(最近约 200 集的字幕原文和分词结果,按平台和剧集编号保存) | 本插件自己的 IndexedDB | 只有本插件的后台 | 再次打开同一集时更快 |
| 收藏(含剧集编号、标题和所在句子)、每集的「最近出现」和「已播放到」、标注反馈(含剧集编号、标题和所在句子;「拆得不对」另含当时的拆解结果和中文字幕) | 浏览器本地存储(chrome.storage.local) | 本插件(包括在视频网页里运行的部分) | 提供学习功能 |
| 许可证密钥、激活编号、购买邮箱(仅高级版) | 本插件自己的 IndexedDB | 只有本插件的后台 | 确认高级版资格 |
| 高级版状态(是否高级版、状态、上次校验时间;不含密钥和邮箱) | 浏览器本地存储(chrome.storage.local) | 本插件(包括在视频网页里运行的部分) | 让视频页上的界面知道是否解锁高级功能 |
| 翻译服务设置(服务商、模型名、端点地址、API Key;只在你打开过翻译服务页时才有) | 本插件自己的 IndexedDB | 只有本插件的后台 | 连接你选的翻译服务 |
| 翻译结果缓存(发给翻译服务的句子或词的摘要值,和翻译服务回的中文) | 本插件自己的 IndexedDB | 只有本插件的后台 | 同一句不重复请求、不重复花钱 |
| 翻译服务状态和最近一集的用量(是否启用、服务商、模型名、请求和命中缓存的次数;不含 API Key) | 浏览器本地存储(chrome.storage.local) | 本插件(包括在视频网页里运行的部分) | 让视频页上的界面知道要不要请求翻译,并在设置页显示用量 |
| 登录凭证(登录令牌和你的邮箱;只在你登录账号后才有) | 本插件自己的 IndexedDB | 只有本插件的后台 | 保持登录 |
| 同步的记录(每条学习数据的摘要值、上次同步到哪;只在你登录账号后才有) | 本插件自己的 IndexedDB | 只有本插件的后台 | 只同步改动过的数据 |
| 登录状态和同步状态(是否登录、上次同步时间、失败原因;不含邮箱和学习数据) | 浏览器本地存储(chrome.storage.local) | 本插件(包括在视频网页里运行的部分) | 在设置页显示账号和同步状态 |
这些数据存放在浏览器留给本插件的存储里,视频网站自己的网页脚本不能直接读取存储。但右侧列表和底部字幕栏是画在视频网页里的,列表上显示出来的内容(例如你收藏的词、本集的句子)在网页里是看得到的,网站的脚本理论上也能看到;许可证密钥和购买邮箱从不显示在视频网页里,只出现在插件自己的许可证管理页上;翻译服务的 API Key 也从不显示在视频网页里,只在插件自己的翻译服务页上输入,只用于直接请求你选的服务商,永不发送给我们,也不随导出的文件带出。不登录账号时,这些数据不会发送给我们;登录后同步哪些、不同步哪些,见下面「账号与同步(可选)」。你可以在右侧列表设置页的「数据」一组里清除分词缓存、导出标注反馈和收藏;收藏的词可以在「收藏」里逐条删除,标注反馈在高级版有效期间可在「讲解」里清空;翻译结果缓存和 API Key 可以在翻译服务页清除;每集的「最近出现」和「已播放到」只有在卸载本插件时才会被删除,卸载时浏览器会删除本插件在这台电脑上保存的全部数据;登录账号后,还可以在账号页导出或删除云端的数据。导出的文件归你自己保管,是否把它发给开发者由你自己决定。
会联网的情况
- 读取字幕:本插件按网站播放器给出的字幕轨信息,向 Netflix 的字幕下载域名(nflxvideo.net)和 YouTube(www.youtube.com)请求这一集的日文字幕和你选的第二语言字幕(YouTube 上第二语言没有人工字幕时,请求的是 YouTube 的自动翻译)。这些请求由视频网站按它们的隐私政策处理。
- 限时免费期间:高级版功能免费开放,本插件不连接 Lemon Squeezy,也不联网校验许可证。
- 购买和校验高级版(开始收费之后):购买在 Lemon Squeezy(我们的付款与销售服务商)的网页上完成,Lemon Squeezy 按它自己的隐私政策(https://www.lemonsqueezy.com/privacy)处理你的邮箱和付款信息。激活时,本插件把许可证密钥和一个固定的设备名称(「Undertone Chrome」)发送到 Lemon Squeezy 的许可证接口(api.lemonsqueezy.com),Lemon Squeezy 回给这台设备的激活编号和购买邮箱;校验、解除时发送许可证密钥和激活编号。已激活的高级版大约每 7 天校验一次;没有高级版资格的记录,在你打开视频页、工具栏弹窗或许可证管理页时最多每 10 分钟校验一次;联网失败后隔一会儿(通常约一分钟)再试。你也可以在许可证管理页点「重新校验」立即校验。
- 翻译服务(默认关闭;你在翻译服务页填写 API Key 并启用后才有,Google 免费翻译不需要 API Key):本插件的后台把正在看的这一集里需要的字幕句子(当前句和后面两句中,本地词表查不到、或没有中文字幕的那些)、或查词卡上词典查不到的词和它所在的句子,直接发送到你选的服务商——DeepSeek(api.deepseek.com)、OpenAI(api.openai.com)、Google 翻译(translate.googleapis.com)或你自己填写的兼容端点;使用 DeepSeek、OpenAI 和自定义端点时,请求里带着你的 API Key。服务商按它自己的隐私政策处理这些内容和你的网络(IP)地址。同一句的结果缓存在本机,不会重复发送;关闭翻译服务后不再发出任何翻译请求。
- 账号与同步(只在你登录账号后):本插件的后台连接 Supabase,用来登录、续期登录和同步你的学习数据,详见下面「账号与同步(可选)」。
- 视频网站和 Lemon Squeezy 在收到请求时能看到你的网络(IP)地址,由它们按各自的隐私政策处理。
- 除此之外,本插件不向任何服务器发送数据,不使用统计分析、广告服务,也不加载远程代码。
账号与同步(可选)
- 不登录账号时,本插件的一切功能照常可用,学习数据只在你的电脑上。登录是你自己的选择:用邮箱和密码注册;注册确认和找回密码时,我们通过 Supabase 给你的邮箱发一封带 6 位验证码的邮件。
- 我们使用 Supabase(我们的数据库与登录服务商,服务器位于新加坡)保存账号和同步的数据。Supabase 保存:你的邮箱、加密存储的密码(我们看不到原文)、登录记录,以及你登录后同步的学习数据。Supabase 按它自己的隐私政策处理这些数据和你的网络(IP)地址。
- 登录后同步的数据:收藏、标注反馈、每集的「已播放到」和「最近出现」、设置,以及翻译结果缓存(默认同步,可在账号页关掉)。本插件的后台在这些数据改动后、每 5 分钟、以及你点「立即同步」时,把改动过的记录发到 Supabase(supabase.co),并取回你在其他电脑上的改动。
- 永远不同步、不上传的:翻译服务的设置和 API Key,许可证密钥、激活编号和购买邮箱,分词缓存。
- 每个账号只能读写自己的数据(数据库按账号隔离)。传输经 HTTPS 加密;云端的学习数据不是端到端加密的,我们的服务商和我们在维护服务时技术上能看到。
- 导出与删除:账号页的「导出我的数据」把云端保存的你的全部学习数据下载为一个 JSON 文件(不含 API Key 和许可证密钥);「删除账号」会永久删除你的账号和云端的全部数据,不能恢复,这台电脑上的数据保留。「退出登录」只影响这台电脑。
权限说明
storage:保存设置和学习数据。offscreen:在插件的后台页面里,用随插件打包的词典做日语分词和查词(不联网)。alarms(登录账号功能开放后才申请):每 30 分钟续一次登录,每 5 分钟取回一次你在其他电脑上的改动。- 访问 netflix.com、nflxvideo.net:在 Netflix 观看页上显示字幕,并下载这一集的字幕文件。
- 访问 api.lemonsqueezy.com(开始收费之后才申请):激活、校验、解除高级版许可证。
- 可选的网站访问权限 api.deepseek.com、api.openai.com、translate.googleapis.com,以及你自定义的端点地址:安装时不申请;你在翻译服务页保存设置时,浏览器会弹出提示,只申请所选服务商的那一项,用来发送翻译请求。
- 在 www.youtube.com 上运行:在 YouTube 观看页上显示字幕。本插件在 YouTube 上以内容脚本运行,不在网站访问权限(
host_permissions)里单独列出;Chrome 在安装时仍会提示本插件可以访问 www.youtube.com 上的数据。
儿童
本插件不面向 13 岁以下的儿童。不登录账号时,本插件本身不收集任何人的个人信息;购买高级版时,Lemon Squeezy 会把订单信息(例如购买邮箱)提供给我们,用来确认订单和售后。你登录账号时,我们通过 Supabase 保存你的邮箱和同步的学习数据(见「账号与同步(可选)」)。
变更
隐私政策如有变更,会更新本页面,并修改上面的「最近更新」日期。
联系我们
请通过 Chrome 应用商店本插件页面的「支持」标签联系我们。
本插件与 Netflix、YouTube 无任何关联,也未获得其认可。Netflix、YouTube 是其各自所有者的商标。