rajsecrets0's picture
Update app.py
0218f07 verified
import streamlit as st
from dotenv import load_dotenv
load_dotenv()
import os
import google.generativeai as genai
genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
from youtube_transcript_api import YouTubeTranscriptApi
# getting the transcript data from youtube videos
def extract_transcript_details(youtube_video_url):
try:
video_id =youtube_video_url.split("=")[1]
print(video_id)
transcript_text=YouTubeTranscriptApi.get_transcript(video_id)
transcript =""
for i in transcript_text:
transcript += " " + i["text"]
return transcript
except Exception as e:
raise e
# getting the summary from google gemini
prompt = """
you are a youtube video summariser , you take the transcript text and
summaries the entire video and providing the important summary inpoints within 250 words
the transcript text will be appended here
give the results in points:
"""
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 Video Summariser")
youtube_link = st.text_input("Enter YouTube Video Link")
if youtube_link:
video_id=youtube_link.split("=")[1]
print(video_id)
st.image(f"http://img.youtube.com/vi/{video_id}/0.jpg", use_column_width=True)
if st.button("Get Notes"):
transcript_text = extract_transcript_details(youtube_link)
if transcript_text:
summary=generate_gemini_content(transcript_text, prompt)
st.markdown("## Notes")
st.write(summary)