卢天成
← 返回主页

私有产品 · 脱敏案例

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. 1

    Tauri v2 而非 Electron

    个人工具型桌面应用,安装包体积、内存占用与系统级能力(安全 IPC、自动更新)是决定性因素;完整选型复盘见下方公开文章。

  2. 2

    敏感材料放 Rust 进程内存、不落盘

    授权会话 token、内置 Prompt 解密密钥只存内存,验证失败 / 到期即清除;磁盘上只留激活密钥本身。内置 Prompt 以加密文件分发,授权解锁后才可解密读取。

  3. 3

    License 门禁三态 + 降级体验

    active 全功能 / expired 仅可浏览历史作品 + 续费面板 / blocked 明确错误与重试路径;所有生成、写入、导出命令统一走授权守卫,读历史不受限——到期不删用户资产。

  4. 4

    MoR 模式支付编排商,外包税务与合规

    个人卖家不做全球税务合规,选 Merchant-of-Record 模式的支付编排服务,把发票、销售税、拒付处理整体外包(ADR-0001)。

  5. 5

    商业化模型先行

    Offers / Promotions 抽象先建模再写界面,兑换码、体验卡池、邀请奖励、加急通道都是同一套模型的实例,避免后期营销需求推翻数据模型(ADR-0002)。

  6. 6

    长流程任务工程化

    分镜拆分最多 4 段并行、全局生图队列并发上限、失败重试 / 批量取消 / 断点续跑;配额在流水线入口统一预检,失败即停,不半成品扣费。

  7. 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 全链路复测通过;
  • 各应用独立单元测试 + 类型检查 + 构建验证;
  • 已知问题公开记录在测试报告「已知问题 / 后续」一节,不回避。

可公开结果

脱敏边界

以下内容不公开,本案例全文与配图均已规避:

  • 真实域名、接口路径与管理后台路径;
  • 授权签名 / 加密的实现细节(只描述机制设计,不描述密码学细节);
  • 模型供应商凭据与具体供应商商务信息;
  • 客户、分销、邀请数据;
  • 真实声音素材与任何受版权保护的素材(截图 / 演示一律使用合成数据)。