Turn a YouTube link or uploaded video into a transcript plus concise bullet notes using Gemini. The UI streams progress updates while the server uploads, processes, and summarizes your video.
- Paste a YouTube URL or upload a local video file (.mp4, .mov, .webm).
- Live status updates while Gemini processes the request.
- Transcript + bullet summary output.
- Size guardrails (uploads up to 2 GB).
- Next.js App Router + React 19
- Tailwind CSS v4
- Google Gemini via
@google/genai
- Node.js 18+ (20+ recommended)
- A Gemini API key
- Install dependencies:
npm install- Create
.envin the project root:
GEMINI_API_KEY=your_key_here- Start the dev server:
npm run devOpen http://localhost:3000 to use the app.
- The UI submits a
multipart/form-datarequest tosrc/app/api/process/route.ts. - The server streams NDJSON status events until the transcript + notes are ready.
- Uploaded files are sent to Gemini Files and then attached to the generation request.
src/app/page.tsx: main UIsrc/app/api/process/route.ts: streaming transcription APIsrc/lib/gemini.ts: Gemini client + prompt logic
- YouTube URLs are validated for basic http(s) formatting; access depends on Gemini.
- The app reports estimated cost as
0.0today (no pricing integration yet).