Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import whisper | |
| import os | |
| model = whisper.load_model("tiny") | |
| # main processing | |
| def main(URL): | |
| video_path = youtube_dl(URL) | |
| text = transcript(video_path) | |
| return text | |
| # Transcribe text using Whisper | |
| def transcript(video_path): | |
| result = model.transcribe(video_path) | |
| return result["text"] | |
| # Download the video | |
| def youtube_dl(URL): | |
| # Download the video | |
| os.system(f"yt-dlp -f best -v {URL} -o target.mp4") | |
| # Path of downloaded video | |
| video_path = os.path.join(os.path.dirname(__file__), "target.mp4") | |
| return video_path | |
| with gr.Blocks() as demo: | |
| gr.Markdown( | |
| """ | |
| # YouTube video transcription app | |
| Enter the YouTube URL, press the button, and it will transcribe the video. | |
| """ | |
| ) | |
| with gr.Row(): | |
| with gr.Column(): | |
| with gr.Row(): | |
| url = gr.Textbox(placeholder = 'Youtube video URL', label = 'URL') | |
| with gr.Row(): | |
| transcribe_btn = gr.Button('Transcribe') | |
| with gr.Column(): | |
| outputs = gr.Textbox(placeholder = 'Transcription of the video', label = 'Transcription') | |
| transcribe_btn.click(fn = main, | |
| inputs = url, | |
| outputs = outputs | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch() | |