yourownvibhore's picture
Update app.py
fe50a6b verified
from dotenv import load_dotenv
load_dotenv()
import streamlit as st
import os
import google.generativeai as genai
from PIL import Image
import io
import base64
from youtube_transcript_api import YouTubeTranscriptApi
genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
# load gemini model
prompt="""You are Yotube video summarizer. You will be taking the transcript text
and summarizing the entire video and providing the important summary in points
within 250 words. Please provide the summary of the text given here: """
def get_youtube_transcript(video_url):
try:
video_id = video_url.split("=")[1]
# video_id = video_id.split("&")[0]
print(video_id)
transcript = YouTubeTranscriptApi.get_transcript(video_id)
transcript_text = ""
for i in transcript:
transcript_text += " " + i['text']
return transcript_text
except Exception as e:
raise e
def get_gemini_response(transcript_text,prompt):
model=genai.GenerativeModel("gemini-pro")
response=model.generate_content(prompt+transcript_text)
return response.text
st.title("Youtube Transcript to detailed summary")
st.markdown("This app uses gemini pro to generate a detailed summary of the transcript of a youtube video")
video_url = st.text_input("Enter the youtube video url")
if video_url:
video_id=video_url.split("=")[1]
print(video_id)
st.image(f"https://img.youtube.com/vi/{video_id}/0.jpg",use_column_width=True)
if st.button("Generate Summary"):
transcript_text = get_youtube_transcript(video_url)
if transcript_text:
response = get_gemini_response(transcript_text,prompt)
st.markdown("## Summary:")
st.write(response)