genai / app.py
sunainhav's picture
Create app.py
605c03c verified
Raw
History Blame Contribute Delete
1.39 kB
import os
import gradio as gr
from dotenv import load_dotenv
import google.generativeai as genai
from youtube_transcript_api import YouTubeTranscriptApi
# Load environment variables
load_dotenv()
GEMINI_API_KEY = os.getenv("GEMINI_API_KEY")
genai.configure(api_key=GEMINI_API_KEY)
def get_video_id(url):
video_id = url.split("=")[-1]
if "&" in video_id:
video_id = video_id.split("&")[0]
return video_id
def get_video_transcripts(video_id):
try:
transcription_list = YouTubeTranscriptApi.get_transcript(video_id)
transcription = " ".join([transcript["text"] for transcript in transcription_list])
return transcription
except Exception as e:
return str(e)
def summarize_video(youtube_url):
video_id = get_video_id(youtube_url)
transcriptions = get_video_transcripts(video_id)
# Initialize the gemini-pro model and generate summary here (simplified)
gemini_model = genai.GenerativeModel("gemini-pro")
prompt = f"Summarize the following transcription:\n{transcriptions}"
summary = gemini_model.generate_content(prompt).text
return summary
iface = gr.Interface(fn=summarize_video, inputs="text", outputs="text", title="YouTube Video Summarizer", description="Enter a YouTube URL to get a summary.")
if __name__ == "__main__":
iface.launch(share=True) # Set share=True to get a public link