--- 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; } 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 生成,请遵循相关法律法规及《人工智能生成合成内容标识办法》使用与传播。