Video Inspiration Finder 🎯
An intelligent YouTube video recommendation system that learns your preferences to suggest coding videos you'll love. Built with machine learning and featuring a beautiful web dashboard.
🌟 Features
- 🔍 Smart YouTube Search: Automatically finds trending coding videos using configurable search queries
- 🤖 Machine Learning Recommendations: RandomForest model learns your preferences from ratings
- 📊 Beautiful Web Dashboard: YouTube-like interface with AI confidence scores
- 🔒 Privacy First: All data stored locally in SQLite - no external tracking
- ⚡ One-Command Setup: Get started with a single command
- 📱 Responsive Design: Works perfectly on desktop and mobile
- 🎯 Real-time Learning: Model updates instantly as you rate more videos
🚀 Quick Start
Option 1: Web Dashboard (Recommended)
git clone https://github.com/yourusername/video-idea-finder-algorithm.git
cd video-idea-finder-algorithm
./setup.sh
# Select option 1 for Dashboard
Option 2: Command Line Interface
./setup.sh
# Select option 2 for CLI mode
The setup script will:
- Create a Python virtual environment
- Install all dependencies
- Help you configure your YouTube API key
- Launch your preferred interface
📋 Prerequisites
- Python 3.7+
- YouTube Data API v3 Key (free from Google Cloud Console)
⚙️ Configuration
-
Get YouTube API Key:
- Visit Google Cloud Console
- Create a project or select existing one
- Enable YouTube Data API v3
- Create credentials (API key)
-
Set up environment:
# Copy the example environment file cp .env.example .env # Edit .env and add your API key YOUTUBE_API_KEY=your_actual_api_key_here -
Add your search queries:
- Edit
src/youtube/search.pyin theget_coding_search_queries()function - Add search terms relevant to your interests
- Example:
"python machine learning","react tutorial", etc.
- Edit
🏗️ Project Structure
video-idea-finder-algorithm/
├── src/
│ ├── database/ # SQLite database operations
│ │ ├── manager.py # Database setup and schema
│ │ ├── video_operations.py # Video data CRUD
│ │ └── preference_operations.py # User ratings CRUD
│ ├── youtube/ # YouTube API integration
│ │ ├── search.py # Video search functionality
│ │ ├── details.py # Video metadata retrieval
│ │ └── utils.py # Helper functions
│ ├── ml/ # Machine learning pipeline
│ │ ├── feature_extraction.py # Video feature engineering
│ │ ├── model_training.py # ML model management
│ │ └── predictions.py # Recommendation engine
│ └── rating/ # Interactive rating system
│ ├── display.py # Video information display
│ ├── session.py # Rating session management
│ └── user_input.py # User interaction handling
├── templates/ # Web dashboard frontend
│ └── dashboard.html # Single-page application
├── main.py # CLI application entry point
├── dashboard_api.py # Web API server
├── run_dashboard.py # Dashboard launcher
├── search_more_videos.py # Additional video search utility
├── setup.sh # Automated setup script
├── .env.example # Environment template
└── README.md # This file
🧠 How the AI Works
Feature Engineering
The system extracts 11 key features from each video:
- Content Features: Title length, description length, keyword presence
- Engagement Metrics: View count, like ratio, engagement score
- Semantic Analysis: Title sentiment, tutorial/beginner/AI keyword detection
- Behavioral Patterns: Time constraints, challenge keywords
Machine Learning Pipeline
- Data Collection: YouTube API provides video metadata
- Feature Extraction: Convert raw video data into numerical features
- User Feedback: Collect like/dislike ratings with optional notes
- Model Training: RandomForest classifier with 100 trees
- Prediction: Generate confidence scores for new videos
Learning Process
- Cold Start: Shows random videos until you have 10+ ratings
- Warm Start: AI model activates and provides personalized recommendations
- Continuous Learning: Model retrains after each new rating
🖥️ Available Commands
# Full interactive setup
./setup.sh
# CLI-only mode
python main.py
# Web dashboard
python run_dashboard.py
# Search for additional videos
python search_more_videos.py
# Start API server directly
python dashboard_api.py
🎨 Dashboard Features
- YouTube-like Interface: Familiar grid layout with thumbnails
- AI Confidence Scores: See how confident the AI is about each recommendation
- Real-time Feedback: Rate videos with instant visual feedback
- Model Status: Track learning progress and training status
- Liked Videos: Review your previously liked videos
- Responsive Design: Perfect on any screen size
🔧 Customization
Search Queries
Edit the search queries in src/youtube/search.py:
def get_coding_search_queries() -> List[str]:
return [
"python machine learning tutorial",
"javascript react project",
"web development 2024",
# Add your own search terms
]
ML Model Parameters
Modify model settings in src/ml/model_training.py:
model = RandomForestClassifier(
n_estimators=100, # Number of trees
max_depth=10, # Tree depth
min_samples_split=5, # Minimum samples for split
random_state=42
)
🤝 Contributing
We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes and test thoroughly
- Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
Development Setup
# Clone your fork
git clone https://github.com/yourusername/video-idea-finder-algorithm.git
# Create development environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Run tests (if available)
python -m pytest
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- YouTube Data API v3 for video data
- scikit-learn for machine learning capabilities
- Flask for the web framework
- SQLite for local data storage
📚 Learn More
This project demonstrates several key concepts:
- API Integration: YouTube Data API v3 usage
- Machine Learning: Feature engineering and model training
- Web Development: Flask API and responsive frontend
- Database Design: SQLite schema and operations
- DevOps: Environment management and deployment
Perfect for learning about ML-powered recommendation systems!
🐛 Troubleshooting
Common Issues
API Key Issues:
- Ensure your YouTube API key is valid and has quota remaining
- Check that YouTube Data API v3 is enabled in Google Cloud Console
Database Issues:
- Delete
video_inspiration.dbto reset the database - Run
./setup.shagain to reinitialize
Import Errors:
- Activate the virtual environment:
source venv/bin/activate - Reinstall dependencies:
pip install -r requirements.txt
Port Conflicts:
- Dashboard runs on port 5001 by default
- Change the port in
dashboard_api.pyif needed
Need Help?
- 📧 Open an issue on GitHub
- 💬 Check existing issues for solutions
- 🔍 Review the troubleshooting section above
⭐ Found this helpful? Give it a star! ⭐
Built with ❤️ for the coding community