---
AIGC:
    Label: "1"
    ContentProducer: 001191110102MACQD9K64018705
    ProduceID: 15868733686388_0/project_7655981463858544923-files/docs/xiaoxia-development-roadmap-v2.md
    ReservedCode1: ""
    ContentPropagator: 001191110102MACQD9K64028705
    PropagateID: 15868733686388#1782829047091
    ReservedCode2: ""
---
# 小虾 SaaS 完整开发路线图 v2

> 文档版本：V2.0  
> 更新时间：2025年1月  
> 当前版本：v0.1.101 已部署生产  
> 状态：Phase 0-7 已完成，待开发 Phase 8-9 及外部集成

---

## 第一部分：整体路线图

### 1.1 时间线总览

```
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
│                              小虾 SaaS 开发路线图 v2                                          │
├─────────┬──────────────┬──────────────┬──────────────┬──────────────┬──────────────┬─────────┤
│  阶段   │   Q1 2025    │   Q2 2025    │   Q3 2025    │   Q4 2025    │   Q1 2026    │  备注  │
├─────────┼──────────────┼──────────────┼──────────────┼──────────────┼──────────────┼─────────┤
│ V21 UI  │ ████████████ │              │              │              │              │ 21-29天 │
│ Phase 8 │   ████████████████   │       │              │              │              │ 20-25天 │
│CosyVoice│      ████████        │       │              │              │              │ 10-15天 │
│  抖音   │   待申请   │   ████████████   │       │              │              │  需审批  │
│  快手   │      ████████████████       │       │              │              │  15-20天 │
│ 小红书  │      ████████████████       │       │              │              │  15-20天 │
│ 视频号  │         ⚠️ 暂不支持官方API       │       │              │              │  待确认  │
│ Phase 9 │               ████████████████   │       │              │              │  25-30天 │
└─────────┴──────────────┴──────────────┴──────────────┴──────────────┴──────────────┴─────────┘

图例：████ 已规划   ⚠️ 限制/待确认   灰色背景 长期规划
```

### 1.2 各阶段依赖关系

```
                    ┌─────────────────┐
                    │   V21 UI 升级    │  (Phase A)
                    │   基础前端改造    │
                    └────────┬────────┘
                             │
          ┌──────────────────┼──────────────────┐
          │                  │                  │
          ▼                  ▼                  ▼
   ┌─────────────┐   ┌─────────────┐   ┌─────────────┐
   │  Phase 8    │   │  CosyVoice  │   │ 多平台发布  │
   │  模板编排   │   │   集成      │   │   集成      │
   │  (后端优先) │   │ (可并行)    │   │ (UI依赖V21) │
   └──────┬──────┘   └──────┬──────┘   └──────┬──────┘
          │                 │                 │
          └────────┬────────┴────────┬────────┘
                   │                │
                   ▼                ▼
            ┌─────────────────────────────┐
            │        Phase 9 智能剪辑       │
            │    (AI标题/裁剪/字幕)         │
            │     (需等 Phase 8 完成)       │
            └─────────────────────────────┘
```

### 1.3 关键里程碑

| 里程碑 | 目标时间 | 完成标准 | 依赖 |
|--------|----------|----------|------|
| M1: V21 UI 上线 | Q1 2025 | 所有核心页面完成UI还原 | 无 |
| M2: Phase 8 模板编排上线 | Q2 2025 | 模板管理+剪辑计划+FFmpeg拼接 | V21 UI |
| M3: CosyVoice 集成上线 | Q2 2025 | TTS+音色克隆功能可用 | V21 UI |
| M4: 三平台发布上线 | Q2-Q3 2025 | 抖音/快手/小红书可发布 | V21 UI+账号管理页面 |
| M5: Phase 9 AI能力上线 | Q4 2025 | AI标题+智能裁剪+字幕 | Phase 8 |

---

## 第二部分：各模块详细规划

---

### 模块 1：V21 UI 前端升级

#### 1.1 模块目标

1:1 还原 V21 UI 设计原型，统一全局设计系统，提升用户体验。

#### 1.2 功能范围

- 全局设计系统（CSS 变量、颜色、圆角、阴影、字体）
- 主布局组件（AppLayout、Sidebar、Header）
- 12+ 页面改造
- 5+ 通用组件封装

#### 1.3 后端任务清单

**无后端改动**（纯前端 UI 改造）

#### 1.4 前端任务清单

| 序号 | 任务 | 文件路径 | 优先级 | 预估人天 |
|------|------|----------|--------|----------|
| 1.1 | 设计系统 CSS 变量统一 | `global.css` | P0 | 0.5 |
| 1.2 | 主布局组件 AppLayout | `components/layout/AppLayout.tsx` | P0 | 1 |
| 1.3 | 侧边栏组件 Sidebar | `components/layout/Sidebar.tsx` | P0 | 1 |
| 1.4 | 页面头部组件 PageHead | `components/common/PageHead.tsx` | P0 | 0.5 |
| 1.5 | 基础组件封装 | `components/common/*` | P1 | 2 |
| 1.6 | 一键生成页面 | `pages/generate/GeneratePage.tsx` | P1 | 2 |
| 1.7 | 素材库页面 | `pages/assets/AssetLibrary.tsx` | P1 | 1.5 |
| 1.8 | 配音库页面 | `pages/voices/VoiceLibrary.tsx` | P1 | 1.5 |
| 1.9 | 标题库页面 | `pages/titles/TitleLibrary.tsx` | P1 | 1.5 |
| 1.10 | 成片库页面 | `pages/products/ProductLibrary.tsx` | P1 | 2 |
| 1.11 | 控制台页面 | `pages/dashboard/Dashboard.tsx` | P2 | 1.5 |
| 1.12 | 模板库页面 | `pages/templates/TemplateLibrary.tsx` | P2 | 1 |
| 1.13 | 任务历史页面 | `pages/history/TaskHistory.tsx` | P2 | 1 |
| 1.14 | 订阅管理页面 | `pages/subscription/SubscriptionPage.tsx` | P2 | 1.5 |
| 1.15 | 剪辑计划编辑器 | `pages/editing-planner/EditingPlanner.tsx` | P2 | 1 |
| 1.16 | 查重检测页面组 | `pages/duplication/*` | P1 | 1.5 |
| 1.17 | 我的音色页面 | `pages/voice-clone/VoiceClone.tsx` | P1 | 1 |
| 1.18 | 音色克隆 Modal | `components/modals/CloneVoiceModal.tsx` | P1 | 1 |
| 1.19 | 账号管理页面 | `pages/accounts/Accounts.tsx` | P1 | 1 |
| 1.20 | 首页落地页 | `pages/home/HomePage.tsx` | P3 | 1 |

#### 1.5 外部依赖

- V21 UI 原型设计稿（已提供）
- 当前前端代码库

#### 1.6 预估工作量

| Sprint | 任务 | 人天 |
|--------|------|------|
| Sprint 1 | 基础对齐（CSS系统+布局+通用组件） | 5-7 |
| Sprint 2 | 核心页面改造（生成+素材+配音+标题+成片） | 8-10 |
| Sprint 3 | 次要页面改造（控制台+模板+历史+订阅+剪辑） | 5-7 |
| Sprint 4 | 新增页面（查重+音色+账号管理+首页） | 3-5 |
| **合计** | | **21-29** |

---

### 模块 2：Phase 8 模板编排引擎

#### 2.1 模块目标

实现剪辑模板管理和自动化编排能力，支持基于素材分类和质量分的智能选片，以及通过 FFmpeg 按 EditPlan 拼接成片。

#### 2.2 功能范围

- **剪辑模板管理**：内置模板（基础混剪、产品展示、探店短片、口播拼接）
- **自动选片**：基于素材分类、质量分、时长筛选
- **剪辑计划**：EditPlan 聚合，支持保存编排结果
- **FFmpeg 拼接**：按 EditPlan 生成最终视频

#### 2.3 后端任务清单

**2.3.1 数据模型（Domain Objects）**

```typescript
// EditTemplate - 剪辑模板
interface EditTemplate {
  id: string;
  name: string;                    // 模板名称
  type: 'basic_mix' | 'product' | 'taste' | 'talking_head';  // 模板类型
  description: string;
  thumbnail: string;
  config: TemplateConfig;          // 模板配置
  clips: TemplateClipConfig[];      // 镜头配置
  createdAt: Date;
  updatedAt: Date;
}

interface TemplateConfig {
  aspectRatio: '9:16' | '16:9' | '1:1';
  duration: { min: number; max: number };
  transition: 'cut' | 'fade' | 'dissolve';
  music?: { src: string; volume: number };
}

interface TemplateClipConfig {
  type: 'video' | 'image' | 'title';
  duration: { min: number; max: number };
  position: { x: number; y: number; w: number; h: number };
  effects?: string[];
}

// EditPlan - 剪辑计划
interface EditPlan {
  id: string;
  name: string;
  templateId: string;
  userId: string;
  status: 'draft' | 'generating' | 'completed' | 'failed';
  clips: EditPlanClip[];
  output?: {
    videoUrl: string;
    duration: number;
    size: number;
  };
  createdAt: Date;
  updatedAt: Date;
}

interface EditPlanClip {
  id: string;
  type: 'video' | 'image' | 'title' | 'audio';
  sourceId: string;               // 素材ID
  startTime: number;               // 开始时间(秒)
  endTime: number;                 // 结束时间(秒)
  position: { x: number; y: number; w: number; h: number };
  effects?: ClipEffect[];
  audio?: AudioConfig;
}

interface ClipEffect {
  type: 'zoom' | 'pan' | 'blur' | 'color';
  params: Record<string, any>;
}

interface AudioConfig {
  sourceId: string;
  volume: number;
  startTime: number;
  fadeIn: number;
  fadeOut: number;
}
```

**2.3.2 API 端点**

| 方法 | 路径 | 描述 | 优先级 |
|------|------|------|--------|
| GET | `/api/v1/edit-templates` | 模板列表 | P0 |
| GET | `/api/v1/edit-templates/{id}` | 模板详情 | P0 |
| GET | `/api/v1/templates/{id}/preview` | 模板预览 | P1 |
| POST | `/api/v1/edit-plans` | 创建剪辑计划 | P0 |
| GET | `/api/v1/edit-plans` | 剪辑计划列表 | P0 |
| GET | `/api/v1/edit-plans/{id}` | 剪辑计划详情 | P0 |
| PUT | `/api/v1/edit-plans/{id}` | 更新剪辑计划 | P0 |
| DELETE | `/api/v1/edit-plans/{id}` | 删除剪辑计划 | P1 |
| POST | `/api/v1/edit-plans/{id}/preview` | 预览剪辑计划 | P0 |
| POST | `/api/v1/edit-plans/{id}/generate` | 执行剪辑生成 | P0 |
| GET | `/api/v1/edit-plans/{id}/status` | 任务状态查询 | P0 |
| POST | `/api/v1/generation/from-edit-plan` | 从剪辑计划生成 | P0 |

**2.3.3 服务层**

| 服务 | 职责 |
|------|------|
| `EditTemplateService` | 模板 CRUD、模板搜索 |
| `AutoClipService` | 智能选片（分类+质量分+时长） |
| `EditPlanService` | 计划 CRUD、状态管理 |
| `VideoComposeService` | FFmpeg 拼接编排 |
| `JobService` | 异步任务管理（队列+进度） |

**2.3.4 FFmpeg 拼接实现要点**

```python
# 伪代码：按 EditPlan 生成 FFmpeg 命令
def build_ffmpeg_command(plan: EditPlan) -> str:
    filters = []
    inputs = []
    concat_parts = []
    
    for clip in plan.clips:
        # 添加输入源
        inputs.extend(['-i', clip.sourcePath])
        
        # 计算时间和位置滤镜
        filter_str = f"[{idx}]scale={clip.width}:{clip.height},"
        filter_str += f"crop={clip.width}:{clip.height}:{clip.x}:{clip.y},"
        filter_str += f"setpts=PTS-STARTPTS+{clip.startTime}/TB,"
        filter_str += f"trim=0:{clip.duration},"
        filter_str += f"atrim=0:{clip.duration}[v{idx}];"
        
        concat_parts.append(f"[v{idx}]")
    
    # 视频合并
    if len(concat_parts) > 1:
        filter_str += ''.join(concat_parts) + f"concat=n={len(concat_parts)}:v=1:a=0[outv]"
    else:
        filter_str += f"{concat_parts[0]}copy[outv]"
    
    # 音频处理（如有配音）
    # ...
    
    return f"ffmpeg {' '.join(inputs)} -filter_complex '{filter_str}' -map '[outv]' output.mp4"
```

#### 2.4 前端任务清单

| 序号 | 任务 | 描述 | 优先级 |
|------|------|------|--------|
| 2.1 | 模板库页面升级 | 展示模板类型，添加模板预览 | P0 |
| 2.2 | 剪辑计划编辑器 | 对接后端 API，完成时间线编辑 | P0 |
| 2.3 | 素材选择器优化 | 支持按分类/质量分筛选 | P0 |
| 2.4 | 预览播放器 | 预览编辑效果 | P1 |
| 2.5 | 生成进度展示 | 对接任务状态 API | P0 |

#### 2.5 外部依赖

- FFmpeg（需服务器安装）
- 素材库（已有）
- 配音库（已有或 CosyVoice）

#### 2.6 预估工作量

| 层级 | 任务 | 预估人天 |
|------|------|----------|
| 后端 | 数据模型 + API | 8 |
| 后端 | 服务层（选片+编排） | 6 |
| 后端 | FFmpeg 拼接 | 6 |
| 前端 | 剪辑计划编辑器 | 5 |
| 前端 | 其他页面对接 | 2 |
| **合计** | | **27-30** |

---

### 模块 3：CosyVoice 集成（阿里云 TTS + 音色克隆）

#### 3.1 模块目标

集成阿里云 CosyVoice 服务，实现高质量 TTS 文字转语音和音色克隆功能。

#### 3.2 功能范围

- **TTS 文字转语音**：使用预置音色合成语音
- **音色克隆**：用户上传音频样本，AI 学习后生成专属配音
- 与现有配音库对接

#### 3.3 后端任务清单

**3.3.1 数据模型**

```typescript
interface VoiceCloneProfile {
  id: string;
  userId: string;
  name: string;
  status: 'processing' | 'ready' | 'failed';
  voiceId: string;                    // CosyVoice 音色ID
  sampleAudio: string;                // 样本音频存储路径
  createdAt: Date;
  updatedAt: Date;
}

interface TTSJob {
  id: string;
  userId: string;
  text: string;
  voiceId: string;                    // 预置或克隆音色
  params: TTSParams;
  status: 'pending' | 'processing' | 'completed' | 'failed';
  resultUrl?: string;
  createdAt: Date;
}
```

**3.3.2 API 端点**

| 方法 | 路径 | 描述 | 优先级 |
|------|------|------|--------|
| GET | `/api/v1/voices` | 配音列表（含预置+克隆） | P0 |
| POST | `/api/v1/voice-clones` | 创建音色克隆任务 | P0 |
| GET | `/api/v1/voice-clones` | 克隆音色列表 | P0 |
| GET | `/api/v1/voice-clones/{id}` | 克隆音色详情 | P0 |
| DELETE | `/api/v1/voice-clones/{id}` | 删除克隆音色 | P1 |
| POST | `/api/v1/tts` | 发起 TTS 合成 | P0 |
| GET | `/api/v1/tts/{id}` | TTS 任务状态 | P0 |

**3.3.3 CosyVoice 服务集成**

```python
# 服务层伪代码
class CosyVoiceService:
    def __init__(self):
        self.api_key = settings.COSYVOICE_API_KEY  # 需用户提供
        self.base_url = "https://dashscope.aliyuncs.com/api/v1/services/audio/tts"
    
    def list_preset_voices(self) -> List[Voice]:
        """获取预置音色列表"""
        # 调用阿里云 API 获取支持的音色
        pass
    
    def clone_voice(self, user_id: str, audio_url: str, name: str) -> str:
        """克隆音色，返回 voice_id"""
        # 1. 下载用户音频
        # 2. 调用声音复刻 API
        # 3. 返回音色 ID
        pass
    
    def synthesize(self, text: str, voice_id: str, params: TTSParams) -> str:
        """合成语音，返回音频 URL"""
        # 调用 TTS API
        pass
```

#### 3.4 前端任务清单

| 序号 | 任务 | 描述 | 优先级 |
|------|------|------|--------|
| 3.1 | 配音库页面升级 | 展示预置+克隆音色分类 | P0 |
| 3.2 | 克隆音色卡片 | 我的音色库页面 | P0 |
| 3.3 | 克隆 Modal | 上传音频/录制功能 | P0 |
| 3.4 | 一键生成对接 | 配音选择支持克隆音色 | P0 |
| 3.5 | 克隆进度展示 | 显示克隆状态 | P1 |

#### 3.5 外部依赖

| 依赖 | 说明 | 状态 |
|------|------|------|
| 阿里云 CosyVoice API Key | 用户需提供 | ⚠️ 待用户提供 |
| 阿里云 OSS | 音频文件存储 | 已有 |
| 音频处理服务 | 格式转换、时长验证 | 需开发 |

#### 3.6 预估工作量

| 层级 | 任务 | 预估人天 |
|------|------|----------|
| 后端 | API + 数据模型 | 3 |
| 后端 | CosyVoice 服务集成 | 5 |
| 后端 | 音色克隆流程 | 4 |
| 前端 | 配音库升级 | 2 |
| 前端 | 克隆功能 UI | 3 |
| **合计** | | **17-20** |

---

### 模块 4：多平台发布集成

#### 4.1 模块目标

实现视频一键发布到抖音、快手、小红书、微信视频号四大平台。

#### 4.2 功能范围

- 账号授权管理（OAuth）
- 视频上传
- 标题/描述发布
- 发布状态同步

#### 4.3 后端任务清单

**4.3.1 数据模型**

```typescript
interface PlatformAccount {
  id: string;
  userId: string;
  platform: 'douyin' | 'kuaishou' | 'xiaohongshu' | 'wechat_video';
  platformUserId: string;            // 平台用户ID
  nickname: string;
  avatar?: string;
  accessToken: string;               // 加密存储
  refreshToken?: string;
  tokenExpiredAt: Date;
  status: 'active' | 'expired' | 'revoked';
  createdAt: Date;
}

interface PublishTask {
  id: string;
  userId: string;
  platform: string;
  accountId: string;
  productId: string;                 // 成片ID
  title: string;
  description?: string;
  status: 'pending' | 'uploading' | 'processing' | 'published' | 'failed';
  platformPostId?: string;          // 平台帖子ID
  platformUrl?: string;             // 发布后链接
  error?: string;
  createdAt: Date;
}
```

**4.3.2 API 端点**

| 方法 | 路径 | 描述 | 优先级 |
|------|------|------|--------|
| GET | `/api/v1/platforms` | 支持的平台列表 | P0 |
| GET | `/api/v1/accounts` | 账号列表 | P0 |
| POST | `/api/v1/accounts/bind` | 绑定平台账号 | P0 |
| DELETE | `/api/v1/accounts/{id}` | 解绑账号 | P0 |
| GET | `/api/v1/accounts/{id}/info` | 刷新账号信息 | P1 |
| POST | `/api/v1/publish` | 创建发布任务 | P0 |
| GET | `/api/v1/publish/{id}` | 发布状态 | P0 |
| POST | `/api/v1/publish/batch` | 批量发布 | P1 |
| GET | `/api/v1/publish/history` | 发布历史 | P1 |

**4.3.3 平台服务抽象**

```python
# 平台服务抽象
class BasePlatformService:
    platform: str
    auth_url: str
    token_url: str
    
    def get_authorization_url(self, state: str) -> str
    def exchange_token(self, code: str) -> TokenInfo
    def refresh_token(self, refresh_token: str) -> TokenInfo
    def upload_video(self, account: Account, video: Video) -> str  # 返回 video_id
    def publish_video(self, account: Account, video_id: str, params: PublishParams) -> str
    def get_user_info(self, access_token: str) -> UserInfo

# 各平台实现
class DouyinService(BasePlatformService):
    platform = 'douyin'
    # ...

class KuaishouService(BasePlatformService):
    platform = 'kuaishou'
    # ...

class XiaohongshuService(BasePlatformService):
    platform = 'xiaohongshu'
    # ...
```

#### 4.4 前端任务清单

| 序号 | 任务 | 描述 | 优先级 |
|------|------|------|--------|
| 4.1 | 账号管理页面 | 平台账号绑定/解绑 | P0 |
| 4.2 | 授权回调处理 | OAuth 回调页面 | P0 |
| 4.3 | 发布弹窗 | 选择平台+填写标题 | P0 |
| 4.4 | 发布历史页面 | 查看发布状态 | P1 |
| 4.5 | 批量发布 | 选择多平台发布 | P1 |

#### 4.5 外部依赖

各平台开发者账号和 API 权限（详见第三部分）

#### 4.6 预估工作量

| 平台 | 后端 | 前端 | 备注 |
|------|------|------|------|
| 抖音 | 5 | 2 | 需申请权限 |
| 快手 | 4 | 2 | OAuth 集成 |
| 小红书 | 4 | 2 | API 限制较多 |
| 视频号 | - | - | ⚠️ 暂不支持 |
| 平台抽象层 | 3 | - | 统一接口 |
| **合计** | **16-20** | **8** | |

---

### 模块 5：Phase 9 智能剪辑增强（远期）

#### 5.1 模块目标

引入 AI 能力，提升视频创作智能化水平。

#### 5.2 功能范围

- **AI 自动生成标题**：基于视频内容生成吸引人的标题
- **AI 智能裁剪**：自动裁剪最佳画面比例
- **AI 字幕生成**：语音识别生成字幕

#### 5.3 后端任务清单

**5.3.1 数据模型**

```typescript
interface AITitleSuggestion {
  id: string;
  productId: string;
  titles: string[];                 // 生成的标题列表
  selectedIndex?: number;           // 用户选择的索引
  createdAt: Date;
}

interface SmartCropResult {
  id: string;
  productId: string;
  aspectRatio: string;
  cropData: CropRegion[];           // 裁剪区域序列
  previewUrl: string;
}

interface SubtitleTrack {
  id: string;
  productId: string;
  segments: SubtitleSegment[];
  language: string;
  style: SubtitleStyle;
}

interface SubtitleSegment {
  startTime: number;
  endTime: number;
  text: string;
  confidence: number;
}
```

**5.3.2 API 端点**

| 方法 | 路径 | 描述 | 优先级 |
|------|------|------|--------|
| POST | `/api/v1/ai/titles` | 生成标题建议 | P1 |
| POST | `/api/v1/ai/smart-crop` | 智能裁剪 | P2 |
| POST | `/api/v1/ai/subtitles` | 生成字幕 | P1 |
| GET | `/api/v1/ai/subtitles/{id}` | 字幕详情 | P1 |

**5.3.3 AI 服务集成**

| 能力 | 推荐方案 | 说明 |
|------|----------|------|
| 标题生成 | GPT-4 / 通义千问 | 视频主题理解+营销文案 |
| 智能裁剪 | 内部算法 / 阿里云 VCS | 基于内容理解自动裁剪 |
| 字幕生成 | 阿里云 ASR / 飞书妙记 | 语音转文字 |

#### 5.4 前端任务清单

| 序号 | 任务 | 描述 | 优先级 |
|------|------|------|--------|
| 5.1 | AI 标题面板 | 展示生成标题，支持选择/编辑 | P1 |
| 5.2 | 智能裁剪工具 | 可视化裁剪预览 | P2 |
| 5.3 | 字幕编辑器 | 时间轴字幕编辑 | P1 |

#### 5.5 预估工作量

| 能力 | 后端 | 前端 | 预估人天 |
|------|------|------|----------|
| AI 标题生成 | 5 | 3 | 8 |
| AI 智能裁剪 | 8 | 4 | 12 |
| AI 字幕生成 | 6 | 4 | 10 |
| **合计** | **19** | **11** | **30** |

---

## 第三部分：外部集成专项

---

### 3.1 CosyVoice 集成方案

#### 3.1.1 阿里云 CosyVoice 能力

据阿里云百炼平台文档（https://help.aliyun.com/zh/model-studio/voice-cloning-user-guide），CosyVoice 提供：

| 能力 | 说明 |
|------|------|
| 预置音色 | 多个男女声可选，无需额外配置 |
| 声音复刻（音色克隆） | 仅需 10-20 秒音频样本，即可生成高度相似的定制音色 |
| 多语言支持 | 中文、英文、日语、韩语等 |
| 实时/非实时合成 | 均支持 |

#### 3.1.2 API 对接流程

```
用户上传音频
      │
      ▼
后端接收音频文件 ──► 验证格式/时长 ──► 存储到 OSS
      │
      ▼
调用阿里云声音复刻 API
POST https://dashscope.aliyuncs.com/api/v1/services/audio/tts/customization
Headers: Authorization: Bearer {API_KEY}
Body: {
  "url": "音频OSS地址",
  "prefix": "音色名称"
}
      │
      ▼
获取 voice_id (音色ID)
      │
      ▼
保存到数据库，返回给前端
```

#### 3.1.3 后端配置和代码改动

**配置文件（需用户提供）：**

```yaml
# config.yaml
cosyvoice:
  api_key: "your-dashscope-api-key"        # 需用户提供
  base_url: "https://dashscope.aliyuncs.com"
  region: "cn-beijing"                       # 或 ap-southeast-1
  voice_enrollment_url: "/api/v1/services/audio/tts/customization"
  tts_url: "/api/v1/services/audio/tts"
```

**代码改动清单：**

| 文件 | 改动 |
|------|------|
| `config.py` | 添加 CosyVoice 配置 |
| `models/voice_clone.py` | 新增数据模型 |
| `services/cosyvoice_service.py` | 新增服务类 |
| `api/v1/voices.py` | 新增/修改 API 端点 |
| `api/v1/voice_clones.py` | 新增音色克隆 API |

#### 3.1.4 需要用户提供的资料

| 资料 | 说明 | 必需 |
|------|------|------|
| DashScope API Key | 阿里云百炼平台的 API Key | ✅ |
| 阿里云 AccessKey ID/Secret | 用于 OSS 上传 | ✅ |
| 开通的服务 | 确认已开通 CosyVoice 服务 | ✅ |

#### 3.1.5 与现有配音库对接

**现有配音库架构（推测）：**

```
配音库
├── 预置配音列表
│   ├── 基础配音1
│   ├── 基础配音2
│   └── ...
└── TTS 参数配置 (TTSParams)
```

**升级后架构：**

```
配音库
├── 预置音色 (CosyVoice)
│   ├── 龙小淳 (女声-温柔知性)
│   ├── 龙小夏 (女声-活泼可爱)
│   └── ...
├── 我的克隆音色 (Voice Clone)
│   ├── 我的声音_1
│   └── ...
└── TTS 参数配置 (升级为 CosyVoice)
```

**对接要点：**
1. 配音选择时增加"克隆音色"Tab
2. 一键生成时配音选择支持用户克隆音色
3. 生成配音时调用 CosyVoice TTS API

---

### 3.2 多平台发布方案

#### 3.2.1 抖音开放平台

##### 平台开放能力

| 能力 | 说明 | 状态 |
|------|------|------|
| 视频上传 API | 上传视频获取 video_id | ✅ 可用 |
| 视频发布 API | 代用户发布视频到抖音 | ✅ 需申请 |
| OAuth 授权 | 用户授权后获取 Access Token | ✅ 可用 |
| 数据查询 | 查询发布后的播放数据 | ✅ 有限 |

**重要限制（2025年8月更新）：**

据抖音开放平台公告（https://developer.open-douyin.com/announcement/349）：

> - **主体限制**：不再向个体工商户开放；企业需满足注册资本≥50万且注册时间≥1年
> - **应用类型限制**：仅对创作工具、社区、硬件配套、游戏类应用开放
> - **场景限制**：仅对 C 端用户创作内容后的分享场景开放，营销类内容不开放

##### 开发者注册流程

1. 访问 [抖音开放平台](https://open.douyin.com/)
2. 注册开发者账号
3. 创建应用（选择类型：移动应用/网站应用）
4. 完成主体资质认证（需企业营业执照）
5. 在「能力实验室」申请「代替用户发布内容到抖音」能力
6. 等待审核（通常 3-7 工作日）

##### 需要的资质

| 资质 | 说明 | 必需 |
|------|------|------|
| 企业营业执照 | 注册资本≥50万 | ✅ |
| App ID / App Secret | 应用凭证 | ✅ |
| 隐私政策 | 用户数据处理说明 | ✅ |
| ICP 备案 | 网站需有备案 | ⚠️ 网站应用需要 |

##### OAuth 授权流程

```
1. 构建授权链接:
   https://open.douyin.com/oauth/authorize?
     client_key={APPID}&
     response_type=code&
     scope=video.create&
     redirect_uri={回调地址}

2. 用户授权后，回调带回 code

3. 交换 Token:
   POST https://open.douyin.com/oauth/access_token
   {
     "client_key": "...",
     "client_secret": "...",
     "code": "...",
     "grant_type": "authorization_code"
   }

4. 获取 access_token (有效期 24小时，需刷新)
```

##### API 对接要点

```python
# 视频上传
POST https://open.douyin.com/api/douyin/v1/video/upload_video/
Headers: Access-Token: {access_token}
Form-Data: video_file (分片上传 >50MB)

# 视频发布
POST https://open.douyin.com/api/douyin/v1/video/data/batch_optimized/
Body: {
  "video_id": "...",
  "title": "视频标题",
  "description": "视频描述",
  "topics": ["话题1", "话题2"]
}
```

##### 预估开发工作量

| 任务 | 预估人天 |
|------|----------|
| OAuth 授权流程 | 2 |
| 视频上传服务 | 2 |
| 视频发布服务 | 2 |
| 错误处理和重试 | 1 |
| **合计** | **7** |

---

#### 3.2.2 快手开放平台

##### 平台开放能力

| 能力 | 说明 | 状态 |
|------|------|------|
| OAuth 2.0 授权 | 用户授权获取 Token | ✅ 可用 |
| 视频上传 API | 支持 URL 方式和分片上传 | ✅ 可用 |
| 视频发布 API | 草稿箱发布 | ✅ 可用 |
| 数据查询 | 播放数据有限 | ⚠️ 有限 |

##### 开发者注册流程

1. 访问 [快手开放平台](https://open.kuaishou.com/)
2. 注册开发者账号
3. 创建应用
4. 申请权限：`user_info` + `content_publish`
5. 配置回调地址
6. 提交审核

##### 需要的资质

| 资质 | 说明 | 必需 |
|------|------|------|
| 企业/个人账号 | 均可注册 | ✅ |
| App Key / App Secret | 应用凭证 | ✅ |
| 隐私政策 | 用户数据处理说明 | ✅ |

##### OAuth 授权流程

```
1. 授权链接:
   https://open.kuaishou.com/oauth2/authorize?
     response_type=code&
     client_id={APP_KEY}&
     redirect_uri={回调地址}&
     scope=user_info,content_publish

2. 交换 Token:
   POST https://open.kuaishou.com/oauth2/access_token
   {
     "grant_type": "authorization_code",
     "code": "...",
     "client_id": "...",
     "client_secret": "..."
   }

3. access_token 有效期 90 天
```

##### API 对接要点

```python
# 视频上传 (URL 方式)
POST https://open.kuaishou.com/openapi/mp/developer/playlet/novelDrama/video/url/upload
Headers: X-Access-Token: {access_token}
Body: {
  "url": "公网视频URL",
  "callback_url": "回调地址"
}

# 视频发布 (Feed 卡片)
POST https://open.kuaishou.com/openapi/mp/developer/feed/add
Body: {
  "app_id": "...",
  "third_id": "唯一ID",
  "title": "标题",
  "video_file": {
    "url": "视频URL",
    "cover_url": "封面URL"
  }
}
```

##### 预估开发工作量

| 任务 | 预估人天 |
|------|----------|
| OAuth 授权流程 | 1.5 |
| 视频上传服务 | 2 |
| 视频发布服务 | 2 |
| 回调处理 | 1 |
| **合计** | **6.5** |

---

#### 3.2.3 小红书开放平台

##### 平台开放能力

| 能力 | 说明 | 状态 |
|------|------|------|
| OAuth 授权 | 用户授权 | ✅ 可用 |
| 内容发布 API | 发布图文/视频笔记 | ✅ 有限开放 |
| 数据查询 | 笔记数据查询 | ✅ 有限 |
| **注意** | 商业开放平台面向广告主，与内容发布 API 不同 | ⚠️ |

##### 开发者注册流程

1. 访问 [小红书开放平台](https://developers.xiaohongshu.com/)
2. 注册开发者账号
3. 完成企业/个人实名认证
4. 创建应用（选择类型：内容工具）
5. 申请笔记发布相关权限
6. 提交审核

##### 需要的资质

| 资质 | 说明 | 必需 |
|------|------|------|
| 营业执照/身份证 | 企业或个人认证 | ✅ |
| App Key / App Secret | 应用凭证 | ✅ |
| 隐私政策 | 用户数据处理说明 | ✅ |
| 业务场景说明 | 说明内容发布用途 | ✅ |

##### OAuth 授权流程

```
1. 授权链接:
   https://creator.xiaohongshu.com/creator/login?
     app_id={APP_ID}&
     redirect_uri={回调地址}&
     state={随机字符串}

2. 回调获取授权码

3. 交换 Token (通过服务端 API):
   POST https://api.xiaohongshu.com/auth/token
   Body: { authorization_code: "..." }

4. 获取 access_token (有效期较短，需刷新)
```

##### API 对接要点

```python
# 发布笔记
POST https://api.xiaohongshu.com/api/publish/v1/note
Headers: Authorization: Bearer {access_token}
Body: {
  "title": "笔记标题",
  "content": "正文内容",
  "image_urls": ["图片URL列表"],
  "video_url": "视频URL",  # 视频笔记
  "tag_ids": ["话题ID"]
}

# 注意：
# - 图片需先上传到小红书CDN
# - 视频需先上传获取URL
# - 审核较严格，建议先发布草稿
```

##### 重要限制

| 限制项 | 说明 |
|--------|------|
| 内容审核 | 小红书内容审核较严格，营销内容容易被限流 |
| API 权限 | 内容发布 API 需要单独申请，审核周期较长 |
| 调用频率 | 有频率限制，建议做好限流处理 |

##### 预估开发工作量

| 任务 | 预估人天 |
|------|----------|
| OAuth 授权流程 | 2 |
| 图片上传处理 | 2 |
| 视频上传处理 | 2 |
| 笔记发布服务 | 2 |
| **合计** | **8** |

---

#### 3.2.4 微信视频号

##### 平台开放能力

**⚠️ 重要：视频号暂不支持 API 发布视频**

据微信开放社区多个问答（https://developers.weixin.qq.com/community/minihome/doc/00088cbe6942e0e72853b01af66c00）：

> "微信视频号目前暂未开放视频内容发布的开放API。根据现有文档，视频号相关API主要集中在商品管理、橱窗运营、直播数据获取等电商相关功能，未提供视频内容上传及发布的开放接口。"

| 能力 | 说明 | 状态 |
|------|------|------|
| 视频上传 API | ❌ 不存在 | ❌ |
| 视频发布 API | ❌ 不存在 | ❌ |
| 直播数据 | ✅ 有限可用 | ⚠️ |
| 橱窗管理 | ✅ 商品接口 | ⚠️ |

##### 替代方案

| 方案 | 说明 | 可行性 |
|------|------|----------|
| 视频号助手网页 | 通过扫码跳转到视频号助手发布 | ⚠️ 低效 |
| 第三方工具 | 存在合规风险 | ❌ 不推荐 |
| 等待官方 API | 持续关注平台更新 | ⏳ 待确认 |

##### 预估开发工作量

**暂无法评估**，需等待微信官方开放相关 API。

---

#### 3.2.5 多平台发布对比

| 平台 | API 成熟度 | 申请难度 | 审核周期 | 推荐优先级 |
|------|------------|----------|----------|-------------|
| 抖音 | ⭐⭐⭐⭐⭐ | 高（需企业资质） | 3-7天 | ⭐⭐⭐⭐ |
| 快手 | ⭐⭐⭐⭐ | 中 | 1-3天 | ⭐⭐⭐⭐ |
| 小红书 | ⭐⭐⭐ | 中高（审核严） | 3-7天 | ⭐⭐⭐ |
| 视频号 | ❌ 无 | N/A | N/A | 暂不支持 |

---

## 第四部分：执行建议

### 4.1 开发顺序建议

#### 阶段一：V21 UI 优先（约 4-6 周）

**原因**：
1. UI 是所有功能的基础
2. 多平台发布的账号管理页面依赖 V21 UI
3. Phase 8 前端编辑器依赖 V21 布局组件

**执行策略**：
- 前端团队专注 V21 UI 改造
- 后端可并行启动 Phase 8 开发

#### 阶段二：Phase 8 模板编排 + CosyVoice（约 4-6 周）

**并行执行**：
- Phase 8 后端（模板管理 + FFmpeg 拼接）
- CosyVoice 集成（后端 API + 服务）

**前端**：
- 完成 V21 UI 后，对接 Phase 8 和 CosyVoice

#### 阶段三：多平台发布（约 4-8 周）

**前置条件**：
1. V21 UI 账号管理页面完成
2. 用户完成各平台开发者注册和资质认证

**执行策略**：
- 先接入快手（申请简单）
- 再接入抖音（影响力大）
- 最后接入小红书（审核严格）

#### 阶段四：Phase 9 AI 增强（约 6-8 周）

**前置条件**：
- Phase 8 模板编排完成

**可并行**：
- AI 标题生成
- AI 字幕生成
- AI 智能裁剪

### 4.2 前后端并行策略

```
┌─────────────────────────────────────────────────────────────────────┐
│                         前端 Team                                    │
├─────────────────────────────────────────────────────────────────────┤
│  V21 UI ──────────────────┬── Phase 8 UI ──┬── 平台发布 UI          │
│  (4-6周)                  │  (2周)          │  (4周)                  │
└───────────────────────────┴─────────────────┴────────────────────────┘
         │                       │                  │
         │              ┌────────┴────────┐        │
         │              │                 │        │
         ▼              ▼                 ▼        ▼
┌─────────────────────────────────────────────────────────────────────┐
│                         后端 Team                                    │
├─────────────────────────────────────────────────────────────────────┤
│  Phase 8 模板编排   CosyVoice 集成    平台发布服务    Phase 9 AI    │
│  (6周)              (3周)              (6周)           (8周)          │
└─────────────────────────────────────────────────────────────────────┘

建议：V21 UI 和 Phase 8 后端并行执行
```

### 4.3 各阶段验收标准

#### Phase V21 UI 验收

| 检查项 | 标准 |
|--------|------|
| 设计系统 | CSS 变量统一，覆盖所有设计 token |
| 布局组件 | Sidebar/Header/PageHead 渲染正确 |
| 核心页面 | 生成/素材/配音/标题/成片 5 个页面完成度 ≥ 95% |
| 响应式 | 主要断点（1440/1024/768）布局正常 |
| 功能回归 | 已有功能不受影响 |

#### Phase 8 验收

| 检查项 | 标准 |
|--------|------|
| 模板管理 | CRUD + 模板预览正常 |
| 剪辑计划 | 创建/编辑/保存/删除正常 |
| FFmpeg 拼接 | 生成视频完整播放 |
| 自动选片 | 按分类/质量分筛选有效 |
| 前端对接 | 剪辑编辑器完整可用 |

#### CosyVoice 验收

| 检查项 | 标准 |
|--------|------|
| TTS 合成 | 预置音色合成正常 |
| 音色克隆 | 上传音频 → 克隆 → 生成配音 全流程通 |
| 配音库 | 预置+克隆分类展示 |
| 一键生成 | 配音选择支持克隆音色 |

#### 多平台发布验收

| 检查项 | 标准 |
|--------|------|
| OAuth | 各平台授权正常 |
| 视频上传 | 成片上传成功 |
| 发布 | 视频成功发布到平台 |
| 状态同步 | 发布结果正确同步 |
| 错误处理 | 异常情况正确提示 |

### 4.4 风险提示

| 风险 | 影响 | 缓解措施 |
|------|------|----------|
| 抖音 API 申请被拒 | 高 | 提前准备企业资质，了解申请规范 |
| 小红书审核严格 | 中 | 内容合规性检查，控制发布频率 |
| 视频号无 API | 高 | 持续关注官方动态，暂无替代方案 |
| CosyVoice API 变更 | 低 | 封装服务层，隔离外部依赖 |

### 4.5 用户需要配合的事项

| 事项 | 负责方 | 优先级 |
|------|--------|--------|
| 提供阿里云 DashScope API Key | 用户 | 🔴 紧急 |
| 确认阿里云 COSYVoice 服务已开通 | 用户 | 🔴 紧急 |
| 注册抖音开放平台账号 + 企业认证 | 用户 | 🟡 高 |
| 注册快手开放平台账号 | 用户 | 🟡 高 |
| 注册小红书开放平台账号 | 用户 | 🟡 高 |
| 提供各平台 App Key/Secret | 用户 | 🔴 紧急 |
| 反馈 V21 UI 原型修改意见 | 用户 | 🟢 中 |

---

## 附录

### A. 相关文档链接

| 文档 | 链接 |
|------|------|
| V21 UI 开发指令 | `/app/data/所有对话/主对话/frontend-v21-ui-development-plan.md` |
| 抖音开放平台 | https://open.douyin.com/ |
| 快手开放平台 | https://open.kuaishou.com/ |
| 小红书开放平台 | https://developers.xiaohongshu.com/ |
| 微信开放社区 | https://developers.weixin.qq.com/community/ |
| 阿里云百炼 CosyVoice | https://help.aliyun.com/zh/model-studio/voice-cloning-user-guide |

### B. 版本历史

| 版本 | 日期 | 更新内容 |
|------|------|----------|
| V2.0 | 2025-01 | 整合所有待开发工作，添加多平台发布方案 |
| V1.0 | 2024-XX | 初始版本（Phase 8-9 规划）|

### C. 待确认事项

| 事项 | 状态 | 备注 |
|------|------|------|
| 阿里云 DashScope API Key | ⏳ 待用户提供 | 必需 |
| 阿里云 COSYVoice 服务状态 | ⏳ 待确认 | 需用户登录确认 |
| 各平台开发者账号 | ⏳ 待注册 | 用户自行注册 |
| 视频号 API 后续开放计划 | ⏳ 待关注 | 暂无解决方案 |

---

> **文档说明**：本路线图基于当前项目状态和公开平台信息制定。平台政策可能随时更新，请以各平台官方最新文档为准。

---

> 本内容由 Coze AI 生成，请遵循相关法律法规及《人工智能生成合成内容标识办法》使用与传播。
