Replace sequential browser-based bulk download with server-side zip
generation. When users select "Download All Files" from bulk actions,
the system now creates a single organized .zip file containing all
job assets.
Changes:
- Add POST /jobs/bulk/download endpoint that streams zip to client
- Add BulkDownloadRequest schema for the new endpoint
- Create zip_download.py service with streaming zip generation
- Update frontend to call new endpoint and download single zip file
- Organize files in zip by job title and language subdirectories
Zip structure:
accessible_video_YYYYMMDD_HHMMSS.zip
└── {job_title}/
├── source.mp4
└── {lang}/
├── captions.vtt
├── ad.vtt
├── ad.mp3
├── accessible_video.mp4
└── accessible_captions.vtt
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| __pycache__ | ||
| audit_logger.py | ||
| emailer.py | ||
| ffmpeg_http_service.py | ||
| gcs.py | ||
| gemini.py | ||
| gemini_tts.py | ||
| microsoft_auth.py | ||
| secrets_manager.py | ||
| tts.py | ||
| validation.py | ||
| video_renderer.py | ||
| vtt_retimer.py | ||
| websocket.py | ||
| websocket_publisher.py | ||
| whisper_http_service.py | ||
| whisper_service.py | ||
| zip_download.py | ||