import gradio as gr import whisper from whisper.utils import write_vtt import requests import os import re model = whisper.load_model("medium") def inference(link): content = requests.get(link) podcast_url = re.findall("(?P\;https?://[^\s]+)", content.text)[0].split(';')[1] print(podcast_url) download = requests.get(podcast_url) with open('podcast.mp3', 'wb') as f: f.write(download.content) result = model.transcribe('podcast.mp3') with open('sub.vtt', "w") as txt: write_vtt(result["segments"], file=txt) return (result['text'], 'sub.vtt') title="PodScript" description="Get Podcast Transcript" block = gr.Blocks() with block: gr.HTML( """

PodScript

""" ) with gr.Group(): with gr.Box(): link = gr.Textbox(label="Google Podcasts Link") with gr.Row().style(mobile_collapse=False, equal_height=True): btn = gr.Button("Get PodScript 🪄") text = gr.Textbox( label="PodScript", placeholder="PodScript Output", lines=5) file = gr.File() btn.click(inference, inputs=[link], outputs=[text,file]) block.launch(debug=True, enable_queue = True)