-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.py
More file actions
49 lines (35 loc) · 1.52 KB
/
app.py
File metadata and controls
49 lines (35 loc) · 1.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
from youtube_transcript_api import YouTubeTranscriptApi
import streamlit as st
from dotenv import load_dotenv
import google.generativeai as genai
import os
load_dotenv()
genai.configure(api_key = os.getenv('GOOGLE_API_KEY'))
prompt = """You are a Youtube Video Summarizer. You will be taking transcript text
and summarizing the entire video and providing the important summary in points within 400 words.
Please provide the summary of the text given here: """
def extract_transcript_details(youtube_video_url):
try:
video_id = youtube_video_url.split("=")[1]
transcript_text = YouTubeTranscriptApi.get_transcript(video_id)
transcript = ""
for i in transcript_text:
transcript += " " + i['text']
return transcript
except Exception as e:
raise e
def generate_gemini_content(transcript_text, prompt):
model = genai.GenerativeModel("gemini-pro")
response = model.generate_content(prompt + transcript_text)
return response.text
st.title("Youtube Transcript to Detailed Notes Converter")
youtube_link = st.text_input("Enter Youtube Video Link: ")
if youtube_link:
video_id = youtube_link.split('=')[1]
st.image(f"http://img.youtube.com/vi/{video_id}/0.jpg", use_column_width = True)
if st.button("Get Detailed Notes"):
transcript_text = extract_transcript_details(youtube_link)
if transcript_text:
summary = generate_gemini_content(transcript_text, prompt)
st.markdown("## Detailed Notes: ")
st.write(summary)