Initial commit: media-to-text app
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
# Media to Text - Development Rules
|
||||
|
||||
## CRITICAL RULE: Never Upload Full Video Files
|
||||
|
||||
**Status**: MANDATORY - NEVER VIOLATE
|
||||
|
||||
### Rule Definition
|
||||
- **NEVER** allow users to upload full video files (MP4, AVI, MOV, MKV, FLV, WMV, WEBM) to the server
|
||||
- **ALWAYS** extract audio on the browser BEFORE uploading
|
||||
- Only audio files (MP3, WAV, M4A, etc.) should be uploaded to the server
|
||||
|
||||
### Why This Rule Exists
|
||||
1. **Bandwidth Efficiency**: Video files are 10-100x larger than extracted audio
|
||||
2. **User Experience**: Faster uploads = better UX
|
||||
3. **Server Resources**: Reduces server storage and processing load
|
||||
4. **Cost**: Minimizes data transfer costs
|
||||
|
||||
### Implementation Requirements
|
||||
- Browser-side audio extraction is MANDATORY for video files
|
||||
- Use ffmpeg.wasm or equivalent WebAssembly solution
|
||||
- If browser extraction fails, show error message - DO NOT fall back to uploading full video
|
||||
- Server-side extraction is NOT acceptable as a workaround
|
||||
|
||||
### Current Status
|
||||
- ❌ Browser extraction via ffmpeg.wasm: BLOCKED (CORS/CORB issues)
|
||||
- ⚠️ Temporary workaround: Guide users to extract audio locally using ffmpeg CLI
|
||||
- 🔄 TODO: Find working ffmpeg.wasm CDN or alternative solution
|
||||
|
||||
### Acceptable Solutions (In Priority Order)
|
||||
1. ffmpeg.wasm from working CDN (no CORS/CORB issues)
|
||||
2. Local ffmpeg.wasm with complete wasm binaries
|
||||
3. Alternative WebAssembly video processing library
|
||||
4. User-extracted audio files only (with clear instructions)
|
||||
|
||||
### NOT Acceptable
|
||||
- ❌ Uploading full video files to server
|
||||
- ❌ Server-side extraction as primary solution
|
||||
- ❌ Removing this rule without explicit approval
|
||||
|
||||
## RULE: Show Model Download Progress
|
||||
|
||||
**Status**: MANDATORY
|
||||
|
||||
### Rule Definition
|
||||
- **ALWAYS** show download progress when loading Whisper models
|
||||
- Display percentage and/or file size being downloaded
|
||||
- Models can be 150MB-500MB+ and take significant time to download
|
||||
|
||||
### Why This Rule Exists
|
||||
1. **User Experience**: Users need to know the app isn't frozen
|
||||
2. **Transparency**: Large downloads should be visible
|
||||
3. **Expectations**: Users can estimate wait time
|
||||
|
||||
### Implementation Requirements
|
||||
- Use progress callback from transformers.js pipeline
|
||||
- Display progress percentage in status element
|
||||
- Show "Downloading model: X%" or similar message
|
||||
|
||||
Reference in New Issue
Block a user