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>
Worker accesses Whisper via Docker DNS (whisper-local:8000) instead
of through the WG tunnel, avoiding 524 timeout on large audio uploads.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Routes Whisper API traffic directly to local Traefik instead of
through the WG tunnel via Cloudflare, avoiding 524 timeouts on
large audio file uploads.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Flipped WG topology to avoid WSL2 UDP port forwarding issues:
- Netcup is now WG server (has public IP, listens on UDP 51820)
- Home WSL2 is WG client (connects outbound, no port forwarding needed)
- Home client NAT masquerades worker traffic through residential IP
- AllowedIPs=0.0.0.0/0 routes all worker internet through tunnel
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
YouTube blocks datacenter IPs. This adds a WireGuard client sidecar
to route worker traffic through a home residential IP tunnel.
- wireguard/ has the WG server config (runs on WSL2 at home)
- Worker uses network_mode: service:wireguard for tunnel routing
- wg-client/ and cookies.txt added to .gitignore (contain secrets)
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>