Transform YouTube videos into beautiful, structured notes with AI-powered analysis and mind mapping.
AutoNoteMind is a modern web application that converts YouTube video content into comprehensive study notes, complete with AI-generated summaries, keyword extraction, and interactive mind maps.
- πΊ YouTube Integration: Extract transcripts from any YouTube video
- π€ AI-Powered Notes: Generate structured notes using GPT-4
- π¨ Multiple Note Styles: Academic, casual, bullet points, or detailed formats
- π Mind Maps: Interactive visual representations of content
- π Export Options: Download as PDF, Markdown, or plain text
- π Smart Summaries: Concise overviews of video content
- π·οΈ Keyword Extraction: Automatic identification of key terms
- π Multi-language Support: Process videos in multiple languages
- β±οΈ Timestamp Navigation: Jump to specific video sections
- πΎ Session Storage: Keep your notes during the session
- π± Responsive Design: Works seamlessly on all devices
- π― Clean UI: Modern, intuitive interface built with React and Tailwind
- Python 3.8+
- Node.js 16+
- OpenAI API key
-
Clone the repository
git clone https://github.com/yourusername/autonotemind.git cd autonotemind -
Set up the backend
cd backend python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -r requirements.txt
-
Set up the frontend
cd ../frontend npm install -
Configure environment variables Create a
.envfile in the backend directory:OPENAI_API_KEY=your_openai_api_key_here CORS_ORIGINS=http://localhost:3000
-
Run the application
Backend (Terminal 1):
cd backend/app uvicorn main:app --reload --port 8000Frontend (Terminal 2):
cd frontend npm start -
Open your browser Navigate to
http://localhost:3000
AutoNoteMind/
βββ frontend/ # React + Tailwind app
β βββ public/
β βββ src/
β β βββ components/
β β β βββ Header.jsx
β β β βββ Footer.jsx
β β β βββ MindMapView.jsx
β β βββ pages/
β β β βββ Home.jsx
β β β βββ Notes.jsx
β β βββ App.jsx
β βββ package.json
β
βββ backend/ # Python FastAPI
β βββ app/
β β βββ main.py # API routes and server
β β βββ gpt_notes.py # AI note generation
β β βββ transcript.py # YouTube transcript extraction
β βββ requirements.txt
β
βββ .vscode/ # VS Code settings
β βββ settings.json
βββ README.md
βββ .gitignore
βββ deploy/ # Deployment configs
POST /extract-transcript
Content-Type: application/json
{
"video_url": "https://www.youtube.com/watch?v=VIDEO_ID",
"language": "en"
}POST /generate-notes
Content-Type: application/json
{
"transcript": "video transcript text...",
"style": "academic"
}POST /available-languages
Content-Type: application/json
{
"video_url": "https://www.youtube.com/watch?v=VIDEO_ID"
}Choose from different note-taking styles:
- Academic: Formal, detailed notes with scholarly language
- Casual: Easy-to-read notes with conversational tone
- Bullet: Concise bullet points and key takeaways
- Detailed: Comprehensive notes with examples and context
- Interactive node-based visualization
- Hierarchical content organization
- Zoom and pan functionality
- Export as image or data
OPENAI_API_KEY=your_openai_api_key
CORS_ORIGINS=http://localhost:3000,https://yourdomain.com
DEBUG=true
LOG_LEVEL=infoREACT_APP_API_URL=http://localhost:8000
REACT_APP_VERSION=1.0.0- FastAPI - Modern web framework
- OpenAI - AI note generation
- youtube-transcript-api - YouTube transcript extraction
- python-multipart - File upload support
- uvicorn - ASGI server
- React 18 - UI framework
- Tailwind CSS - Styling
- Axios - HTTP client
- React Router - Navigation
- Lucide React - Icons
-
Backend: Deploy to Render as a Web Service
- Build Command:
pip install -r requirements.txt - Start Command:
uvicorn app.main:app --host 0.0.0.0 --port $PORT
- Build Command:
-
Frontend: Deploy to Vercel or Netlify
- Build Command:
npm run build - Publish Directory:
build
- Build Command:
# Build and run with Docker Compose
docker-compose up --build# Python (Black)
black backend/app/
# JavaScript (Prettier)
npm run format# Backend tests
cd backend
pytest
# Frontend tests
cd frontend
npm test# Python
flake8 backend/app/
# JavaScript
npm run lint- 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
- User authentication and accounts
- Note history and saved notes
- Export to Notion/Obsidian
- Video timestamp synchronization
- Batch processing for playlists
- Custom AI prompts
- LaTeX equation rendering
- Collaborative note sharing
- Mobile app version
- Offline mode support
1. Transcript not found
- Ensure the video has captions/subtitles enabled
- Try videos with auto-generated captions
- Check if the video is publicly accessible
2. API Rate Limits
- OpenAI API has usage limits
- Implement retry logic with exponential backoff
- Consider using different models for different features
3. Large Video Processing
- Videos longer than 2 hours may hit token limits
- Consider chunking long transcripts
- Implement progress indicators
4. CORS Issues
- Ensure CORS_ORIGINS is properly configured
- Check that frontend and backend URLs match
- Use caching for repeated video processing
- Implement request queuing for multiple simultaneous requests
- Consider using lighter models for real-time features
- Optimize transcript chunking for better AI processing
- Never commit API keys to version control
- Use environment variables for all sensitive data
- Implement rate limiting on API endpoints
- Validate all user inputs
- Use HTTPS in production
For production deployment:
- Database: Add PostgreSQL/MongoDB for user data
- Caching: Implement Redis for session management
- Queue: Use Celery for background processing
- CDN: Serve static assets via CDN
- Monitoring: Add logging and error tracking
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenAI for GPT-4 API
- YouTube Transcript API contributors
- React and FastAPI communities
- Tailwind CSS team
- π§ Email: support@autonotemind.com
- π¬ Discord: Join our community
- π Issues: GitHub Issues
- π Docs: Full Documentation
Made with β€οΈ by the AutoNoteMind team