39 KiB
AIGC
| AIGC | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
小虾 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)
// 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 拼接实现要点
# 伪代码:按 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 数据模型
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 服务集成
# 服务层伪代码
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 数据模型
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 平台服务抽象
# 平台服务抽象
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 数据模型
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 后端配置和代码改动
配置文件(需用户提供):
# 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)
对接要点:
- 配音选择时增加"克隆音色"Tab
- 一键生成时配音选择支持用户克隆音色
- 生成配音时调用 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 端用户创作内容后的分享场景开放,营销类内容不开放
开发者注册流程
- 访问 抖音开放平台
- 注册开发者账号
- 创建应用(选择类型:移动应用/网站应用)
- 完成主体资质认证(需企业营业执照)
- 在「能力实验室」申请「代替用户发布内容到抖音」能力
- 等待审核(通常 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 对接要点
# 视频上传
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 | 草稿箱发布 | ✅ 可用 |
| 数据查询 | 播放数据有限 | ⚠️ 有限 |
开发者注册流程
- 访问 快手开放平台
- 注册开发者账号
- 创建应用
- 申请权限:
user_info+content_publish - 配置回调地址
- 提交审核
需要的资质
| 资质 | 说明 | 必需 |
|---|---|---|
| 企业/个人账号 | 均可注册 | ✅ |
| 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 对接要点
# 视频上传 (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 不同 | ⚠️ |
开发者注册流程
- 访问 小红书开放平台
- 注册开发者账号
- 完成企业/个人实名认证
- 创建应用(选择类型:内容工具)
- 申请笔记发布相关权限
- 提交审核
需要的资质
| 资质 | 说明 | 必需 |
|---|---|---|
| 营业执照/身份证 | 企业或个人认证 | ✅ |
| 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 对接要点
# 发布笔记
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 周)
原因:
- UI 是所有功能的基础
- 多平台发布的账号管理页面依赖 V21 UI
- Phase 8 前端编辑器依赖 V21 布局组件
执行策略:
- 前端团队专注 V21 UI 改造
- 后端可并行启动 Phase 8 开发
阶段二:Phase 8 模板编排 + CosyVoice(约 4-6 周)
并行执行:
- Phase 8 后端(模板管理 + FFmpeg 拼接)
- CosyVoice 集成(后端 API + 服务)
前端:
- 完成 V21 UI 后,对接 Phase 8 和 CosyVoice
阶段三:多平台发布(约 4-8 周)
前置条件:
- V21 UI 账号管理页面完成
- 用户完成各平台开发者注册和资质认证
执行策略:
- 先接入快手(申请简单)
- 再接入抖音(影响力大)
- 最后接入小红书(审核严格)
阶段四: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 生成,请遵循相关法律法规及《人工智能生成合成内容标识办法》使用与传播。