私有产品 · 脱敏案例
Outsider Studio · AI 短视频生产工具
把一个 AI 短视频创作工具,从桌面端流水线做到「授权、配额、分销、运营」全商业化闭环的完整产品。
- 角色
- 独立开发 · 单人
- 周期
- 2026.05 – 2026.07
- 规模
- 私有 monorepo · 105 commits · v0.3.18
- 形态
- 桌面端 + 云端 · 四应用
背景问题
POV 短视频创作者用 AI 生产内容时,流程是碎的:选题、脚本、分镜、生图、配音、剪辑分散在多个工具之间,上下文反复搬运;而要把它做成可售卖的产品,还需要授权校验、配额计费、密钥分发、邀请裂变、风控审计这一整套商业基础设施。
项目同时回答两个问题:生产侧——把「选题 → 脚本 → 分镜 → 生图 → TTS 配音 → 剪映导出」做成桌面端一条流水线,长流程任务可重试、可断点续跑;商业侧——自建授权服务 + 管理后台 + 分销体系 + 软 OTA 发布,让桌面端产品真正能卖、能运营。
系统边界
四应用 monorepo,跨端无共享 npm 包,通过 JSON 契约(字段名、camelCase)耦合,契约变更需双端同步发版。
| 应用 | 形态 | 职责 |
|---|---|---|
| Studio | 桌面端(Tauri v2,React 19 + Rust) | 制作流水线:脚本 → 分镜 → 生图 → 配音 → 封面 → 剪映草稿导出 |
| License | 授权服务(CF Pages Functions + D1) | 一机一码激活、到期权威、配额计数、心跳、风控 |
| License Admin | 管理后台(Vite + React,28 页面) | 密钥 / 兑换码 / 邀请奖励 / 分销管理 / 风控审计 / 系统设置 |
| Site | 产品站(Next.js) | 落地页、下载、文档 |
- 桌面端直连外部模型服务,用户自带 API Key,Key 保存在 Rust 侧、不经任何自有服务器中转;
- 自有云端只做授权与商业闭环,不碰生成流量;
- 前端(WebView)不直接请求授权域名,一切经 Rust IPC(invoke)。
关键决策
- 1
Tauri v2 而非 Electron
个人工具型桌面应用,安装包体积、内存占用与系统级能力(安全 IPC、自动更新)是决定性因素;完整选型复盘见下方公开文章。
- 2
敏感材料放 Rust 进程内存、不落盘
授权会话 token、内置 Prompt 解密密钥只存内存,验证失败 / 到期即清除;磁盘上只留激活密钥本身。内置 Prompt 以加密文件分发,授权解锁后才可解密读取。
- 3
License 门禁三态 + 降级体验
active 全功能 / expired 仅可浏览历史作品 + 续费面板 / blocked 明确错误与重试路径;所有生成、写入、导出命令统一走授权守卫,读历史不受限——到期不删用户资产。
- 4
MoR 模式支付编排商,外包税务与合规
个人卖家不做全球税务合规,选 Merchant-of-Record 模式的支付编排服务,把发票、销售税、拒付处理整体外包(ADR-0001)。
- 5
商业化模型先行
Offers / Promotions 抽象先建模再写界面,兑换码、体验卡池、邀请奖励、加急通道都是同一套模型的实例,避免后期营销需求推翻数据模型(ADR-0002)。
- 6
长流程任务工程化
分镜拆分最多 4 段并行、全局生图队列并发上限、失败重试 / 批量取消 / 断点续跑;配额在流水线入口统一预检,失败即停,不半成品扣费。
- 7
软 OTA 更新
桌面端走应用内更新通道,发布流水线与版本管理文档化,避免用户手动重装。
查看脱敏架构图(Mermaid 源码) ›
架构图使用通用角色标注,无真实域名、接口路径与供应商信息。
%% Outsider Studio 脱敏架构图(公开版)
%% 所有节点使用通用角色标注:不含真实域名、接口路径、供应商名称、管理路径
flowchart TB
User([创作者])
subgraph Client["桌面端 · Tauri v2(React 19 + Rust)"]
UI["制作流水线 UI<br/>选题 · 脚本 · 分镜 · 生图 · 配音 · 导出"]
Core["Rust 核心<br/>授权会话 / API Key / 解密材料<br/>只存进程内存 · 不落盘"]
Queue["全局任务队列<br/>并发控制 · 重试 · 批量取消 · 断点续跑"]
Gate["License 门禁<br/>active / expired / blocked 三态"]
UI -->|"invoke (IPC)"| Core
UI --> Queue
Gate -.守卫所有生成/写入/导出命令.-> Queue
end
subgraph Cloud["自有云端 · 授权与商业闭环(Serverless + 边缘数据库)"]
Lic["授权服务<br/>一机一码 · 到期权威 · 配额计数 · 风控"]
Admin["管理后台(28 页面)<br/>密钥 · 兑换码 · 邀请奖励 · 分销 · 审计"]
Portal["分销商门户"]
Site["产品站(Next.js)"]
Admin --> Lic
Portal --> Lic
end
Ext["外部模型服务(多家)<br/>文本 / 图像 · 路由与降级"]
TTS["自托管开源 TTS 引擎"]
Pay["支付编排商(MoR 模式)<br/>税务 / 合规外包"]
Export["剪映草稿导出"]
User --> Client
Client -->|"HTTPS 授权 API<br/>激活 / 校验 / 心跳 / 配额"| Lic
Core -->|"用户自带 API Key · 直连不经中转"| Ext
Client --> TTS
Client --> Export
Lic --> Pay
Ops([运营者]) --> Admin
Dist([分销商]) --> Portal
验证方式
- 全栈测试报告(352 行,随版本迭代维护)覆盖 10 个 Studio API 端点、28 个管理后台页面、6 个分销商门户页面、5 个产品站页面;
- 7 条端到端业务流(邀请领奖、兑换码激活、加急审批下发密钥、开卡审核、通知入栈、操作审计、访问日志)curl 全链路复测通过;
- 各应用独立单元测试 + 类型检查 + 构建验证;
- 已知问题公开记录在测试报告「已知问题 / 后续」一节,不回避。
可公开结果
- 产品站(公开) →
- 选型复盘文章:个人工具型桌面应用,Tauri 和 Electron 怎么选 →
- 全栈测试报告 352 行随版本维护;可复现测试命令与覆盖矩阵见项目 verification.md
脱敏边界
以下内容不公开,本案例全文与配图均已规避:
- 真实域名、接口路径与管理后台路径;
- 授权签名 / 加密的实现细节(只描述机制设计,不描述密码学细节);
- 模型供应商凭据与具体供应商商务信息;
- 客户、分销、邀请数据;
- 真实声音素材与任何受版权保护的素材(截图 / 演示一律使用合成数据)。