Local-first, full‑stack app that converts YouTube videos into transcripts and smart summaries using self‑hosted models optimized for Apple Silicon.
This monorepo contains:
backend/: FastAPI service for video processing, transcription (Whisper), and summarization (DistilBART)study-synapse/: React + TypeScript + Vite frontend (port 8080)
Helpful docs:
- Python 3.11
- Node.js 20.x and npm
- ffmpeg installed on your system (e.g.,
brew install ffmpegon macOS)
- Install dependencies and activate venv
cd backend python3 -m venv venv source venv/bin/activate pip install -r requirements.txt
- Configure environment (optional)
- Create
backend/.envif you want to override defaults (seeLOCAL_MODEL_GUIDE.md)
- Create
- Run the server (uses
backend/run_server.sh)./run_server.sh
- Access
- API:
http://localhost:8000 - Docs:
http://localhost:8000/docs - Health:
http://localhost:8000/api/health
- API:
Key backend files:
backend/app/main.py— FastAPI app and CORSbackend/app/api/video_processing.py— Processing endpointsbackend/app/models/model_manager.py— Whisper + DistilBARTbackend/app/services/youtube_service.py— YouTube download/extractbackend/app/database/database.py— SQLite models and ops
- Install dependencies
cd study-synapse npm i - Configure environment (Supabase + API URL)
Create
study-synapse/.env:VITE_SUPABASE_URL=your_supabase_url VITE_SUPABASE_ANON_KEY=your_supabase_anon_key VITE_API_BASE_URL=http://localhost:8000/api
- Start the dev server
npm run dev
- Access the app
- Frontend:
http://localhost:8080/
- Frontend:
See study-synapse/src/services/api.ts for the API base URL usage.
- Frontend:
http://localhost:8080/ - Backend:
http://localhost:8000/ - Backend API:
http://localhost:8000/api/
Details in FIXED_PORTS.md.
Backend tests:
cd backend
source venv/bin/activate
pytestFrontend lint:
cd study-synapse
npm run lint.
├── backend/
│ ├── app/
│ ├── models/
│ ├── temp/
│ ├── requirements.txt
│ ├── run_server.sh
│ └── venv/
├── study-synapse/
│ ├── src/
│ ├── public/
│ ├── package.json
│ └── vite.config.ts
├── PROJECT_ARCHITECTURE.md
├── LOCAL_MODEL_GUIDE.md
└── FIXED_PORTS.md
MIT