File size: 1,710 Bytes
1d5b91d |
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 50 |
import streamlit as st
from dotenv import load_dotenv
load_dotenv() ## load all the environment variables
import os
from pytube import extract
import google.generativeai as genai
from youtube_transcript_api import YouTubeTranscriptApi
genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
prompt="""You are Youtube video notes maker. You will be taking the transcript text and make detailed notes of the text and provide the notes in points within 250 words. Please provide the notes given here.
"""
## Getting the transcript data from Youtube videos
def extract_transcript_details(youtube_video_url):
try:
video_id=extract.video_id(youtube_video_url)
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 based on Prompt from Google Gemini Pro
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 the Youtube Video Link:")
if youtube_link:
video_id=extract.video_id(youtube_link)
st.image(f"https://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) |