A modern video generation and search application built with Next.js and FastAPI.
- Framework: Next.js 14 (App Router)
- Styling: Tailwind CSS, Lucide React
- State Management: React Hooks
- Framework: FastAPI (Python)
- AI/LLM: Google Gemini API (
gemini-2.5-flash)- Used for generating video scripts.
- Used for retrieving relevant YouTube video links (replacing traditional scraping).
- Voice Synthesis: ElevenLabs API
- Database: MongoDB + Atlas for semantic search
- Node.js 18+
- Python 3.10+
- Google Gemini API Key
cd backend
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -r requirements.txtCreate a .env file in backend/:
environment=dev
gemini_api_key=YOUR_GEMINI_API_KEY
gemini_model=gemini-2.5-flash
elevenlabs_api_key=YOUR_ELEVENLABS_KEY
elevenlabs_voice_id=YOUR_VOICE_IDStart the server:
./scripts/start_backend.sh
# Server runs at http://localhost:8000cd frontend
npm install
npm run dev
# App runs at http://localhost:3000- Video Search: Generates relevant YouTube video links using Gemini AI matching.
- Script Generation: Creates educational scripts based on search queries.
- Audio Generation: Converts scripts to audio using ElevenLabs.
- Build and run:
docker compose up --build
Frontend: http://localhost:3000