adi-123 commited on
Commit
75558ed
·
verified ·
1 Parent(s): c0ae660

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -6
app.py CHANGED
@@ -1,7 +1,7 @@
1
  import streamlit as st
2
  import os
3
  from together import Together
4
- from youtube_transcript_api import YouTubeTranscriptApi
5
  from datetime import datetime
6
 
7
  # Get API Key
@@ -10,13 +10,20 @@ TOGETHER_API_KEY = os.getenv("TOGETHER_API_KEY")
10
  def extract_transcript(video_id):
11
  """Extracts transcript from a YouTube video."""
12
  try:
13
- transcript_list = YouTubeTranscriptApi.list_transcripts(video_id)
 
14
  transcript = transcript_list.find_transcript(['en'])
15
- if not transcript.is_generated:
16
  transcript = transcript.translate('en')
17
  transcript_segments = transcript.fetch()
18
  full_transcript = ' '.join(segment['text'] for segment in transcript_segments)
19
  return full_transcript
 
 
 
 
 
 
20
  except Exception as e:
21
  return f"Error: {e}"
22
 
@@ -39,7 +46,7 @@ def generate_summary(transcript_text):
39
  Summary:
40
  '''
41
  response = client.chat.completions.create(
42
- model="meta-llama/Llama-3.3-70B-Instruct-Turbo-Free",
43
  messages=[{"role": "user", "content": prompt}]
44
  )
45
  summary = response.choices[0].message.content
@@ -50,11 +57,11 @@ def generate_summary(transcript_text):
50
  def summarize_youtube(video_id):
51
  """Extracts transcript and generates a summary."""
52
  transcript = extract_transcript(video_id)
53
- if "Error" in transcript:
54
  return transcript, None
55
 
56
  summary = generate_summary(transcript)
57
- if "Error" in summary:
58
  return summary, None
59
 
60
  filename = f"{video_id}_summary.txt"
 
1
  import streamlit as st
2
  import os
3
  from together import Together
4
+ from youtube_transcript_api import YouTubeTranscriptApi, TranscriptsDisabled, NoTranscriptFound, VideoUnavailable
5
  from datetime import datetime
6
 
7
  # Get API Key
 
10
  def extract_transcript(video_id):
11
  """Extracts transcript from a YouTube video."""
12
  try:
13
+ ytt_api = YouTubeTranscriptApi()
14
+ transcript_list = ytt_api.list_transcripts(video_id)
15
  transcript = transcript_list.find_transcript(['en'])
16
+ if transcript.is_translatable:
17
  transcript = transcript.translate('en')
18
  transcript_segments = transcript.fetch()
19
  full_transcript = ' '.join(segment['text'] for segment in transcript_segments)
20
  return full_transcript
21
+ except TranscriptsDisabled:
22
+ return "Error: Transcripts are disabled for this video."
23
+ except NoTranscriptFound:
24
+ return "Error: No transcript found for this video."
25
+ except VideoUnavailable:
26
+ return "Error: Video is unavailable."
27
  except Exception as e:
28
  return f"Error: {e}"
29
 
 
46
  Summary:
47
  '''
48
  response = client.chat.completions.create(
49
+ model="meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo",
50
  messages=[{"role": "user", "content": prompt}]
51
  )
52
  summary = response.choices[0].message.content
 
57
  def summarize_youtube(video_id):
58
  """Extracts transcript and generates a summary."""
59
  transcript = extract_transcript(video_id)
60
+ if transcript.startswith("Error"):
61
  return transcript, None
62
 
63
  summary = generate_summary(transcript)
64
+ if summary.startswith("Error"):
65
  return summary, None
66
 
67
  filename = f"{video_id}_summary.txt"