Spaces:
Sleeping
Sleeping
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.") | |