podscript / app.py
Amrrs's picture
Update app.py
84168d6
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<url>\;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(
""" <center>
<h1>PodScript</h1>
<img src = 'https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fwww.newbreedmarketing.com%2Fhs-fs%2Fhubfs%2Fshutterstock_1125707303.jpg%3Fwidth%3D5000%26name%3Dshutterstock_1125707303.jpg&f=1&nofb=1&ipt=0ba3d9b639d63b0b737ea63cd81b241cc47f46cb519ac4ca18fd3ce6fc1376ad&ipo=images' width = '20%'></img>
</center>
"""
)
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)