sreepathi-ravikumar's picture
Update app.py
06ef478 verified
# 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)