SamuelVijayJacob commited on
Commit
0b19b3f
·
verified ·
1 Parent(s): 949b1c0

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +63 -0
app.py ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from youtube_transcript_api import YouTubeTranscriptApi
2
+ from urllib.parse import urlparse, parse_qs
3
+ import torch
4
+ import gradio as gr
5
+ # Use a pipeline as a high-level helper
6
+ from transformers import pipeline
7
+
8
+ # model_path = r"../Models/models--sshleifer--distilbart-cnn-12-6/snapshots/a4f8f3ea906ed274767e9906dbaede7531d660ff"
9
+ # text_summary = pipeline ( task= "summarization", model= model_path, torch_dtype=torch.bfloat16)
10
+
11
+ text_summary = pipeline ( task= "summarization", model="sshleifer/distilbart-cnn-12-6", torch_dtype=torch.bfloat16)
12
+
13
+ def summary(input):
14
+ output = text_summary(input)
15
+ return output[0]['summary_text']
16
+
17
+
18
+ def get_video_id(youtube_url):
19
+ # Extract the video ID from the YouTube URL
20
+ query = urlparse(youtube_url)
21
+ if query.hostname == 'youtu.be':
22
+ return query.path[1:]
23
+ if query.hostname in ('www.youtube.com', 'youtube.com'):
24
+ if query.path == '/watch':
25
+ return parse_qs(query.query)['v'][0]
26
+ if query.path[:7] == '/embed/':
27
+ return query.path.split('/')[2]
28
+ if query.path[:3] == '/v/':
29
+ return query.path.split('/')[2]
30
+ return None
31
+
32
+ def get_transcript(youtube_url):
33
+ video_id = get_video_id(youtube_url)
34
+ if not video_id:
35
+ return "Invalid YouTube URL."
36
+
37
+ try:
38
+ transcript = YouTubeTranscriptApi.get_transcript(video_id)
39
+ transcript_text = "\n".join([entry['text'] for entry in transcript])
40
+ summary_text = summary(transcript_text)
41
+ return summary_text
42
+ except Exception as e:
43
+ return f"Error fetching transcript: {e}"
44
+
45
+ # Example usage
46
+ # url = input("Enter YouTube URL: ")
47
+ # transcript = get_transcript(url)
48
+ # print("\n--- Transcript ---\n")
49
+ # print(transcript)
50
+
51
+
52
+ gr.close_all()
53
+
54
+ demo = gr.Interface(fn=get_transcript,
55
+ inputs=[gr.Textbox(label="Input Youtube URL to summarize",lines=1)],
56
+ outputs=[gr.Textbox(label="summarized text",lines=4)],
57
+ title="@GenAILearniverse Project 2: Youtube Script Summarizer",
58
+ description="THIS APPLICATION WILL BE USED TO SUMMARIZE Youtube Video Script")
59
+
60
+
61
+ print("🚀 App is launching...")
62
+ demo.launch(share=True)
63
+