Spaces:
Sleeping
Sleeping
import streamlit as st | |
from phi.agent import Agent | |
from phi.tools.youtube_tools import YouTubeTools | |
from phi.model.groq import Groq | |
from dotenv import load_dotenv | |
import os | |
from phi.tools.duckduckgo import DuckDuckGo | |
# Load environment variables | |
load_dotenv() | |
# Access the Groq API key | |
groq_api_key = os.getenv("GROQ_API_KEY") | |
# Initialize the agent (error handling remains) | |
try: | |
agent = Agent( | |
model=Groq(id="llama-3.3-70b-versatile", api_key=groq_api_key), | |
tools=[YouTubeTools(),DuckDuckGo()], | |
show_tool_calls=False, | |
get_video_captions=True, | |
description="You are a YouTube agent. Obtain the captions of a YouTube video, analyze its content and context, provide summaries, conduct web research on similar topics, and answer user questions.", | |
) | |
except Exception as e: | |
st.error(f"Error initializing the agent: {e}") | |
st.stop() | |
st.title("YouTube Video Analyzer") | |
video_url = st.text_input("Enter YouTube Video URL:", "") | |
user_query = st.text_area("Enter your question about the video (optional):", "") | |
if st.button("Analyze"): | |
if video_url: | |
with st.spinner("Analyzing..."): | |
try: | |
if user_query: | |
prompt = f"""Analyze the video for content and context. Provide a detailed summary. Search the internet for similar topics discussed in the uploaded video. | |
Respond to the following query using video insights and supplementary web research: | |
{user_query} | |
Provide a detailed, user-friendly, and actionable response. | |
Video URL: {video_url}""" # Added Video URL for context | |
else: | |
prompt = f"""Analyze the uploaded video for content and context. Provide a detailed summary. Search the internet for similar topics discussed in the uploaded video. | |
Video URL: {video_url}""" # Added Video URL for context | |
output = agent.run(prompt) | |
st.markdown(output.content) | |
except Exception as e: | |
st.error(f"Error generating output: {e}") | |
st.stop() | |
else: | |
st.warning("Please enter a YouTube video URL.") |