- Add Python entrypoint.sh for Infisical secret injection
- Both backend and worker fetch DATABASE_URL, OPENAI_API_KEY from Infisical
- Worker uses network_mode:service:wireguard (shares traefik-public via WG)
- Keep env_file for non-secret config vars
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The AI model was interpreting MM:SS timestamps (e.g., 38:07) as decimal
seconds (38.07s) instead of 2287s, causing clips from long videos to have
near-zero durations. Switching to raw seconds (e.g., [2287.0s - 2295.0s])
eliminates the ambiguity.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Gemini sometimes produces JSON with unescaped characters that break
standard parsing. Added multiple fallback strategies including regex
extraction of individual clip objects.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
4K downloads are 229MB+ and too slow through the WG tunnel.
720p is sufficient quality for clip analysis and extraction.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
CPU-based Ollama inference on Netcup is too slow due to server memory
pressure. Add OpenAI-compatible API support so we can use Gemini Flash
or other cloud APIs for clip analysis. Also increase transcript sample
size to 20K chars since cloud APIs handle it easily.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
47-minute videos produce ~48K chars of transcript which takes
>10 minutes for llama3.1:8b on CPU to process.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Try multiple YouTube player clients for better compatibility
- Show user-friendly error suggesting upload when YouTube blocks download
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replaces API endpoint listing with a proper UI:
- YouTube URL input or drag-and-drop video upload
- Real-time SSE progress bar with stage messages
- Clip results gallery with virality scores, categories, transcripts
- Preview/download links for extracted clips
- Recent jobs history with click-to-view
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>