cfc-tech commited on
Commit
2d11ae0
·
verified ·
1 Parent(s): a6e22b9
Files changed (1) hide show
  1. app.py +44 -0
app.py ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from transformers import BartForConditionalGeneration, BartTokenizer
3
+ from youtube_transcript_api import YouTubeTranscriptApi
4
+
5
+ # Load BART model and tokenizer
6
+ model_name = 'facebook/bart-large-cnn'
7
+ tokenizer = BartTokenizer.from_pretrained(model_name)
8
+ model = BartForConditionalGeneration.from_pretrained(model_name)
9
+
10
+ @st.cache
11
+ def get_transcript(url):
12
+ try:
13
+ video_id = url.split('=')[1]
14
+ transcript_list = YouTubeTranscriptApi.get_transcript(video_id)
15
+ transcript_text = ""
16
+ for item in transcript_list:
17
+ transcript_text += item['text'] + "\n"
18
+ return transcript_text
19
+ except Exception as e:
20
+ return "Error fetching transcript: " + str(e)
21
+
22
+ @st.cache
23
+ def summarize_transcript(transcript):
24
+ input_ids = tokenizer.encode("summarize: " + transcript, return_tensors="pt", max_length=1024, truncation=True)
25
+ summary_ids = model.generate(input_ids, num_beams=4, min_length=30, max_length=200, early_stopping=True)
26
+ summary = tokenizer.decode(summary_ids[0], skip_special_tokens=True)
27
+ return summary
28
+
29
+ def main():
30
+ st.title("YouTube Video Transcription Summarizer")
31
+
32
+ video_url = st.text_input("Enter YouTube Video URL:")
33
+
34
+ if st.button("Summarize Transcript"):
35
+ transcript = get_transcript(video_url)
36
+ if not transcript:
37
+ st.error("Error fetching transcript.")
38
+ else:
39
+ summary = summarize_transcript(transcript)
40
+ st.subheader("Summary:")
41
+ st.write(summary)
42
+
43
+ if __name__ == "__main__":
44
+ main()