Viewgram 隐私政策
1. 先说结论
- Viewgram 是基于 Telegram 开源客户端制作的第三方应用,不是 Telegram 官方应用。你的 Telegram 账号、消息、频道、群组、照片和视频,是在你的设备与 Telegram 的服务器之间直接传输的;Viewgram 不运营 Telegram 账号体系,我们的服务器不会收到、也不保存这些内容。
- Viewgram 自己的服务器只保存第 5 节列出的少量数据:会员状态与购买记录、日活记录、热力图观看统计、云端同步数据、反馈工单。热力图和云端同步对所有人免费,默认打开,可在设置里关闭。
- 在你于首次启动时同意本政策之前,App 不会向 Viewgram 的服务器发送任何请求。
- 字幕的语音识别完全在你的设备上运行,音频不上传。
- Viewgram 不含广告 SDK,不含第三方统计或崩溃上报 SDK,不出售你的数据,不跟踪你跨 App 或跨网站的行为。
- 你可以随时在 App 内「设置 › 关于与反馈」删除我们服务器上与你有关的大部分数据,或撤回同意(见第 10 节)。
2. 我们是谁
运营者:VIEW TECH LTD(Company No. 17054082,England and Wales)(以下称「我们」)
联系邮箱:support@viewgram.org
App 内联系入口:设置 › 关于与反馈 › 发送反馈
3. 定义
- 「Viewgram」「App」:Viewgram for iOS 应用。
- 「Telegram」:Telegram Messenger 及其运营的服务器和服务;Viewgram 与之没有隶属关系。
- 「Viewgram 服务器」「我们的后端」:我们通过网关 api.viewgram.org 提供的服务,数据库与认证服务托管在 Supabase。
- 「Telegram 用户 ID」:Telegram 分配给你账号的数字编号,不是手机号。
- 「Viewgram Pro」:通过 Apple App 内购买订阅的付费功能。
- 「同步密钥」:App 为每个 Telegram 账号随机生成、保存在 iCloud 钥匙串里的 32 字节密钥;服务器只保存它的 SHA-256 散列。
- 「匿名会话」:为这台设备在我们的后端创建的匿名账号,不含手机号或邮箱。
- 「你」:使用 Viewgram 的成年用户。
4. Telegram 部分:我们不做什么
Viewgram 通过 Telegram 的 MTProto 协议连接 Telegram 的服务器。登录(手机号、验证码、两步验证密码)、消息收发、频道和群组内容、媒体文件的下载与上传、语音与通话、联系人同步、推送通知、Telegram 提供的翻译服务,都由 Telegram 处理,适用 Telegram 的服务条款(https://telegram.org/tos)和隐私政策(https://telegram.org/privacy)。
- 我们不会把你的消息内容、联系人、手机号、通话、聊天记录、媒体文件发送到 Viewgram 的服务器;
- 我们不能读取你的 Telegram 云端聊天,也不能替你登录、找回或删除 Telegram 账号;删除 Telegram 账号需要通过 Telegram 提供的方式(App 内为「设置 › 隐私和安全 › 若不活跃则删除我的账号」及相关选项);
- Viewgram 在界面上对 Telegram 的内容做了重新排列(推荐信息流、阅读模式等),这些排列在你的设备上完成。
5. Viewgram 服务器保存的数据
App 只通过我们的网关 api.viewgram.org(运行在 Cloudflare 上)访问我们自己的后端(Supabase 托管的数据库与认证服务,所在区域:新加坡(Supabase 托管,AWS ap-southeast-1))。同意本政策之后,下列数据会被发送并保存:
| 数据 | 内容 | 什么时候发送 | 用来做什么 | 保存在哪里 | 保存多久 |
|---|---|---|---|---|---|
| 匿名登录会话 | 为这台设备在我们的后端创建一个匿名账号,注册信息里带有 App 标识「view-ios」和你的 Telegram 用户 ID(数字) | 第一次用到需要登录会话的功能(热力图、云端同步、购买验证、反馈、删除云端数据)时;热力图和云端同步默认打开,所以通常在你同意后不久 | 识别会员状态、归属你提交的反馈 | Supabase 认证服务 | 匿名会话在账户使用期间保留,目前没有按期限自动清理;同步账户行连同挂在它上面的同步数据,24 个月没有使用后删除;「删除我的云端数据」不删除匿名账号本身 |
| 会员状态查询 | 你的 Telegram 用户 ID;返回会员是否有效、套餐、到期日 | 打开 App、回到前台及刷新会员状态时 | 判断 Viewgram Pro 是否生效 | 查询不单独留存;它写入的日活记录见下一行 | 见「日活记录」 |
| 功能开关查询 | 你的 Telegram 用户 ID,以及该账号是否是 Telegram 会员(是 / 否) | 打开 App 时 | 按账号下发功能开关(例如灰度、临时关闭某个功能) | 即时查询 | — |
| 日活记录 | 你的 Telegram 用户 ID、日期、当天查询次数 | 每次查询会员状态时 | 统计每天有多少人使用 | 我们的数据库 | 保留 13 个月,之后删除 |
| 会员状态与购买记录 | 购买 Viewgram Pro 后:Apple 签名的交易(原始交易号、商品、购买与到期时间、环境)和这个账号的同步密钥;服务器只保存同步密钥的 SHA-256 散列,并在 Apple 通知续订、到期、退款时更新。不含你的姓名、邮箱、支付信息、手机号或消息 | 购买、恢复购买及之后刷新时 | 确认订阅是否有效,让 Pro 功能按真实订阅运行 | 我们的数据库 | 订阅有效期间保留;订阅到期 24 个月后删除 |
| 视频热力图观看统计(免费,所有人默认打开,设置里可关闭;只对频道和群组里的视频上传) | 把视频分成 100 段,每一段被真正播放过几遍、拖动进度条落在哪里、观看时长;视频在 Telegram 上的文件编号(不含聊天、消息编号和正文);一个设备标识(见下文说明 3) | 观看频道和群组里的视频时每 30 秒覆盖上传一次,关闭视频或切后台时再传一次;离线时先存在本机队列,最多保留 7 天后补发。自动运行,不会逐次询问 | 在进度条上画出「观众最常回看」的热力曲线 | 我们的数据库 | 不设固定的删除期限,因为统计越完整热力曲线越准;它不含你的姓名、手机号、消息编号和正文,只与一个设备标识关联;本设备提交的统计可随时在「设置 › 关于与反馈 › 删除我的云端数据」里删除;用于去重的请求编号保留 30 天后删除;本设备提交的可在 App 内删除 |
| 云端同步数据(免费,所有人默认打开,你的 Apple ID 下的 iCloud 钥匙串可用时自动运行;可在「设置 › 播放与阅读 › 云端同步」关闭) | 你在频道和群组里看过的视频(来源编号、消息编号、观看时间、视频尺寸和时长);你在频道和群组里收藏的视频及你自己建的收藏分类名;你给频道和群组设的分类;对应的删除标记;以及一个本机随机生成的设备标识(用于区分设备,与硬件无关) | 内容变化约 1.5 秒后、回到前台时发送,之后每 60 秒检查一次;自动运行,不会逐次询问 | 在登录同一 Apple ID 的设备之间同步 | 我们的数据库 | 直到你删除或使用「删除我的云端数据」;同步账户 24 个月没有使用的,连同数据一起删除;删除标记在服务端保留 180 天后清理 |
| 同步密钥的散列值 | App 为每个 Telegram 账号在你的设备上随机生成一把 32 字节的同步密钥,保存在 iCloud 钥匙串;服务器只保存它的 SHA-256 散列 | 同步、购买验证及删除云端数据时 | 服务器凭它判断「是同一份数据」,不再相信 App 自报的 Telegram 用户 ID | 我们的数据库 | 与对应的同步数据和购买记录相同 |
| 反馈工单 | 你写的反馈正文(4 至 4000 字)、类型、选填的联系方式、App 版本与构建号、设备型号、系统版本、语言,以及我们的回复。当前版本不支持上传附件 | 你提交或回复反馈时 | 处理你的问题 | 我们的数据库 | 已解决或已关闭的工单在最后更新 24 个月后删除(工单内的消息一并删除),未解决的工单不自动删除;本设备会话提交的可在 App 内删除 |
关于这些数据,需要你知道:
- 同步数据与 Telegram 用户 ID 的关系:同步的数据行里不含你的 Telegram 用户 ID,服务器按同步密钥的散列把它们归到一个内部的账户编号。但每一行同时记录了写入它的匿名登录会话,而这个会话创建时带着你自报的 Telegram 用户 ID,所以在技术上,我们有可能把同步数据和你的 Telegram 账号对应起来。我们不会为广告或其他与功能无关的目的这样做。
- 来源编号也是信息:浏览记录与分类里的频道、群组编号能反映你关注了哪些频道和群组,请你按这个敏感度来决定是否保持云端同步打开(它默认打开,可在设置里关闭)。
- 热力图设备标识:它是在你的设备上,把系统提供的应用标识(identifierForVendor)连同固定的盐和你的账号做 SHA-256 散列后截取的一段,无法还原出原始标识;同一台手机上的两个账号得到的标识互不相同;它只用来让同一台设备在同一个视频上只计一次。热力图聚合结果不含任何能对应到个人的数据。
- 绝不会上传的内容:私聊、密聊、阅后即焚(定时销毁)消息里的视频的浏览记录、收藏和热力图永远不会上传;密聊和阅后即焚的视频连本机的浏览记录也不写入。
- IP 地址与网络日志:你的设备连接到 api.viewgram.org 时,Cloudflare 作为网络服务商会处理连接信息(包括 IP 地址);我们的网关在转发到后端时会去掉 Cloudflare 提供的客户端 IP 头。后端数据库平台(Supabase)及其基础设施可能也有自己的运行日志。
- 管理访问:我们的运营者通过内部管理台读取和处理上述数据(例如回复工单、授予或撤销会员、查看汇总统计)。管理台不对用户开放,所有修改类操作都有操作记录。
6. 只保存在你设备上的数据
- 浏览记录、视频收藏与分类、搜索记录、「不感兴趣」的视频、「不再显示」的频道和群组、热力图本地缓存、播放和阅读偏好,默认只保存在你的设备上;只有第 5 节所述的云端同步运行时(默认打开,可在设置里关闭),频道和群组里的浏览记录、视频收藏和来源分类才会同步。
- 字幕:播放时的语音识别由设备上的 sherpa-onnx 引擎和模型完成,音频不会上传。模型在你第一次打开字幕时才下载,约 240 MB(基础包,含 SenseVoice 与 Silero VAD);日语视频另需约 160 MB(ReazonSpeech)。下载来自 Hugging Face(huggingface.co)和 GitHub(github.com)。默认只在 Wi-Fi 下下载;在蜂窝网络、个人热点或低数据模式下,下载前会征求你的同意。
- 字幕翻译:把识别出的字幕翻成你选择的语言时,要翻译的文字会通过 Telegram 的翻译服务处理(见第 7 节),不经过我们的服务器。
- 缩略图、标签:视频的马赛克缩略图、推荐信息流里按 #标签 的整理,都在你的设备上,用消息本身自带的内容计算。
- 语音转文字:语音消息和音乐播放器的 CC 使用 Apple 的语音识别框架,并设置为只在设备上识别;设备不支持端侧识别的语言会直接失败,不会把音频发送给 Apple 的服务器。
- 设备上的数据会随你卸载 App 一起删除;退出 Telegram 账号时,App 会清除该账号的本机收藏、浏览记录、搜索记录、热力图待发队列和我们后端的登录会话,但保留同步密钥(在 iCloud 钥匙串里),这样你重新登录同一账号时可以找回云端数据;想彻底断开请先使用「删除我的云端数据」。
7. 第三方与数据接收方
| 服务 | 作用 | 会接触到什么 |
|---|---|---|
| Telegram | 账号、消息、媒体、翻译、推送 | 你在 Telegram 里的一切内容;字幕翻译和阅读模式双语对照的待译文字;适用 Telegram 的隐私政策 |
| Supabase | 我们的后端数据库与认证(项目地址隐藏在网关之后) | 第 5 节所列数据。数据库所在区域:新加坡(Supabase 托管,AWS ap-southeast-1) |
| Cloudflare | 网关 api.viewgram.org 的网络转发 | 经过网关的请求(含 IP 等连接信息);网关不保存业务数据 |
| Apple | App Store 购买与订阅、iCloud 钥匙串(保存同步密钥)、APNs 推送 | Apple 处理你的付款,我们拿不到你的支付信息、姓名或邮箱;推送由 Telegram 的服务器经 APNs 发出,我们的服务器不发推送 |
| Hugging Face、GitHub | 字幕模型文件的下载 | 你的设备向它们发起的下载请求(IP 等) |
| Google reCAPTCHA | 登录或注册时 Telegram 可能要求的人机验证 | 由 Telegram 的登录流程触发,适用 Google 的隐私政策(https://policies.google.com/privacy) |
补充说明:
- 购买:Viewgram Pro 通过 Apple 的 App Store 内购订阅。我们看不到你的银行卡信息。购买凭证只发给我们的服务器(见第 5 节「会员状态与购买记录」),不交给 Telegram。
- 「全网搜索」(第三方搜索机器人):当前版本不提供。代码中保留了该功能,但不能通过服务器开关或用户设置打开;若未来版本提供,会先更新本政策并在使用前告知你,因为它会用你自己的 Telegram 账号把搜索词发给第三方机器人。
- 统计与广告:Viewgram 不含广告 SDK、归因 SDK、第三方统计 SDK 和崩溃上报 SDK,不使用 App Tracking Transparency,不跟踪你。
- 我们不向任何第三方出售、出租或交换你的数据。只有在法律要求、或为保护用户和服务安全所必需时,才会向有关部门披露。
8. 处理目的与法律依据
| 目的 | 对应的数据 | 法律依据(适用时) |
|---|---|---|
| 提供功能(会员、云端同步、热力图、反馈) | 第 5 节全部 | 履行与你之间的服务合同;热力图和云端同步默认打开,我们在本政策里告知并在设置里提供开关,不另设单独的同意步骤;模型下载在蜂窝网络下会先征求你的同意 |
| 判断并按账号开关功能 | 会员状态查询、功能开关查询 | 履行服务合同 |
| 汇总统计、了解 App 是否有人用 | 日活记录、热力图聚合 | 我们的正当利益(了解和改进产品) |
| 保证服务稳定与防滥用(去重、限流、重试) | 热力图设备标识、反馈限流(按会话限制频率) | 我们的正当利益(服务安全) |
| 回应你的请求和法律义务 | 反馈工单、删除与导出请求 | 履行法律义务;你的同意 |
首次启动时的同意页是你对本政策的知情同意;撤回同意的方式见第 10 节。撤回不影响撤回之前基于同意所做处理的合法性。
适用的数据保护法律:英国《通用数据保护条例》(UK GDPR)和《2018 年数据保护法》;你位于欧盟时,同样适用欧盟 GDPR;你所在地区另有数据保护法律的,也同样适用。如果你所在地的法律(例如欧盟《通用数据保护条例》GDPR、马来西亚《个人数据保护法》PDPA)赋予你本政策未提到的权利,以该法律为准。
9. 保存期限
| 数据 | 保存期限 |
|---|---|
| 云端同步数据 | 直到你删除或在 App 内使用「删除我的云端数据」;同步账户 24 个月没有使用的,连同挂在它上面的同步数据一起删除。删除标记(墓碑)在服务端保留 180 天后清理 |
| 热力图观看统计 | 不设固定的删除期限,因为统计越完整热力曲线越准;它不含你的姓名、手机号、消息编号和正文,只与一个设备标识关联;本设备提交的统计可随时在「设置 › 关于与反馈 › 删除我的云端数据」里删除;用于去重的请求编号保留 30 天后删除(其中本设备提交的也可在 App 内删除) |
| 日活记录 | 保留 13 个月,之后删除 |
| 匿名登录会话与账户行 | 匿名会话在账户使用期间保留,目前没有按期限自动清理;同步账户行连同挂在它上面的同步数据,24 个月没有使用后删除。「删除我的云端数据」不删除匿名账号本身,也不删除同步账户行(清除标记需要挂在它上面),如需马上彻底清除请通过反馈申请 |
| 反馈工单 | 已解决或已关闭的工单在最后更新 24 个月后删除(工单内的消息一并删除),未解决的工单不自动删除;你可以通过「删除我的云端数据」删除本设备会话提交的反馈 |
| 会员状态与购买记录 | 订阅有效期间保留,以免影响你已购买的订阅;订阅到期 24 个月后删除 |
| 设备上的数据 | 由你控制,随 App 卸载删除 |
期限届满或你删除后,数据会从我们的数据库删除;备份和基础设施日志会在托管商的常规周期内覆盖。
10. 你的权利与删除方式
- 在 App 内删除:设置 › 关于与反馈 › 删除我的云端数据。它会删除这把同步密钥对应的云端同步数据(浏览记录、视频收藏与分类、来源分类),以及这台设备的匿名会话所提交的热力图观看统计和反馈工单;并把「已清除」标记同步给登录同一 Apple ID 的其他设备,它们会清除已同步的副本。不会删除:会员状态、你的 Telegram 账号、只存在设备上的数据(私聊等)、日活记录、你其他设备提交的热力图观看统计和反馈。
- 撤回同意:设置 › 关于与反馈 › 撤回同意。撤回后,App 不再向我们的服务器发送任何数据,下次使用前会再次显示同意页;Telegram 本身的功能照常。撤回不会删除服务器上已有的数据,请先使用「删除我的云端数据」。
- 关闭热力图与云端同步:两者对所有人免费、默认打开、自动运行,不会逐次询问。在设置里关闭「进度条热力图」会停止记录、丢弃当前统计并清空本机待发队列;在「设置 › 播放与阅读 › 云端同步」关闭云端同步后不再同步新的内容。服务器上已有的数据不会因此消失,可用上一条的「删除我的云端数据」删除。
- 查询、更正、导出、删除、限制与反对:对于上述无法在 App 内完成的删除,以及查询、更正、导出你的数据,或在适用法律允许时限制或反对某项处理,请在「设置 › 关于与反馈 › 发送反馈」中提出,或发邮件到 support@viewgram.org,我们会在 30 天内处理;如果删除在 App 内失败,App 也会引导你这样做。为了核实是你本人,我们可能要求你从 App 内提交请求。
- 投诉:如果你认为我们的处理违反适用法律,你有权向你所在地的数据保护监管机构投诉。
- 删除 Telegram 账号:请使用 Telegram 的相应功能;这与 Viewgram 的云端数据是两件事。
删除之后继续使用 App 会产生新的记录。
11. 数据安全
- 与我们后端的通信使用 HTTPS;
- 同步密钥保存在 iCloud 钥匙串(设备首次解锁后可用),服务器只保存它的散列;后端登录会话保存在本机钥匙串;
- 数据库表默认不对客户端开放,客户端只能通过受限的服务端函数读写,同步类函数必须带有效会话和同步密钥,购买验证要求 Apple 签名的交易;
- 管理台只对运营者开放,所有修改类操作都有操作记录;
- 我们尽力保护数据,但没有任何传输或存储方式是绝对安全的。
12. 跨境传输
我们的后端和你的设备可能不在同一个国家或地区;Cloudflare、Supabase、Telegram、Hugging Face、GitHub 的服务器也分布在不同地区。使用 Viewgram 即表示你的相关数据可能在你所在地之外被处理。我们采取第 11 节所述的措施保护数据;在适用法律要求时,我们会依据该法律认可的传输机制进行传输。
13. 未成年人
Viewgram 不面向 18 岁以下的用户,也不会有意收集未成年人的数据。Viewgram 没有自己的年龄验证;你需要先满足 Telegram 对注册账号的年龄要求,并且你需要是成年人才能使用 Viewgram。Viewgram 呈现的内容来自你在 Telegram 上加入的频道、群组和用户,其中可能包含成人内容,内容能否查看取决于 Telegram 的规则。如果你发现未成年人在使用,请通过上述联系方式告知我们,我们会删除相关的云端数据。
14. 本政策的变更
政策变化时,我们会更新本页面和 App 内的同一份文本,并更新「更新日期」和版本号。重大变化会在 App 内再次显示同意页,在你再次同意之前,App 不会向 Viewgram 的服务器发送数据。
15. 联系我们
运营者:VIEW TECH LTD(Company No. 17054082,England and Wales)
地址:Suite 1310, 5 Brayford Square, London, E1 0SG, United Kingdom
App 内:设置 › 关于与反馈 › 发送反馈