Spaces:
Sleeping
Sleeping
File size: 1,275 Bytes
4d4b8ad |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
import gradio as gr
import pytube
from transformers import pipeline
# Initialize pipelines
asr = pipeline("automatic-speech-recognition", model="openai/whisper-base", chunk_length_s=30)
summarizer = pipeline("summarization", model="facebook/bart-large-cnn")
def summarize_youtube(url):
# Download audio
yt = pytube.YouTube(url)
stream = yt.streams.filter(only_audio=True).first()
stream.download(filename="audio.mp3")
# Transcribe
result = asr("audio.mp3")
transcript = result["text"]
# Summarize
summary = summarizer(transcript, max_length=150, min_length=50, do_sample=False)[0]["summary_text"]
# Embed video
v_id = url.split("v=")[-1]
embed_html = f'<iframe width="560" height="315" src="https://www.youtube.com/embed/{v_id}" frameborder="0" allowfullscreen></iframe>'
return embed_html, transcript, summary
# Build Gradio app
with gr.Blocks() as demo:
gr.Markdown("## 🎓 Multi‑lingual YouTube Summarizer (Hindi / Hinglish / English)")
url_input = gr.Textbox(label="YouTube URL")
vid, txt, summ = gr.HTML(), gr.Textbox(label="Transcript"), gr.Textbox(label="Summary")
btn = gr.Button("Summarize")
btn.click(summarize_youtube, inputs=url_input, outputs=[vid, txt, summ])
demo.launch()
|