PreethiPS commited on
Commit
ccdf8f4
·
verified ·
1 Parent(s): 253324c

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +58 -0
app.py ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from youtube_transcript_api import YouTubeTranscriptApi
2
+ from youtube_transcript_api.formatters import TextFormatter
3
+ import re
4
+ import torch
5
+ import gradio as gr
6
+
7
+ import os
8
+
9
+ os.environ['TF_ENABLE_ONEDNN_OPTS'] = '0'
10
+
11
+ from transformers import pipeline
12
+
13
+
14
+ text_summary = pipeline("summarization", model="sshleifer/distilbart-cnn-12-6", torch_dtype=torch.bfloat16)
15
+
16
+ def summary (input):
17
+ output = text_summary(input)
18
+ return output[0]
19
+
20
+ def extract_video_id(youtube_url):
21
+ """
22
+ Extracts the video ID from a YouTube URL.
23
+ """
24
+ video_id = re.search(r'(?<=v=)[\w-]+', youtube_url)
25
+ if video_id:
26
+ return video_id.group(0)
27
+ video_id = re.search(r'(?<=be/)[\w-]+', youtube_url)
28
+ if video_id:
29
+ return video_id.group(0)
30
+ return None
31
+
32
+ def get_transcript(youtube_url):
33
+ """
34
+ Fetches the transcript of a YouTube video given its URL.
35
+ """
36
+ video_id = extract_video_id(youtube_url)
37
+ if not video_id:
38
+ return "Invalid YouTube URL"
39
+
40
+ try:
41
+ transcript_list = YouTubeTranscriptApi.get_transcript(video_id)
42
+ formatter = TextFormatter()
43
+ transcript = formatter.format_transcript(transcript_list)
44
+ sum_text = summary(transcript)
45
+ print(sum_text)
46
+
47
+ return sum_text
48
+ except Exception as e:
49
+ return str(e)
50
+
51
+
52
+ gr.close_all()
53
+ op = gr.Interface(fn=get_transcript,
54
+ inputs= [gr.Textbox(label="Enter YouTube URL:",lines=1)],
55
+ outputs= [gr.Textbox(label="Summarized Transcript:", lines=4)],
56
+ title = "YouTube Video Transcript Summarizer")
57
+ op.launch()
58
+ gr.close_all()