# PRD: Personal Video Caption Studio ## Next.js App (Private Use) ### Version: 1.0 | Date: July 5, 2026 --- ## 1. WHAT THIS IS A personal web app that burns animated, word-by-word captions onto videos. You upload a video + text (or SRT), style the captions, preview, and download the result. **Inspiration**: The viral TikTok/Reels caption style — bold text, black stroke, bounce animation. --- ## 2. HOW IT WORKS (USER FLOW) ``` Upload Video ──► Paste Text / Upload SRT ──► Style Captions ──► Preview ──► Export MP4 │ │ │ │ │ ▼ ▼ ▼ ▼ ▼ Drag & drop Type or paste Pick font, Play with Download or file picker words manually color, size, captions to disk or import .srt position, burned in animation speed ``` --- ## 3. FEATURES ### 3.1 Must-Have (MVP) | # | Feature | How It Works | |---|---------|-------------| | 1 | **Upload video** | Drag & drop or click. Accept MP4, MOV, WebM. Max 500MB, 5 min. | | 2 | **Add captions** | Textarea: type/paste words. Or upload `.srt` file. | | 3 | **Auto-sync timing** | If no SRT: split text by words, estimate ~200ms per word + pauses. | | 4 | **Style captions** | Font, size, fill color, stroke color, stroke width, shadow. | | 5 | **Position** | Top/center/bottom + fine-tune Y offset. | | 6 | **Preview** | Play video with real-time caption overlay in browser. | | 7 | **Export** | Server-side FFmpeg renders video + captions → MP4 download. | ### 3.2 Nice-to-Have (v2) | # | Feature | Notes | |---|---------|-------| | 8 | **Upload audio** | Separate voiceover track | | 9 | **Auto-transcribe** | Whisper API (OpenAI) — costs money, optional | | 10 | **Timeline editor** | Drag word timings visually | | 11 | **Presets** | Save style combos ("Viral Yellow", "Minimal White", etc.) | | 12 | **Batch export** | Queue multiple videos | --- ## 4. TECH STACK ``` Frontend (Browser) ├── Next.js 15 (App Router) ├── React 19 + TypeScript ├── Tailwind CSS 4 ├── shadcn/ui (components) ├── Framer Motion (caption animations in preview) └── React Player / native