SummarizeMe is a comprehensive AI-powered content summarization application that transforms YouTube videos, websites, and PDF documents into concise, actionable summaries with audio narration capabilities.
- 🎥 YouTube Video Summarization: Extract and summarize video transcripts
- 🌐 Website Content Processing: Summarize articles and web pages
- 📄 PDF Document Analysis: Process and summarize PDF documents
- 🎵 Audio Summaries: Generate spoken summaries using text-to-speech
- 📥 Download Options: Save summaries as text or audio files
- ⚡ Fast Processing: Optimized for quick turnaround times
- 🔒 Secure: Private processing with no data retention
- Python 3.8 or higher
- Required API keys:
- Groq API Key
- LangChain API Key (optional)
- Clone the repository:
git clone https://github.com/bPavan16/SummarizeMe.git
cd SummarizeMe
- Install dependencies:
pip install -r requirements.txt
- Set up environment variables:
cp .env.example .env
# Edit .env with your API keys
- Run the application:
streamlit run src/app.py
SummarizeMe-App/
├── src/
│ ├── __init__.py # Package initialization
│ ├── app.py # Main application entry point
│ ├── app_main.py # Core application logic
│ ├── config.py # Configuration management
│ ├── exceptions.py # Custom exceptions
│ ├── logging_config.py # Logging configuration
│ ├── utils.py # Utility functions and classes
│ ├── ytUtils.py # YouTube processing utilities
│ ├── loaders.py # Document loaders
│ └── ui_components.py # UI components and helpers
├── requirements.txt # Python dependencies
├── .env.example # Environment variables template
└── README.md # This file
Create a .env
file in the root directory:
# Required
LANGCHAIN_API_KEY=your_langchain_api_key_here
GROQ_API_KEY=your_groq_api_key_here
# Optional
proxy_username=your_proxy_username
proxy_password=your_proxy_password
LLM_MODEL=gemma2-9b-it
MAX_TOKENS=6000
AUDIO_LANGUAGE=en
For Streamlit Cloud deployment, add these to your secrets.toml
:
[secrets]
LANGCHAIN_API_KEY = "your_langchain_api_key_here"
GROQ_API_KEY = "your_groq_api_key_here"
- Select "🎥 YouTube Video" mode
- Paste a YouTube video URL
- Wait for processing
- Download your summary and audio
- Select "🌐 Website URL" mode
- Enter a website URL
- Get AI-powered content summary
- Download in your preferred format
- Select "📄 PDF Document" mode
- Upload one or more PDF files
- Receive comprehensive summaries
- Access audio narration
The application follows a modular architecture:
SummarizeMeApp
: Main application orchestratorSummaryGenerator
: Handles AI-powered summarizationAudioGenerator
: Manages text-to-speech conversionDocumentProcessor
: Processes and chunks documentsYouTubeTranscriptExtractor
: Extracts YouTube transcriptsWebsiteLoader
: Loads website contentPDFLoader
: Processes PDF documentsUIComponents
: Reusable UI elements
- Modular Architecture: Separated concerns into distinct classes
- Better Error Handling: Custom exceptions with meaningful messages
- Improved UI/UX: Enhanced user interface with better feedback
- Configuration Management: Centralized configuration handling
- Logging: Comprehensive logging for debugging and monitoring
- Type Safety: Added type hints throughout the codebase
- Documentation: Comprehensive docstrings and comments
# Install development dependencies
pip install -r requirements-dev.txt
# Run tests
pytest tests/
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Streamlit for the amazing web framework
- LangChain for the powerful AI orchestration
- Groq for fast AI inference
- Google Text-to-Speech for audio generation
For support and questions:
- 🐛 Issues: GitHub Issues
- 💬 Discussions: GitHub Discussions
Made with ❤️ by the Pavan
⭐ Star us on GitHub if you find this useful!