Shadow Language 隐私说明
更新日期:2026-09-06
Shadow Language 是一个在 YouTube 和 Bilibili 页面提供逐句精听、跟读节奏控制和学习资产同步的 Chrome 扩展。播放器控制可以不登录使用;云同步和公共字幕读取需要 CloudBase 账号。公共语料由操作者通过本地 YouTube 频道批量导入工具整理,不由普通用户观看行为产生。
收集与存储的数据
学习 Agent
用户配置自己的 DeepSeek Key 后,可主动在全屏页或视频右侧面板提问。相关对话、选定的字幕及邻近上下文,以及 Agent 为回答问题查询到的相关笔记、知识文档、记忆、收藏或观看记录会发送至 `api.deepseek.com`。配置页的连接测试也会调用该接口并产生少量模型用量。
Key 仅保存在本机扩展源的独立存储,不上传 CloudBase、不写入笔记或数据导出;可在 AI 设置中删除。它不是操作系统密码保险箱。会话、引用笔记、用户明确保存的记忆与导入知识文档保存在本机,按登录身份分隔;Agent 页面可导出当前身份的资料。字幕笔记保存原句和时间点,AI 回答只保存在会话中,通过消息引用关联。删除笔记不删除原会话;被笔记引用的会话需先移除引用再删除。账号删除请求成功提交后,本机该账号的 Agent 资料同时清除。
Agent 不读取 Chrome 完整浏览历史,不采集录音,不提供学习评分。视频和资料中的人物信息不会主动作为用户个人记忆保存。
默认保存在当前 Chrome profile:播放偏好、字幕缓存、视频进度、保存的单词/短语/句式、跟读或重播事件、待同步队列、用户主动选择的词汇量档位和文本测评基线,以及保存单词对应的本地词卡、FSRS 复习日志和背词目标。CloudBase SDK 的登录凭据使用独立命名空间保存在扩展存储中。
登录后同步到 CloudBase:账号设置、设备 ID、扩展/适配器版本、视频进度、学习资产、跟读或重播事件,以及同步与安全审计记录。Google 登录由 CloudBase 配置的 Google OAuth 身份源处理;扩展通过 Chrome `identity` API 接收一次性回调码,再由 CloudBase 换取自己的会话凭据。
扩展不会从用户观看页上传字幕或视频元信息。公共语料仅由操作者在本地运行频道批量导入工具,按 manifest、串行下载、限流退避和公开视频状态校验写入公共数据集合;普通用户只能通过公共语料库读取发布后的元数据和派生学习指标。
不收集的数据
扩展不读取或上传 Cookie、Google 密码、CloudBase 邮箱密码、评论、推荐列表、完整搜索记录、完整浏览历史、视频文件或音频文件;不申请麦克风权限,不录音,不调用语音识别或发音评分服务。
使用目的
学习数据用于跨设备恢复进度和学习资产;本期本地词卡、FSRS 复习日志和背词目标不上传 CloudBase。字幕查词默认会在当前英文字幕显示后,向词典 provider 预取当前句及后续最多三句中的标准化英文单词和有限短语候选;预取不发送视频 ID、标题、时间码或整段字幕。点击 `生词数:xxx` 打开 Chrome 原生 Side Panel 后,扩展还会为完整生词 lemma 列表请求中文翻译;该请求只发送标准化英文单词,不发送视频 ID、标题、时间码或整段字幕。实际 hover 查词时,为显示当前语境,扩展还会发送当前句文本。词典 provider 返回的释义、翻译和发音结果只保存在当前 Chrome profile 的缓存中,不进入 CloudBase 学习同步。已批量导入的公共字幕用于去重、字幕质量检查,以及生成词汇、语速、句法、CEFR 难度和分级生词预习等学习分析。“读懂多少”提供 NGSL tab(三挡:NGSL-S、NGSL、NGSL-GR)和 SUBTLEX-US tab(0、500、1,000、1,500、2,000、2,500、3,000、4,000、5,000、7,000、8,500、10,000);只有 SUBTLEX-US 数值档位同步到字幕超纲高亮、文本覆盖率和本地缓存语料适合度。项目不根据观看、收藏或跟读行为推断或自动修改用户水平,不用于广告或跨站画像。
共享、公开与保留
Bilibili 公共字幕由维护者主动导入并发布,保留来源署名和版本信息;登录用户可以获取已发布的中英文字幕及时间码用于学习。扩展向 CloudBase 发送当前视频的 ep/BV、cid 和时长以匹配字幕,不上传 Bilibili 字幕。Bilibili 页面内的原生字幕请求复用该网站的登录状态,扩展不读取或上传 Cookie。YouTube 公共语料同样由维护者通过频道批量导入工具整理,不由用户观看页上传。维护者可以撤下字幕关联;撤下后不再向新请求提供该版本,已经下发的文本无法收回。
数据首先由项目的腾讯云 CloudBase 环境处理。为生成 CEFR 难度、中文解释和分级生词表,CloudBase Worker 会把已批量导入的英文字幕、时间码、视频标题/频道和确定性统计发送给 DeepSeek API;DeepSeek API Key 仅存在服务端,不进入扩展包。批量导入的 YouTube 字幕全文和时间码保持内部分析用途;其公共目录通过 `corpus.publicList` 下发 YouTube 元数据、缩略图和派生指标,不下发字幕正文、时间码或贡献者身份。
字幕查词使用 Free Dictionary API 和 MyMemory REST API。默认预取只发送当前/邻近字幕中拆出的英文词汇与有限短语,不发送 YouTube 视频标识或整段字幕;hover 请求可能附带当前句文本以提供语境示例。音频 URL 由词典 provider 返回,播放请求由浏览器直接加载;没有音频时使用本机浏览器语音合成。词典请求不要求登录,也不写入 CloudBase。
词汇量档位与文本测评基线使用本地存储;语料适合度只在对应字幕已经存在于本地缓存时按 token/lemma 覆盖率计算,不因计算适合度新增上传或建立公共用户画像。
本地导入器的临时文件会在任务结束或失败清理,manifest/archive 按操作者的本地保留策略管理;限流记录约 2 分钟后过期;幂等记录默认保留 7 天;完成的账号删除任务记录默认保留 30 天。账号删除会移除私有学习数据;历史 `sl_contributions` 关联仍由后台清理,以处理旧版本数据。公共批量语料不因普通用户账号删除而变化。
用户控制
用户可以撤销其他设备、导出账号数据,或提交账号删除任务。账号删除完成后,扩展会退出登录并清除本地私有缓存。退出登录同样会清除当前扩展中的私有缓存和 CloudBase SDK 凭据。
安全
扩展只通过 `shadowLanguageApi` 云函数访问业务数据;客户端不直接读写 CloudBase 数据库。所有云端写入使用服务端 UID、字段白名单、请求体限制、幂等键和分层限流。仓库中的数据库客户端规则配置为默认拒绝。
离线词典(2026-09-10)
插件内置 ECDICT 常用英汉词库。悬停命中时在本地查询,不发送词典请求;点击完整词典可向 Free Dictionary API 查询补充释义和音频。本地未收录的词语仍可通过 Free Dictionary API / MyMemory 在线查询。词库来源和许可证随扩展包含在 ECDICT-LICENSE.txt 中。