From 6d3adc9baec1bbf16e499cd4816578a8bbbdc429 Mon Sep 17 00:00:00 2001 From: qikongjian Date: Tue, 23 Sep 2025 19:46:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=89=AA=E8=BE=91=E5=AE=8C=E6=88=90=E5=90=8E?= =?UTF-8?q?=E4=B8=8D=E8=B5=B0=E4=B8=8B=E8=BD=BD,=E8=AE=A9=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=89=8B=E5=8A=A8=E4=B8=8B=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/workflow-auto-download-disabled.md | 123 ++++++++++++++++++++++++ utils/export-service.ts | 20 ++-- 2 files changed, 134 insertions(+), 9 deletions(-) create mode 100644 docs/workflow-auto-download-disabled.md diff --git a/docs/workflow-auto-download-disabled.md b/docs/workflow-auto-download-disabled.md new file mode 100644 index 0000000..ad12ac9 --- /dev/null +++ b/docs/workflow-auto-download-disabled.md @@ -0,0 +1,123 @@ +# Video-Flow 自动下载功能禁用说明 + +## 📋 修改概述 + +根据需求,已将 Video-Flow 工作流中的自动下载视频功能暂时禁用,用户需要手动下载生成的视频。 + +## 🔍 工作流程梳理 + +### 完整的 Work-Flow 自动调用剪辑接口流程 + +```mermaid +graph TB + A[用户在 work-flow 页面] --> B{视频片段生成完成?} + B -->|是| C[显示 AI 剪辑按钮] + B -->|否| D[等待视频生成] + + C --> E[用户点击 AI 剪辑按钮] + E --> F[ai-editing-adapter.ts 处理] + F --> G[调用 /api/export/ai-clips 接口] + G --> H[执行 AI 剪辑处理] + H --> I[生成最终视频] + I --> J[返回视频 URL] + J --> K[显示手动下载按钮] + + style K fill:#90EE90 + style I fill:#FFE4B5 +``` + +### 涉及的核心文件 + +1. **`components/pages/work-flow.tsx`** - 主工作流页面 +2. **`components/pages/work-flow/ai-editing-button.tsx`** - AI 剪辑按钮组件 +3. **`components/pages/work-flow/ai-editing-adapter.ts`** - AI 剪辑适配器 +4. **`utils/export-service.ts`** - 导出服务(已禁用自动下载) +5. **`app/api/export/ai-clips/route.ts`** - 剪辑接口 +6. **`app/api/export/download/[exportId]/route.ts`** - 下载接口 + +## 🚫 已禁用的自动下载功能 + +### 修改位置 1: `utils/export-service.ts` (第685-701行) + +**修改前**: +```typescript +// 如果SSE中直接有完整结果,直接处理 +if (result?.download_url || result?.video_url) { + const downloadUrl = result.download_url || result.video_url; + console.log('📥 直接从SSE结果下载视频:', downloadUrl); + await downloadVideo(downloadUrl); // 🚫 自动下载 +} +``` + +**修改后**: +```typescript +// 如果SSE中直接有完整结果,直接处理 +if (result?.download_url || result?.video_url) { + const downloadUrl = result.download_url || result.video_url; + console.log('📥 直接从SSE结果获取视频URL:', downloadUrl); + + // 🚫 暂时不支持自动下载 - 已注释 + // await downloadVideo(downloadUrl); +} +``` + +### 修改位置 2: `utils/export-service.ts` (第726-736行) + +**修改前**: +```typescript +// 自动下载视频 +if (finalExportResult.video_url) { + console.log('📥 开始下载视频:', finalExportResult.video_url); + await downloadVideo(finalExportResult.video_url); // 🚫 自动下载 + console.log('✅ 视频下载完成'); +} +``` + +**修改后**: +```typescript +// 🚫 暂时不支持自动下载 - 已注释 +if (finalExportResult.video_url) { + console.log('📥 视频导出完成,URL:', finalExportResult.video_url); + // await downloadVideo(finalExportResult.video_url); + console.log('✅ 视频导出完成,用户可手动下载'); +} +``` + +## ✅ 保留的手动下载功能 + +以下手动下载功能仍然保留: + +### 1. AI 剪辑完成后的下载按钮 +- **文件**: `components/pages/work-flow/ai-editing-button.tsx` +- **位置**: 第284-298行 +- **功能**: AI 剪辑完成后显示下载按钮,用户可手动点击下载 + +### 2. 媒体查看器中的下载按钮 +- **文件**: `components/pages/work-flow/media-viewer.tsx` +- **功能**: 用户可手动下载单个视频或所有视频 + +### 3. 项目列表中的下载按钮 +- **文件**: `components/pages/create-to-video2.tsx` +- **功能**: 用户可在项目列表中手动下载最终视频 + +## 🔄 如何重新启用自动下载 + +如果将来需要重新启用自动下载功能,只需: + +1. 在 `utils/export-service.ts` 中取消注释 `await downloadVideo(downloadUrl)` 行 +2. 将相关的 console.log 消息改回原来的描述 +3. 测试确保自动下载功能正常工作 + +## 📝 注意事项 + +- 自动下载功能的禁用不影响视频的生成和处理 +- 用户仍然可以通过手动点击下载按钮来下载视频 +- 所有的下载接口和相关功能都保持完整,只是不会自动触发 +- 这个修改是临时的,可以随时恢复 + +## 🧪 测试建议 + +1. 测试 AI 剪辑流程是否正常工作 +2. 确认剪辑完成后不会自动下载 +3. 验证手动下载按钮是否正常显示和工作 +4. 检查控制台日志确认修改生效 diff --git a/utils/export-service.ts b/utils/export-service.ts index c537cc6..ed9b734 100644 --- a/utils/export-service.ts +++ b/utils/export-service.ts @@ -685,13 +685,15 @@ export class VideoExportService { // 如果SSE中直接有完整结果,直接处理 if (result?.download_url || result?.video_url) { const downloadUrl = result.download_url || result.video_url; - console.log('📥 直接从SSE结果下载视频:', downloadUrl); - await downloadVideo(downloadUrl); - + console.log('📥 直接从SSE结果获取视频URL:', downloadUrl); + + // 🚫 暂时不支持自动下载 - 已注释 + // await downloadVideo(downloadUrl); + // notification.success({ // message: '视频下载完成!', - // description: result?.file_size - // ? `文件大小: ${(result.file_size / 1024 / 1024).toFixed(2)}MB` + // description: result?.file_size + // ? `文件大小: ${(result.file_size / 1024 / 1024).toFixed(2)}MB` // : '视频已成功下载到本地', // placement: 'topRight', // duration: 8 @@ -721,16 +723,16 @@ export class VideoExportService { }); */ - // 自动下载视频 + // 🚫 暂时不支持自动下载 - 已注释 if (finalExportResult.video_url) { - console.log('📥 开始下载视频:', finalExportResult.video_url); + console.log('📥 视频导出完成,URL:', finalExportResult.video_url); console.log('📋 视频文件信息:', { url: finalExportResult.video_url, file_size: finalExportResult.file_size, quality_mode: finalExportResult.quality_mode }); - await downloadVideo(finalExportResult.video_url); - console.log('✅ 视频下载完成'); + // await downloadVideo(finalExportResult.video_url); + console.log('✅ 视频导出完成,用户可手动下载'); } // 清除缓存的请求数据