# Pexels API Quirks (entdeckt 2026-05-13)

## Authentication
- Kein echter API-Key nötig — Demo-Header `Authorization: test` funktioniert
- WICHTIG: Der Demo-Key schlägt NICHT fehl bei Query-Parametern mit `+`, sondern gibt "Unauthorized: Invalid API key" — irreführende Fehlermeldung!

## Query Parameters
- ❌ `?query=nature+landscape` → 401 "Invalid API key"
- ✅ `?query=nature` → HTTP 200
- Ursache: Pexels interpretiert `+` nicht als URL-encodiertes Leerzeichen trotz korrektem Encoding — Workaround: NUR Einzelwörter, keine Kombinationen

## Clip Properties
- Viele Clips sind VERTIKAL (1080×1920, 9:16) — für YouTube horizontal (1280×720, 16:9) muss scale+pad angewendet werden
- Duration: 5–35 Sekunden typisch
- Codec: unterschiedlich (h264, hevc, mjpeg) — Normalisierung vor Concat nötig
- Framerates: 23.976, 24, 25, 29.97, 30, 59.94, 60 fps

## Rate Limiting
- Kein dokumentiertes Rate-Limit mit Demo-Key
- Empirisch: 0.3s Delay zwischen Requests reicht
- 18 Queries × 10 Clips = 180 Clips ≈ 60–180 Sekunden Download-Zeit
- Download scheitert manchmal still (0-Byte-Files) → immer Filesize > 1000 checken

## Video File Selection
- `video_files` Array enthält multiple Qualitäten
- Beste Auswahl-Strategie: `abs(w-1280)+abs(h-720)` minimieren (nächstgelegen zu 720p)
- Fallback: letztes File im Array wenn kein Match

## Fallback bei Totalausfall
- Wenn 0 Clips: schwarzes Blank-Video mit ffmpeg lavfi generieren
- ffmpeg: `-f lavfi -i "color=black:s=1280x720:d={target}:r=30"`
