File size: 1,491 Bytes
d1bbbeb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from youtube_transcript_api import YouTubeTranscriptApi
import google.generativeai as genai
import os
import streamlit as st
from dotenv import load_dotenv

load_dotenv()

genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
model = genai.GenerativeModel("gemini-pro")
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 predict_result(transcript_text):
    result = model.generate_content(prompt + transcript_text)
    return result.text

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
    
st.title("Youtube Video Transcript Summarizer")
video_url = st.text_input("Enter Youtube Video Link: ")

if video_url:
    video_id = video_url.split("=")[1]
    st.image(f"http://img.youtube.com/vi/{video_id}/0.jpg", use_column_width=True)
    
if st.button("Get Video Notes"):
    transcript_text = extract_transcript_details(video_url)
    
    if transcript_text:
        summary = predict_result(transcript_text=transcript_text)
        st.markdown("## Video Notes:")
        st.write(summary)