File size: 1,289 Bytes
1dd3b98
 
 
 
 
 
 
 
 
 
 
06ef478
 
 
1dd3b98
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
06ef478
 
 
 
 
 
 
 
 
1dd3b98
f15ff5e
1dd3b98
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# app.py

from fastapi import FastAPI, Request
from pydantic import BaseModel
from fastapi.responses import FileResponse
import uvicorn

from text_to_slides import split_into_slides
from generate_images import generate_images_for_slides
from generate_voice import generate_audio_for_slides
from create_video import create_video
import gradio as gr



app = FastAPI()

class TextInput(BaseModel):
    content: str

@app.post("/generate_video/")
async def generate_video(data: TextInput):
    text = data.content

    try:
        slides = split_into_slides(text)
        images = generate_images_for_slides(slides)
        audios = generate_audio_for_slides(slides)

        create_video(slides, images, audios, output_path="final_output.mp4")

        return FileResponse("final_output.mp4", media_type="video/mp4", filename="final_output.mp4")

    except Exception as e:
        return {"error": str(e)}
def generate_video(text):
    # your backend processing logic
    return "video.mp4"  # or return a video file path or URL

interface = gr.Interface(fn=generate_video,
                         inputs=gr.Textbox(),
                         outputs=gr.Video())

interface.launch(share=True)

if __name__ == "__main__":
    uvicorn.run("app:app", host="0.0.0.0", port=7860, reload=True)