Video-API — REST-Endpoints für programmatische Video-Verwaltung

Video-API

AVCaption liefert eine REST-API zur programmatischen Video-Verwaltung. Verfügbar in Enterprise; Preview-Zugang für Premium auf Anfrage.

Authentifizierung

Zwei Methoden:

Bearer-Token (JWT) — bei Login ausgegeben, als Header Authorization: Bearer <token> gesendet. Wird von Ihren authentifizierten Dashboard-Sessions verwendet.

API-Key — auf der Settings-Seite generiert. Format avc_<64-Hex-Zeichen>. Versand als Header X-API-Key: <key> oder als Query-Parameter ?api_key=<key>. Gut für Server-zu-Server.

Endpoints

GET    /api/v1/videos               Videos auflisten (paginiert, ?page=1)
GET    /api/v1/videos/:id           Video-Metadaten + Embed-Token
POST   /api/v1/upload               Direkt-Upload (kleine Dateien)
POST   /api/v1/upload/init          Chunked-Upload-Session starten
POST   /api/v1/upload/chunk         Einen Chunk hochladen
POST   /api/v1/upload/complete      Chunked-Upload finalisieren
PUT    /api/v1/videos/:id           Title, allowed_domains aktualisieren
DELETE /api/v1/videos/:id           Video löschen
GET    /api/v1/stats                Account-Stats: Anzahl Videos, Views, Speichernutzung
GET    /api/v1/embed/:token         Öffentliche Embed-Metadaten (keine Auth nötig für öffentliche Videos)
POST   /api/v1/videos/:id/subtitles Untertitel-Track hochladen (Enterprise)
GET    /api/v1/presets              Player-Presets auflisten (Enterprise)
POST   /api/v1/presets              Player-Preset anlegen (Enterprise)

Chunked-Upload-Muster

# Schritt 1: init
curl -X POST https://dashboard.avcaption.com/api/v1/upload/init \
  -H "X-API-Key: avc_..." \
  -d '{"filename":"course-lesson-1.mp4","size":1234567890,"title":"Lesson 1"}'
# Liefert: {"upload_id":"abc123","chunk_size":5242880}

# Schritt 2: Chunks hochladen (parallel möglich)
curl -X POST https://dashboard.avcaption.com/api/v1/upload/chunk \
  -H "X-API-Key: avc_..." \
  -H "X-Upload-ID: abc123" \
  -H "X-Chunk-Index: 0" \
  --data-binary @chunk-0.bin
# ...für jeden Chunk wiederholen

# Schritt 3: complete
curl -X POST https://dashboard.avcaption.com/api/v1/upload/complete \
  -H "X-API-Key: avc_..." \
  -d '{"upload_id":"abc123"}'
# Liefert: {"video_id":"...","embed_token":"...","status":"processing"}

Webhook-Events (Enterprise)

Abonnieren Sie Events auf einem beliebigen HTTPS-Endpoint:

  • video.uploaded — Chunked-Upload abgeschlossen
  • video.encoded — Encoding fertig, abspielbereit
  • video.failed — Encoding fehlgeschlagen (mit Fehlerdetails)
  • view.threshold — Zuschauerzahl überschreitet konfigurierten Schwellwert
  • subtitle.translated — Untertitel-Übersetzung abgeschlossen

Webhook-Payload mit HMAC-SHA256 signiert.

Rate-Limits

  • Read-Endpoints (list, get): 300 Req/min pro API-Key
  • Write-Endpoints (update, delete): 60 Req/min
  • Upload-Endpoints: 60 Req/min auf init/complete; die Chunks selbst sind nicht rate-limited
  • Stats: 60 Req/min

Limits skalieren automatisch für Enterprise-Kunden; für individuelle Raten Sales kontaktieren.

Fehlerformat

{
  "error": "menschenlesbare Fehlermeldung",
  "code": "machine_readable_error_code",
  "request_id": "x-request-id-for-support-tickets"
}

Loslegen

REST-API ist in Enterprise enthalten. API-Key im Dashboard unter Settings → API Keys generieren. Enterprise-Konto eröffnen und einen einzelnen Chunked-Upload-Call gegen eine echte Quelldatei laufen lassen, bevor Sie die Bulk-Migration skripten. Häufige API-getriebene Einsätze: LMS-Video-Hosting, Agentur-Kunden-Video, Digitale Produkte.

Häufig gestellte Fragen

Was lässt sich mit der AVCaption Video-API bauen? +
Alles, was programmatische Video-Verwaltung braucht: Ingest-Pipelines aus Ihrem eigenen Backend, automatisierte Migrationen von anderen Plattformen, Upload-Quoten pro Nutzer, eigene Dashboards, serverseitige Embed-Token-Rotation, webhook-getriebene Nachverarbeitung. Die REST-API spiegelt das Dashboard, plus Chunked-Upload und signierte Webhook-Events.
Ist die API rate-limited? +
Ja. Die Standard-Limits sind großzügig für den Produktionsbetrieb (60 Req/min auf den meisten Endpoints, höher auf Read-Endpoints). Harte Limits schützen vor Missbrauch. Enterprise-Kunden können angehobene Limits anfragen.
Unterstützt die API resumable Uploads? +
Ja. Upload-Init liefert eine Upload-Session-ID; Chunks werden einzeln per POST mit Retry-on-Failure übertragen. Sessions bleiben 24 Stunden bestehen, sodass ein Netzwerkabbruch keinen Fortschritt kostet.
Stellt die API Embed-Tokens pro Session aus? +
Ja. POST /api/v1/embed-token mit video_id, viewer_id und expires_in liefert ein frisches Token. Nutzen Sie das in jeder authentifizierten Session Ihrer Anwendung, damit geleakte Iframe-URLs innerhalb des gewählten Fensters ablaufen. Pflichtmuster für bezahlte Kurse, Gated Tutorials und jede Membership-Inhalt.
← content.back_to_index