cfc-tech commited on
Commit
91b4905
·
verified ·
1 Parent(s): 8beb8ec

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -26
app.py CHANGED
@@ -1,23 +1,12 @@
1
  import streamlit as st
2
  from transformers import BartForConditionalGeneration, BartTokenizer
3
  from youtube_transcript_api import YouTubeTranscriptApi
4
- from fastapi import FastAPI, Request
5
- from fastapi.responses import JSONResponse
6
- import uvicorn
7
-
8
- # Initialize Streamlit app
9
- st.title("YouTube Video Transcription Summarizer")
10
- video_url = st.text_input("Enter YouTube Video URL:")
11
-
12
- # Initialize FastAPI app
13
- app = FastAPI()
14
 
15
  # Load BART model and tokenizer
16
  model_name = 'facebook/bart-large-cnn'
17
  tokenizer = BartTokenizer.from_pretrained(model_name)
18
  model = BartForConditionalGeneration.from_pretrained(model_name)
19
 
20
- # Function to fetch transcript from YouTube URL
21
  @st.cache
22
  def get_transcript(url):
23
  try:
@@ -28,9 +17,8 @@ def get_transcript(url):
28
  transcript_text += item['text'] + "\n"
29
  return transcript_text
30
  except Exception as e:
31
- return None
32
 
33
- # Function to summarize transcript
34
  @st.cache
35
  def summarize_transcript(transcript):
36
  input_ids = tokenizer.encode("summarize: " + transcript, return_tensors="pt", max_length=1024, truncation=True)
@@ -38,18 +26,19 @@ def summarize_transcript(transcript):
38
  summary = tokenizer.decode(summary_ids[0], skip_special_tokens=True)
39
  return summary
40
 
41
- # API endpoint to summarize transcript
42
- @app.post("/summarize_transcript")
43
- async def summarize_transcript_api(request: Request):
44
- data = await request.json()
45
- video_url = data.get('video_url')
46
- transcript = get_transcript(video_url)
47
- if transcript:
48
- summary = summarize_transcript(transcript)
49
- return JSONResponse(content={"summary": summary})
50
- else:
51
- return JSONResponse(content={"error": "Error fetching transcript."}, status_code=400)
 
 
52
 
53
- # Run Streamlit app
54
  if __name__ == "__main__":
55
- uvicorn.run(app, host="0.0.0.0", port=8000)
 
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:
 
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)
 
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()