| | 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)
|
| | )
|
| |
|
| |
|
| |
|