CoolFace
Apppublic

Geethanjali/YouTube_Transcript_Summarizer

sourceHugging Faceupdated 4y agoView on Hugging Face
1likes
app.py57 linesDownload Raw Back to root
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)