隐私政策
最近更新:2026 年 4 月
1. OpenedMic 是什么
OpenedMic 是一款基于浏览器的实时音视频直播服务。发起者开启房间;听众通过房间码、扫描二维码或直接链接加入。使用该服务无需安装,也无需注册。
该服务包含位于 https://www.openedmic.com/ 的公开落地页,以及位于 https://www.openedmic.com/app 的独立运行应用。应用面向浏览器使用,可在受支持的设备上作为主屏幕应用安装,无需应用商店。
2. 无需注册
OpenedMic 不要求你创建账号、提供邮箱或任何个人信息来使用本服务。你可以在不注册的情况下创建或加入房间。
3. 我们不收集、不保存的信息
以下信息在 OpenedMic 本身的应用逻辑、分析系统与遥测系统中均不被收集、保存或记录:
- 姓名、电子邮箱、用户名与头像
- 房间码、房间标识与房间标识的哈希值
- 原始 IP 地址与哈希后的 IP 地址
- 任意形式的会话标识或用户 ID
- 设备或浏览器指纹
- 聊天消息内容
- 表情互动内容
- 房间密码
- 已复制链接的文本
- 任意类型的音频、视频或媒体内容
- 客户端的自由文本错误信息、原始调用栈与请求体
- 可直接或间接指向个人、设备、浏览器或会话的任何标识
4. 会话期间的数据
在使用 OpenedMic 期间,以下信息会在内存中被临时处理以维持服务运行。这些信息在会话结束后均不保留:
- 房间码——6 位随机字符,仅在房间生命周期内保留在服务器内存中
- 昵称与头像——每次会话自愿填写,仅在会话进行中保留在服务器内存中,房间关闭后清除
- WebRTC 信令数据——建立音视频连接所需的 SDP offer/answer 与 ICE 候选,实时处理,不保留
- 聊天消息——在房间内实时转发,不在服务端保存
- 表情互动——实时转发;内容不保存,也不计入分析
- 发起者重连令牌——短生命周期的随机字符串,在直播期间存于
localStorage,键按房间隔离为om_btoken_[room],用于短暂刷新或断线后恢复同一房间。客户端 TTL 约 60 秒,服务端尊重 15 秒的重连宽限窗。令牌不与任何账号或资料关联——仅为绑定单个房间的随机值
5. 匿名的运营分析
OpenedMic 运行一套匿名、自托管的运营分析系统,数据存入本地 SQLite 数据库。该系统仅收集绝对不含标识信息的运营信号,用于理解产品使用、服务健康以及功能采用。不保存任何个人信息、标识或自由文本。
分析系统记录的内容:
- 时间戳(UTC)
- 事件类型(例如:房间创建、直播开始、听众加入、功能使用)
- 所选直播模式或类别
- 房间为私密或公开
- 听众人数与峰值听众人数
- 会话时长(秒)
- 语言 / 区域设置
- 从请求派生的通用设备类型(移动 / 平板 / 桌面 / 未知)
- 从请求派生的通用浏览器族(chrome / safari / firefox / edge / 未知)
- 从请求派生的通用操作系统族(ios / android / windows / macos / linux / 未知)
- 加入来源类别(二维码 / 直接链接 / 手动房间码 / 未知)
- 功能使用计数(例如:屏幕共享启用、录制开始)
- 结构化的错误类别代码(来自预定义列表,例如 room_not_found、mic_permission_denied)
- PWA 相关交互信号(例如:安装提示已展示、安装已确认、独立模式启动被识别)
- 事件发生时的服务器版本
原始 User-Agent 字符串从不保存。浏览器、操作系统与设备类型在请求时从 User-Agent 派生;派生后原始字符串立即丢弃。
所有用于读取与汇总分析的端点——包括 /stats 汇总页、/analytics/* 接口以及运营端点 /logs、/ops 与 /ops/snapshot——均需持有者令牌(bearer)鉴权,且在生产部署中进一步限制到独立的运营主机名下。这些端点均不对公众开放。
6. 结构化、不涉及隐私的错误遥测
应用包含轻量的客户端错误上报机制。当浏览器中出现技术错误时,应用可能向服务器上报一条结构化、不含标识信息的遥测。该遥测严格限制于:
- 错误类型类别(预定义列表,例如 JS_ERROR、UNHANDLED_REJECTION)
- 错误族、阶段与来源界面(预定义列表,例如 "permissions"、"browser_api"、"app")
- 错误的行号与列号
- 通用浏览器、操作系统与设备类型(从 User-Agent 派生;原始 UA 已丢弃)
- 语言 / 区域设置
自由文本错误信息、原始调用栈、请求体、源文件路径,以及任何可能包含用户生成内容或标识信息的字段,均不上传也不保存。客户端在发送前主动剥离这些字段。
7. 联系表单
当你在 openedmic.com/contact.html 提交联系表单时,请求会发送到 OpenedMic 服务器进行校验。服务器校验格式、仅记录最小化的匿名运营信号(成功提交计数,不含内容),然后向你的浏览器返回响应。
联系内容——包括姓名、邮箱、主题与消息——会一次性转发至预先配置的出站 webhook,以便服务运营方接收并回复你的消息,转发后即删除。转发之后,内容不会保存在 OpenedMic 的任何数据库、日志或分析系统中。webhook 提供方的隐私政策约束其在自身一侧的留存。
如果出站端点暂时不可用或未配置,服务器同样不会保存消息内容:界面会提供替代方式,让你直接通过邮件发送到 hello@openedmic.com,从你自己的邮件客户端联系运营方。
8. Google Analytics 4
位于 https://www.openedmic.com/ 的公开落地页与位于 https://www.openedmic.com/app 的应用均使用 Google Analytics 4,并采用以下隐私加固配置:
- IP 在处理前被匿名化(
anonymize_ip: true) - 不向你的设备写入分析 Cookie 或客户端存储(
storage: 'none'、client_storage: 'none') - 数据仅用于理解汇总层面的页面使用情况
- 不用于广告或单个用户画像
9. 可安装的网页应用
OpenedMic 支持在兼容设备与浏览器上作为主屏幕应用安装。安装时:
- 应用外壳从同一来源(origin)提供——不涉及任何应用商店
- 浏览器会注册 Service Worker,用于可靠加载静态资源(字体与脚本),并在离线时显示基本提示页
- Service Worker 不缓存 HTML 页面或动态内容。直播会话功能——创建房间、加入、音视频流、信令——需要在线连接,离线状态下不可用
- 若你拒绝安装提示,
localStorage会保存一个标记,避免重复提示 - 若你以独立模式运行(安装后),运营分析可能记录一条匿名的安装相关信号
10. Cookie 与浏览器存储
OpenedMic 不使用广告或追踪 Cookie。浏览器存储仅用于设备本地的以下功能:
- 应用语言偏好(
localStorage键:openedmic-app-lang)——跨访问保存你在应用中选择的界面语言 - 落地页语言偏好(
localStorage键:openedmic-lang)——保存你在落地页选择的界面语言 - 落地页无障碍设置(
localStorage键:openedmic-a11y)——若你在落地页调整过对比度、动态与字号,保存相应偏好 - 应用安装提示拒绝标记(
localStorage键:pwa-dismissed)——若你拒绝过安装提示,用以避免再次显示 - iOS 安装提示拒绝标记(
localStorage键:pwa-ios-dismissed)——若你拒绝过 iOS 的"添加到主屏幕"提示,用以避免再次显示 - 发起者重连令牌(
localStorage键:om_btoken_[room])——仅在直播期间存在,用于页面刷新或短暂断线后的重连。客户端 TTL 约 60 秒;之后被视为过期并移除,服务端仅在 15 秒宽限窗内接受重连
浏览器存储中的值仅用于本地应用功能、偏好恢复、避免重复提示或活跃会话的延续。不用于广告、画像或个人识别。当应用发送匿名运营分析或结构化技术遥测时,当前区域设置可能作为不含标识的字段一并发送。
11. 本地录制
若你在直播期间使用本地录制功能,音频与/或视频通过 MediaRecorder API 直接在你的浏览器中采集,并以 WebM 文件形式保存到你的设备上。任何内容都不会上传到任何服务器。OpenedMic 无法访问你的录制。你对自己创建的每一段录制都拥有完整控制权。
12. 基础设施与第三方服务
- Render.com——Node.js 服务的源站托管。托管平台可能按其政策生成标准访问日志。
- Cloudflare——DNS 与 DDoS 防护。所有连接通过 HTTPS/TLS 加密。Cloudflare 可能按其政策处理连接元数据。说明:主应用域目前处于 DNS-only 模式;Cloudflare 代理防护适用于跳转域名。
- Metered.live——当对等直连不可用时,用于中继 WebRTC 连接的 TURN 服务器。TURN 服务器转发加密的媒体流,不保存媒体内容。
13. 无广告
OpenedMic 不展示广告,也不与任何广告网络共享数据。
14. 儿童
OpenedMic 不面向 13 周岁以下的儿童。我们不会有意采集任何来自儿童的信息。
15. 政策的变更
本政策可能随着服务变化而更新。本页顶部的日期代表最近更新时间。在更新后继续使用本服务即表示接受新版政策。
16. 联系我们
如有关于本隐私政策的问题,请使用联系页面。