简体中文
当视频生成完成时,系统会调用此回调通知结果
callBackUrl
{ "code": 200, "msg": "Veo3 视频生成成功。", "data": { "taskId": "veo_task_abcdef123456", "info": { "resultUrls": ["http://example.com/video1.mp4"], "originUrls": ["http://example.com/original_video1.mp4"] } } }
const express = require('express'); const fs = require('fs'); const https = require('https'); const app = express(); app.use(express.json()); app.post('/veo3-callback', (req, res) => { const { code, msg, data } = req.body; console.log('收到 Veo3 视频生成回调:', { taskId: data.taskId, status: code, message: msg }); if (code === 200) { // 视频生成成功 const { taskId, info } = data; const { resultUrls, originUrls } = info; console.log('视频生成成功!'); console.log(`任务 ID: ${taskId}`); console.log(`生成视频 URL: ${resultUrls}`); if (originUrls) { console.log(`原始视频 URL: ${originUrls}`); } // 下载生成的视频文件 resultUrls.forEach((url, index) => { if (url) { downloadFile(url, `veo3_generated_${taskId}_${index}.mp4`) .then(() => console.log(`视频 ${index + 1} 下载成功`)) .catch(err => console.error(`视频 ${index + 1} 下载失败:`, err)); } }); // 下载原始视频文件(如果存在) if (originUrls) { originUrls.forEach((url, index) => { if (url) { downloadFile(url, `veo3_original_${taskId}_${index}.mp4`) .then(() => console.log(`原始视频 ${index + 1} 下载成功`)) .catch(err => console.error(`原始视频 ${index + 1} 下载失败:`, err)); } }); } } else { // 视频生成失败 console.log('Veo3 视频生成失败:', msg); // 处理特定错误类型 if (code === 400) { console.log('客户端错误 - 检查提示词和内容政策'); } else if (code === 500) { console.log('服务器内部错误 - 请稍后重试'); } else if (code === 501) { console.log('任务失败 - 视频生成失败'); } } // 返回 200 状态码确认收到回调 res.status(200).json({ code: 200, msg: 'success' }); }); // 辅助函数:下载文件 function downloadFile(url, filename) { return new Promise((resolve, reject) => { const file = fs.createWriteStream(filename); https.get(url, (response) => { if (response.statusCode === 200) { response.pipe(file); file.on('finish', () => { file.close(); resolve(); }); } else { reject(new Error(`HTTP ${response.statusCode}`)); } }).on('error', reject); }); } app.listen(3000, () => { console.log('回调服务器运行在端口 3000'); });
网络连接问题
服务器响应问题
内容格式问题
视频处理问题
内容审核问题
生成质量问题