An intelligent learning platform that transforms YouTube videos into interactive learning experiences using AI. Built with Streamlit and powered by Google's Gemini AI.
- 🔐 Secure Firebase Authentication
- 🎥 YouTube Video Processing
- 🤖 AI-Powered Content Analysis
- 💬 Interactive Chat Assistant
- 📝 Smart Note-Taking
- 📊 Progress Tracking
- 🎯 Automated Quiz Generation
- 📚 Study Guide Creation
- 🌙 Dark/Light Mode Support
- Python 3.8+
- Firebase Account
- Google Cloud Project
- Google Gemini API Key
- Create a
.env
file in the project root:
# Google API Configuration
GEMINI_API_KEY=your_gemini_api_key
GOOGLE_CLOUD_PROJECT=your_project_id
YOUTUBE_DATA_API="your_api_key"
# Firebase Configuration
FIREBASE_CREDENTIALS_PATH="path_to_credentials"
FIREBASE_API_KEY="your_firebase_api_key"
FIREBASE_AUTH_DOMAIN="your-app.firebaseapp.com"
FIREBASE_PROJECT_ID="your-project-id"
FIREBASE_STORAGE_BUCKET="your-storage-bucket"
-
Configure Firebase:
- Create a Firebase project at Firebase Console
- Enable Authentication (Email/Password)
- Create a Cloud Firestore database
- Download Firebase Admin SDK credentials and save as
firebase-credentials.json
-
Set up Google Cloud:
- Create a project at Google Cloud Console
- Enable the Gemini API
- Enable Youtube Data API
- Create API credentials and get your API key
- Clone the repository:
git clone https://github.com/mrnithesh/Mercurious.ai.git
cd Mercurious.ai
- Create and activate virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Start the Streamlit server:
streamlit run main.py
- Access the application at
http://localhost:8501
- Store sensitive credentials in
.env
file - Never commit
.env
orfirebase-credentials.json
- Implement rate limiting for API calls
- Regular security audits recommended
- Keep dependencies updated
- Process a YouTube Video:
from components.video import VideoHandler
video_handler = VideoHandler()
result = video_handler.process_video("https://youtube.com/watch?v=...")
- Generate Quiz:
from components.quiz import QuizGenerator
quiz_gen = QuizGenerator()
quiz = quiz_gen.generate_quiz(video_content)
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the Apache-2.0 license - see the LICENSE file for details.
- Firebase Authentication: Check Firebase configuration in
.env
- API Rate Limits: Monitor Gemini API usage and implement rate limiting
For any queries or further information, feel free to reach out via LinkedIn or email at mr.nithesh.k@gmail.com.