FrameFlow
Privacy Policy
隐私政策
Effective date / 生效日期: 2026-08-13 · Operator / 运营者: James Zhang
1. What FrameFlow is
FrameFlow is a private, self-hosted media workspace operated by James Zhang (“we”). One signed-in operator uses it to generate or upload their own videos and images, and to publish them to social accounts they own or are authorised to manage — currently TikTok, YouTube, and X.
There is no public sign-up, no multi-tenant service, and no shared database. Each deployment runs on a server the operator controls, and this policy describes that deployment at https://frameflow.website.
2. Information we collect
Workspace credentials. A username and password configured by the operator as server environment variables. We store a signed, HTTP-only session cookie for seven days. Passwords are never written to the database.
TikTok account information. When you press Connect TikTok account and approve the authorisation screen, TikTok returns and we store: an access token (valid 24 hours), a refresh token (valid 365 days), your TikTok open_id, your TikTok username, the scopes you granted, and the expiry timestamps of both tokens.
Creator settings read at publish time. Before a direct post we call TikTok’s creator_info endpoint to read the privacy levels your account allows and whether you have disabled comments, Duet, or Stitch. This response is used for that single request and is not stored.
Content you create. Text prompts, uploaded and generated media files, titles, captions, publishing options, and a record of each publication attempt with its status and any error returned by the platform.
What we do not collect. No analytics, no advertising or tracking cookies, no third-party trackers, no device fingerprinting, no location, no contacts, no biometric data. We do not read your TikTok inbox, followers, viewers, comments, or watch history, and we do not collect data about anyone other than the operator of this deployment.
3. How we use TikTok data
TikTok data is used only to carry out the publishing action you explicitly request:
- Access and refresh tokens authenticate upload requests. TikTok invalidates a refresh token each time it is used, so we replace the stored copy on every refresh.
- Username and open ID identify which account is connected in the Connections screen and build the link to a finished post.
- Granted scopes and expiry are shown so you can tell when a reconnect is needed.
- Creator settings ensure a post never requests a privacy level your account does not offer and never re-enables an interaction you have switched off.
We never use TikTok data for analytics, profiling, advertising, model training, or resale, and nothing is uploaded or posted without the operator pressing Publish in the app.
4. Storage and security
All data stays on the operator’s own server. Records live in a local SQLite database and media files in a local directory; neither is exposed to the public internet. Tokens, client secrets, and platform credentials are encrypted at rest with a key held only in the server’s environment, and are never rendered back into the browser — the interface shows only whether a secret is configured.
Traffic is served over HTTPS. The workspace is reachable only after signing in, and media files are served behind that same session check.
5. Sharing and disclosure
We do not sell, rent, or share your data, and there is no advertising network involved. Your content leaves the server in exactly two situations, both initiated by you:
- Generation. Prompts and any attached source image are sent to xAI to produce media.
- Publishing. The media file, title, caption, and the posting options you selected are sent to the destination you chose — TikTok, YouTube, or X — using that platform’s official API.
Those providers handle the data they receive under their own policies: TikTok, xAI, Google/YouTube, and X. We may disclose data if required by law.
6. Retention, deletion, and revoking access
Tokens are kept until you disconnect. Choosing Remove on the TikTok connection deletes the stored tokens, the session record, and the saved client credentials from the database immediately.
You can also revoke FrameFlow’s access from TikTok at any time under TikTok app → Profile → Settings and privacy → Security and permissions → Manage app permissions. Revoking there stops all further API access; any tokens still held become unusable.
Media and publication records are kept until the operator deletes them or deletes the database and media directory, which removes everything this deployment holds. Content already published to TikTok is governed by TikTok and must be deleted there.
7. Children
FrameFlow is not directed to children. The operator must meet the minimum age required by TikTok and every other platform they connect.
8. Changes and contact
Material changes to this policy will be published on this page with a new effective date. Questions, deletion requests, or privacy concerns: zhangyang8605@gmail.com.
1. 关于 FrameFlow
FrameFlow 是由 James Zhang(下称“我们”)运营的私人自托管媒体工作台。单一登录用户使用它生成或上传自己的视频和图片, 并发布到本人拥有或已获授权管理的社交账号,目前支持 TikTok、YouTube 和 X。
本应用不提供公开注册,不是多租户服务,也不存在共享数据库。每个部署都运行在运营者自己控制的服务器上,本政策描述的是https://frameflow.website 这一部署。
2. 我们收集的信息
工作台登录凭据。由运营者通过服务器环境变量配置的用户名和密码。我们仅存储有效期七天的签名 HTTP-only 会话 Cookie,密码不会写入数据库。
TikTok 账号信息。当您点击“连接 TikTok 账号”并在授权页面确认后,我们会保存 TikTok 返回的:访问令牌(有效期 24 小时)、 刷新令牌(有效期 365 天)、您的 TikTok open_id、TikTok 用户名、您授予的权限范围,以及两个令牌的过期时间。
发布时读取的创作者设置。直接发布前,我们会调用 TikTok 的 creator_info 接口,读取您账号允许的可见性选项, 以及您是否已关闭评论、合拍或拼接。该响应仅用于当次请求,不会被保存。
您创建的内容。文本提示词、上传和生成的媒体文件、标题、文案、发布选项,以及每次发布尝试的状态记录和平台返回的错误信息。
我们不收集的信息。不使用任何分析统计、广告或追踪 Cookie、第三方追踪器、设备指纹,不收集位置、通讯录或生物特征信息。 我们不读取您的 TikTok 私信、粉丝、观众、评论或观看记录,也不收集本部署运营者以外任何人的数据。
3. TikTok 数据的使用方式
TikTok 数据仅用于执行您明确发起的发布操作:
- 访问令牌与刷新令牌用于对上传请求进行鉴权。TikTok 每次使用刷新令牌后都会使其失效,因此我们会在每次刷新时替换所存副本。
- 用户名与 open ID 用于在“连接”页面标识已连接的账号,并生成已发布作品的链接。
- 权限范围与过期时间用于提示您何时需要重新连接。
- 创作者设置用于确保发布请求不会申请您账号不支持的可见性,也不会重新开启您已关闭的互动功能。
我们绝不将 TikTok 数据用于分析、用户画像、广告、模型训练或转售;未经运营者在应用内点击“发布”,不会上传或发布任何内容。
4. 存储与安全
所有数据均保存在运营者自己的服务器上:记录存于本地 SQLite 数据库,媒体文件存于本地目录,二者均不对公网开放。 令牌、客户端密钥及平台凭据均加密存储,密钥仅存在于服务器环境变量中,且永不回传到浏览器——界面只显示某项密钥是否已配置。
所有流量通过 HTTPS 传输。工作台需登录后方可访问,媒体文件同样受该会话校验保护。
5. 共享与披露
我们不出售、不出租、不共享您的数据,也不涉及任何广告网络。您的内容仅在以下两种由您主动发起的情况下离开服务器:
- 生成。提示词及您附加的源图片会发送给 xAI 以生成媒体。
- 发布。媒体文件、标题、文案及您选择的发布选项,会通过官方 API 发送到您选定的目标平台(TikTok、YouTube 或 X)。
上述服务商依据各自政策处理所接收的数据。法律要求时,我们可能依法披露相关数据。
6. 保留、删除与撤销授权
令牌在您断开连接前一直保留。在 TikTok 连接上选择“移除”,会立即从数据库中删除所存令牌、会话记录及已保存的客户端凭据。
您也可随时在 TikTok 中撤销 FrameFlow 的访问权限:TikTok 应用 → 个人主页 → 设置与隐私 → 安全与权限 → 管理应用权限。撤销后所有后续 API 访问立即失效。
媒体与发布记录会保留至运营者主动删除,或删除数据库与媒体目录(即清除本部署的全部数据)为止。已发布到 TikTok 的内容由 TikTok 管理,需在该平台删除。
7. 未成年人
FrameFlow 不面向儿童。运营者须达到 TikTok 及其所连接的各平台要求的最低年龄。
8. 政策变更与联系方式
本政策的重大变更将在本页面公布并更新生效日期。如有疑问、删除请求或隐私相关问题,请联系 zhangyang8605@gmail.com。