| from fastapi import APIRouter, HTTPException, Query
|
| from loguru import logger
|
| from app.services.video import generate_video, create_video_with_scenes, generate_voice
|
| from app.schemas.video import VideoGenerateRequest, VideoGenerateResponse, StoryScene
|
| import os
|
| import json
|
| from app.utils.utils import extract_id
|
|
|
| router = APIRouter()
|
|
|
| @router.post("/generate")
|
| async def generate_video_endpoint(
|
| request: VideoGenerateRequest
|
| ):
|
| """生成视频"""
|
| try:
|
| video_file = await generate_video(request)
|
| task_id = extract_id(video_file)
|
|
|
| video_url = "http://127.0.0.1:8000/tasks/" + task_id + "/video.mp4"
|
| return VideoGenerateResponse(
|
| success=True,
|
| data={"video_url": video_url}
|
| )
|
| except Exception as e:
|
| logger.error(f"Failed to generate video: {str(e)}")
|
| return VideoGenerateResponse(
|
| success=False,
|
| message=str(e)
|
| )
|
|
|
|
|
|
|