Geethanjali/YouTube_Transcript_Summarizer
1
1from transformers import pipeline2from youtube_transcript_api import YouTubeTranscriptApi3from keybert import KeyBERT4import gradio as gr5from keyphrase_vectorizers import KeyphraseCountVectorizer6import requests7from bs4 import BeautifulSoup8 9def summarize_transcript(url):10 video_id = url.split("=")[1]11 12 transcript = YouTubeTranscriptApi.get_transcript(video_id)13 14 result = ""15 for i in transcript:16 result += ' ' + i['text']17 18 summarizer = pipeline('summarization')19 20 num_iters = int(len(result)/1000)21 summarized_text = []22 for i in range(0, num_iters + 1):23 start = 024 start = i * 100025 end = (i + 1) * 100026 out = summarizer(result[start:end])27 out = out[0]28 out = out['summary_text']29 summarized_text.append(out)30 summ = str(summarized_text)31 print(summ)32 33 #keywords34 words = []35 kw_model = KeyBERT()36 keywords = kw_model.extract_keywords(summ)37 w = kw_model.extract_keywords(summ, vectorizer=KeyphraseCountVectorizer())38 for s in w:39 words.append(s[0])40 41 #tags42 request = requests.get(url)43 html = BeautifulSoup(request.content,"html.parser")44 tags = html.find_all("meta",property = "og:video:tag")45 lst = []46 for tag in tags:47 lst.append(tag['content'])48 return (summ,words,lst)49 50gradio_ui = gr.Interface(fn = summarize_transcript,51 inputs = [gr.inputs.Textbox(label = "Enter the YouTube URL below:")],52 outputs = [gr.outputs.Textbox(label = "Transcript Summary"),gr.outputs.Textbox(label = "Keywords"),gr.outputs.Textbox(label = "Hash Tags")],53 title = "YouTube Transcript Summarizer",54 theme = "grass",55 description = "Here You can see the SUMMARY,KEYWORDS and HASHTAGS of the YouTube video you want to watch")56 57gradio_ui.launch(inline = False)