from moviepy import VideoFileClip import gradio as gr import requests import os import time from gradio_client import Client, handle_file def main(url, parameters, progress=gr.Progress()): """ This function reports progress by yielding intermediate updates. Gradio watches these yields to update the progress bar. """ # Assume parameters is a comma-separated string: "color,font" if parameters: color, font = parameters.split(",") else: color, font = "yellow", "arial" progress(0, desc="پردازش شروع شد") yield "پردازش شروع شد", None time.sleep(2) progress(0.35, desc="تبدیل متن به صوت") yield "تبدیل متن به صوت", None client = Client("rayesh/transcribe") srt_file, video, mp3_file = client.predict( url=url, api_name="/transcribe" ) client.close() print(mp3_file) progress(0.55, desc="در حال ترجمه") yield "در حال ترجمه", None client = Client("rayesh/translate") subtitle_file = client.predict( file=handle_file(srt_file), max_chars=3000, api_name="/translate" ) client.close() progress(1.0, desc="Video editing complete") yield "درحال پردازش ویدئو", None client = Client("SPACERUNNER99/video_edite") output_video_file = client.predict( srt=handle_file(subtitle_file), input_video={"video":handle_file(video["video"])}, color=color, font=font, input_audio=handle_file(mp3_file), api_name="/video_edit" ) client.close() output_video_file = output_video_file['video'] yield "درحال پردازش ویدئو", output_video_file with gr.Blocks() as demo: gr.Markdown("Start typing below and then click **Run** to see the progress and final output.") with gr.Column(): progress_output = gr.Textbox(label="Progress", visible=False) video_file_input = gr.Video(label="Upload Video") parameters = gr.Text(label="pick font and font color(font = arial, yekan, nazanin/ colors = black, yellow, white) and input it int the following format: font,font_color") btn = gr.Button("Create") video_file_output = gr.Video(label="Result Video") btn.click( fn=main, inputs=[video_file_input, parameters], outputs=[progress_output, video_file_output], concurrency_limit=4, ) demo.launch(debug=True)