Spaces:
Build error
Build error
| import streamlit as st | |
| import http.client | |
| import json | |
| import google.generativeai as genai | |
| import requests | |
| # Configure the Generative AI API | |
| genai.configure(api_key="AIzaSyDiGhxeTJVQoK8jyRge6aaZGg7CrLq0zGk") | |
| # Function to generate summary using Generative AI | |
| def get_gemini_response(prompt): | |
| model = genai.GenerativeModel('gemini-pro') | |
| response = model.generate_content(prompt) | |
| if hasattr(response.candidates[0], "content"): | |
| return response.candidates[0].content | |
| else: | |
| return "Failed to generate summary." | |
| # Streamlit App | |
| st.title("YouTube Video Summarizer") | |
| # Input for YouTube video URL | |
| video_url = st.text_input("Enter YouTube Video URL:") | |
| if st.button("Generate Summary"): | |
| if "youtube.com" in video_url or "youtu.be" in video_url: | |
| # Extract video ID | |
| video_id = video_url.split("v=")[-1].split("&")[0] if "v=" in video_url else video_url.split("/")[-1] | |
| # Fetch transcript | |
| with st.spinner("Fetching transcript..."): | |
| api_url = "https://resumegenie-c0pc.onrender.com/fetch_captions" | |
| try: | |
| response = requests.post(api_url, json={"video_id": video_id}) | |
| if response.status_code == 200: | |
| transcript_data = response.json().get("transcript") | |
| transcript = " ".join([item["text"] for item in transcript_data]) | |
| # Generate summary using Gemini | |
| with st.spinner("Generating summary..."): | |
| summary = get_gemini_response(f"Summarize the following text: {transcript}") | |
| st.subheader("Video Summary") | |
| st.write(summary) | |
| else: | |
| st.error(f"Error: {response.json().get('detail', 'Unknown error')}") | |
| except Exception as e: | |
| st.error(f"Error: {str(e)}") | |
| else: | |
| st.error("Invalid YouTube URL.") | |