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