Transcribai is a powerful SaaS tool that transforms lengthy videos from YouTube, Instagram, LinkedIn, and TikTok into concise, actionable insights using AI.
- Multi-Platform Support: Fetch transcripts from YouTube, Instagram, LinkedIn, and TikTok.
- AI-Powered Insights: Uses Groq (Llama 3 70B) to extract key takeaways and summaries.
- Premium UI: Stunning dark-mode interface built with Next.js, Framer Motion, and Tailwind CSS.
- One-Click Downloads: Export insights as professionally styled PDFs or shareable Images.
- Dynamic Adaptation: The interface adapts its colors and icons based on the selected platform.
- Next.js 15 (App Router)
- TypeScript
- Tailwind CSS v4 + Framer Motion
- Lucide React (Icons)
- FastAPI (Python)
- LangChain + Groq (AI Logic)
- YouTube Transcript API
- yt-dlp fallback (caption extraction fallback for cloud-hosted environments)
- xhtml2pdf & PyMuPDF (PDF/Image Generation)
- Node.js & npm
- Python 3.9+
- Groq API Key
-
Clone the repository
git clone https://github.com/USER/Transcribai.git cd Transcribai -
Backend Setup
cd backend pip install -r requirements.txt uvicorn main:app --reload # Backend runs on http://localhost:8000
-
Frontend Setup
cd frontend npm install npm run dev # Frontend runs on http://localhost:3000
-
Environment Variables
- Create a
.envinbackend/and add:GROQ_API_KEY=your_groq_api_key_here # Recommended for production on Render (single proxy URL) TRANSCRIPT_PROXY_URL=http://username:password@proxy-host:port # Or provide separate values # TRANSCRIPT_PROXY_HTTP_URL=http://username:password@proxy-host:port # TRANSCRIPT_PROXY_HTTPS_URL=http://username:password@proxy-host:port # Optional: absolute path to cookies file for yt-dlp fallback (if needed) YTDLP_COOKIES_FILE=/path/to/cookies.txt
- Create a
Some cloud IP ranges are blocked by YouTube for transcript scraping. The backend now tries:
youtube_transcript_api(primary)yt-dlpcaptions fallback (automatic/manual subtitle tracks)
If both fail due to network/IP blocking, use a proxy-enabled setup in production.
Configure two Render web services (backend + frontend) with these values:
- Root Directory:
backend - Build Command:
pip install -r requirements.txt - Start Command:
uvicorn main:app --host 0.0.0.0 --port $PORT - Required Environment Variables:
GROQ_API_KEY=your_groq_api_key
- Recommended Environment Variables (to bypass cloud IP blocks):
TRANSCRIPT_PROXY_URL=http://username:password@proxy-host:port- or both
TRANSCRIPT_PROXY_HTTP_URL=...andTRANSCRIPT_PROXY_HTTPS_URL=... - or (recommended to avoid encoding/auth issues):
TRANSCRIPT_PROXY_HOST=pr.oxylabs.ioTRANSCRIPT_PROXY_PORT=7777TRANSCRIPT_PROXY_USERNAME=<proxy_username>TRANSCRIPT_PROXY_PASSWORD=<proxy_password>
- Optional Environment Variables:
YTDLP_COOKIES_FILE=/opt/render/project/src/backend/cookies.txt
- Root Directory:
frontend - Build Command:
npm ci && npm run build - Start Command:
npm run start -- -p $PORT - Required Environment Variables:
NEXT_PUBLIC_API_BASE_URL=https://<your-backend-service>.onrender.com/api
- Frontend now reads API URL from
NEXT_PUBLIC_API_BASE_URLinstead of hardcoded localhost. - Backend uses
GROQ_API_KEYfrom environment. - Uvicorn binds correctly to Render's dynamic port via
$PORT.
POST /api/transcript- Fetch transcript from URLPOST /api/generate- Generate insights from transcriptPOST /api/download- Download insight as PDF/Image
Contributions are welcome! Please fork the repo and submit a PR.
MIT License © 2026 Transcribai