Videobeschreibungs-API Dokumentation
Generieren Sie KI-gestützte Titel, Beschreibungen und Tags für jedes Video. Asynchrone Verarbeitung mit Webhook-Zustellung, kostenlose Sandbox zum Testen. Bevorzugen Sie eine Benutzeroberfläche? Verwenden Sie das Descrideo-Webportal zum Hochladen von Videos und Verwalten von Aufgaben.
Bevorzugen Sie eine Benutzeroberfläche? Verwenden Sie unseren Video-Generator zum Hochladen von Videos und Erhalten von Ergebnissen ohne Code zu schreiben.
Schnellstart
Beginnen Sie mit der Descrideo-API in 3 einfachen Schritten. Generieren Sie Ihre erste Videobeschreibung in unter 5 Minuten.
Holen Sie sich Ihren API-Schlüssel
Erstellen Sie ein Konto und erhalten Sie Ihren API-Schlüssel vom Dashboard. Jeder Schlüssel hat das Präfix nxt_.
Erstellen Sie eine Beschreibungsaufgabe
Senden Sie eine Video-URL und geben Sie Ihren Webhook-Endpunkt an, um Ergebnisse zu erhalten.
curl -X POST https://api.descrideo.com/v1/video-descriptions \
-H "X-API-Key: nxt_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"source": {
"type": "direct_url",
"url": "https://example.com/video.mp4"
},
"frames": 20,
"generation_mode": "vision",
"webhook": {
"url": "https://your-app.com/webhooks/video"
},
"client_context": {
"lang": "en",
"output_fields": ["title", "description", "tags"]
}
}'
Empfangen Sie Webhook mit Ergebnissen
Nach Abschluss der Verarbeitung senden wir die Ergebnisse an Ihre Webhook-URL mit HMAC-Signatur.
{
"job_id": "01HXYZ123ABC",
"status": "succeeded",
"result": {
"title": "Mountain Hiking Adventure in Swiss Alps",
"description": "A breathtaking journey through...",
"tags": ["hiking", "mountains", "switzerland", "nature"]
},
"billing": {
"token_cost": 1.23,
"base_cost": 1.0,
"transcription_cost": 0.23,
"franchise_cost": 0.0
},
"meta": {
"generation_mode": "vision_audio",
"transcription": {
"enabled": true,
"status": "completed",
"seconds": 45.5
}
},
"timing_ms": {
"probe": 500,
"audio": 3200,
"frames": 2100,
"ai": 8100,
"webhook": 120
}
}
Authentifizierung
Alle API-Anfragen erfordern Authentifizierung über Bearer-Token im Authorization-Header.
Authorization: Bearer nxt_your_api_key_here
Sicherheit: Geben Sie Ihren API-Schlüssel niemals in clientseitigem Code preis. Führen Sie API-Aufrufe immer von Ihrem Backend-Server aus.
Sandbox-Tests
Testen Sie Ihre Webhook-Integration kostenlos mit unserer Sandbox-Umgebung. Sandbox-Aufgaben simulieren den vollständigen Workflow ohne tatsächliche Videoverarbeitung.
Sandbox-Vorteile
- Kostenloses Tageskontingent - keine Tokens erforderlich
- Echte Webhook-Zustellungen mit HMAC-Signaturen
- Keine Video-URL erforderlich
- Webhook-Wiedergabe zum Debuggen
POST /v1/sandbox/video-descriptions
{
"frames": 10,
"webhook": {
"url": "https://your-app.com/webhooks/video"
},
"client_context": {
"lang": "en",
"output_fields": ["title", "description", "tags"],
"custom_instructions": "Focus on technical details"
}
}
Demo-API (Gateway)
Die Demo-API ermöglicht die Integration mit einem echten asynchronen Workflow mit Webhook-Zustellung vor der Produktion. Verwenden Sie sie zur Validierung des direkten Video-URL-Zugriffs und Webhook-Empfängers.
Limits: 1 Aufgabe/Tag pro Demo-API-Schlüssel, nur frames=10, nur lang=en (andere Sprachen geben 422 zurück). Benutzerdefinierte Anweisungen sind erlaubt.
Endpunkte
POST /api/demo/v1/video-descriptions— Demo-Aufgabe erstellen (nur direkte URL)GET /api/demo/v1/video-descriptions/{job_id}— Status/Ergebnis abrufenPOST /api/demo/v1/video-descriptions/{job_id}/replay-webhook— weitergeleiteten Webhook an Ihren Empfänger wiedergebenGET /api/demo/v1/webhook-secret— Webhook-Secret zur Signaturüberprüfung abrufen
Demo-Aufgabe erstellen (Beispiel)
curl -X POST https://your-portal.com/api/demo/v1/video-descriptions \
-H "X-API-Key: demo_your_demo_api_key" \
-H "Content-Type: application/json" \
-d '{
"source": {
"type": "direct_url",
"url": "https://example.com/video.mp4"
},
"frames": 10,
"webhook": {
"url": "https://your-app.com/webhooks/demo"
},
"client_context": {
"lang": "en",
"output_fields": ["title", "description", "tags"],
"custom_instructions": "Make the description more detailed"
}
}'
Webhook-Signaturen
Die Demo-API leitet Webhooks an Ihre URL weiter und verwendet die gleichen Signatur-Header wie die Haupt-API: X-Nxt-Timestamp und X-Nxt-Signature. Verwenden Sie GET /api/demo/v1/webhook-secret, um das zur Überprüfung verwendete Secret abzurufen.
Beschreibungsaufgabe erstellen
/v1/video-descriptions
Anforderungstext
| Parameter | Type | Required | Description |
|---|---|---|---|
source |
object | Yes | Videoquellen-Konfiguration |
type |
string | * | direct_url oder source_provider |
url |
string | * | Direkte URL zur Videodatei (wenn type=direct_url) |
provider |
object | * | Source-Provider-Endpunkt-Konfiguration (wenn type=source_provider) |
webhook.url |
string | Yes | URL zum Empfangen von Ergebnissen |
client_context.output_fields |
array | No | Zu generierende Felder: Titel, Beschreibung, Tags |
client_context.lang |
string | No | Ausgabesprache (ISO 639-1), Standard: en |
frames |
integer | Yes | Anzahl der zu extrahierenden Frames: 10, 20 oder 30. Erforderlich für Modi vision und vision_audio. Nicht verwendet im Modus audio. |
generation_mode |
string | No | vision (Standard), vision_audio oder audio. Bestimmt den Analysemodus. |
transcription |
object | No | Audio-Transkriptionseinstellungen. Erforderliche Felder hängen von generation_mode ab. |
enabled |
boolean | * | Audio-Transkription aktivieren. Auto-aktiviert für Modi vision_audio/audio. |
segments |
integer | * | Anzahl der zu sampelnden Audio-Segmente: 10, 20 oder 30 |
segment_sec |
number | * | Dauer jedes Segments in Sekunden (5–60) |
client_context.custom_instructions |
string | No | Benutzerdefinierte KI-Anweisungen für Ausgabestil |
Antwort
Gibt 202 Accepted mit Aufgaben-ID zurück.
{
"job_id": "01HXYZ123ABC",
"status": "queued"
}
Aufgabenstatus abrufen
/v1/video-descriptions/{job_id}
Aufgabenstatus abfragen. Nützlich zur Überwachung des Fortschritts, wenn Webhooks nicht geeignet sind.
Aufgabenstatus
queued
Aufgabe wartet auf Verarbeitung
resolving_source
Videozugriff wird aufgelöst
probing
Video-Metadaten werden analysiert
extracting_audio
Audio-Segmente werden extrahiert
transcribing_audio
Audio wird in Text transkribiert
extracting_frames
Video-Frames werden extrahiert
ai_request
KI generiert Beschreibungen
succeeded
Verarbeitung abgeschlossen
failed
Verarbeitung fehlgeschlagen
Webhook-Sicherheit
Alle Webhooks sind mit HMAC-SHA256 signiert. Überprüfen Sie Signaturen, um Authentizität sicherzustellen.
Signatur-Header
X-Nxt-Timestamp: 1707400000
X-Nxt-Signature: sha256=abc123def456...
Überprüfungsbeispiel (Python)
import hmac
import hashlib
def verify_webhook(raw_body: bytes, timestamp: str, signature_header: str, secret: str) -> bool:
# Signature header format: "sha256="
expected_sig = signature_header.removeprefix("sha256=")
message = raw_body + timestamp.encode()
computed = hmac.new(secret.encode(), message, hashlib.sha256).hexdigest()
return hmac.compare_digest(computed, expected_sig)
Tipp: Holen Sie sich Ihr Webhook-Secret von GET /v1/webhook-secret
Source-Provider-Muster
Verwenden Sie für private Videos das Source-Provider-Muster. Ihr Endpunkt fungiert als Zugriffsvermittler und gibt vorsignierte URLs zurück, wenn unsere API das Video abrufen muss.
Ablauf
-
1
Sie senden eine Aufgabe mit
source.provider-Konfiguration - 2 Unsere API ruft Ihren Endpunkt mit signierter Anfrage auf
- 3 Sie überprüfen die Signatur und geben die vorsignierte URL zurück
- 4 Unsere API ruft das Video von der vorsignierten URL ab
Sicherheit: Ihre Videos bleiben privat. Wir greifen nur über temporäre vorsignierte URLs darauf zu, die Sie kontrollieren.
Fehlerbehandlung
Die API gibt Standard-HTTP-Statuscodes mit detaillierten Fehlermeldungen zurück.
| Status | Meaning |
|---|---|
400 |
Fehlerhafte Anfrage - Ungültige Parameter |
401 |
Nicht autorisiert - Ungültiger API-Schlüssel |
402 |
Zahlung erforderlich - Unzureichende Tokens |
404 |
Nicht gefunden - Ressource existiert nicht |
429 |
Ratenbeschränkung - Zu viele Anfragen |
500 |
Interner Fehler - Serverproblem |
Abrechnung & Tokens
Die Basiskosten pro erfolgreicher Aufgabe betragen 1 Token. Audio-Transkription ist ein Add-on, das pro 10 Sekunden gesampletem Audio abgerechnet wird. Die endgültigen Kosten werden im Webhook-Feld billing.token_cost gemeldet.
Prepaid-Modus
Kaufen Sie Token-Bundles im Voraus. Tokens werden bei Aufgabenerstellung reserviert und bei Erfolg erfasst.
Postpaid-Modus
Zahlen Sie am Ende des Abrechnungszyklus. Legen Sie optional monatliche Limits fest, um Ausgaben zu kontrollieren.