An AI-powered video summarizer built using Streamlit, Google Gemini 2.0 Flash Exp, and Phidata AI Agent. This application enables users to upload videos, analyze their content, and generate insights or summaries in different styles (Executive Summary, Bullet Points, In-depth Narrative). It also features dynamic API key handling, making it flexible and user-friendly.
- Users can choose to:
- Provide their API key during runtime via the app interface.
- Load the API key from a
.envfile in the project directory.
- Provides flexibility for developers and users managing API keys.
- Includes debugging support by displaying the first four characters of the API key being used (optional).
- Users can upload videos in MP4, MOV, or AVI formats.
- The uploaded video is displayed in the app for reference.
- Generate video summaries in three different styles:
- Executive Summary: A concise, single-paragraph overview.
- Bullet Points: Key takeaways in a list format.
- In-depth Narrative: A detailed, contextual summary.
- Users can input custom queries about the video content.
- The AI generates actionable insights based on the video and the user query.
- Built with Streamlit for an intuitive, web-based experience.
- Python 3.8 or higher
- A valid
GOOGLE_API_KEY(can be provided via the app interface or a.envfile). - Required Python libraries (install via
pip):streamlitgoogle-generativeaiphidatapython-dotenv
1. Clone this repository: git clone https://github.com/AdnanSattar/ai-video-summarizer-agent.git cd ai-video-summarizer-agent
2. Install dependencies: pip install -r requirements.txt
3. Add your Google API key to a .env file generate from Google AI Studio
makefile .env
GOOGLE_API_KEY=
4. Run the Streamlit application: streamlit run app.py Access the app in your browser at http://localhost:8501.
File Structure
. ├── app.py # Main application script ├── README.md # Project documentation ├── requirements.txt # Python dependencies ├── .env # API key (not included in the repo)`
Feel free to open an issue or submit a pull request for any enhancements or bug fixes. Contributions are welcome!