Kling Professional Video

Professionelle Videogenerierung mit fortschrittlicher Bewegungssteuerung. Modelle von v1 bis v2.1 mit Standard- und Pro-Modus.

✓ Bis zu 10-Sekunden-Videos

✓ Pro- und Standard-Modus

✓ Kamerasteuerung

✓ 1080p Auflösung

Authentifizierung

Um über die Doitong-API auf Kling zuzugreifen, verwenden Sie Ihren Doitong-API-Schlüssel. Fügen Sie diesen in die GraphQL-Mutation oder die REST-API-Header ein.

Wichtig: Halten Sie Ihren Doitong-API-Schlüssel geheim und betten Sie ihn niemals in clientseitigen Code ein. Führen Sie API-Aufrufe immer über Ihren Backend-Server aus.
// GraphQL Header
{
  "Authorization": "Bearer YOUR_API_KEY"
}

// REST Header
"X-API-Key": "YOUR_API_KEY"

Schnellstart

Starten Sie mit Kling API in nur wenigen Minuten. Folgen Sie diesen einfachen Schritten, um Ihre erste text to video zu erstellen.

Schritt 1: API-Schlüssel erhalten

Registrieren Sie sich für ein Doitong-Konto und navigieren Sie zu Ihrem Dashboard, um einen API-Schlüssel zu generieren.

Schritt 2: Die erste Anfrage senden

Nutzen Sie eines der untenstehenden Code-Beispiele für Ihren ersten API-Aufruf.

curl -X POST https://api.doitong.com/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Idempotency-Key: unique-request-id-123" \
  -d '{
    "query": "mutation Generate($input: GenerateInput!) { generate(input: $input) { id status type provider url metadata creditCost } }",
    "variables": {
      "input": {
        "type": "VIDEO",
        "provider": "kling",
        "input": {
          "text": "A serene landscape with mountains and a lake at sunset"
        },
        "options": {
          "duration": 5,
          "aspectRatio": "16:9"
        }
      }
    }
  }'
const response = await fetch('https://api.doitong.com/graphql', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY',
    'Idempotency-Key': 'unique-request-id-123'
  },
  body: JSON.stringify({
    query: `
      mutation Generate($input: GenerateInput!) {
        generate(input: $input) {
          id
          status
          type
          provider
          url
          metadata
          creditCost
        }
      }
    `,
    variables: {
      input: {
        type: 'VIDEO',
        provider: 'kling',
        input: {
          text: 'A serene landscape with mountains and a lake at sunset'
        },
        options: {
          duration: 5,
          aspectRatio: '16:9'
        }
      }
    }
  })
});

const data = await response.json();
console.log('Result:', data.data.generate);
import requests
import json

url = "https://api.doitong.com/graphql"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_API_KEY"
}

query = """
mutation Generate($input: GenerateInput!) {
  generate(input: $input) {
    id
    status
    type
    provider
    url
    metadata
    creditCost
  }
}
"""

variables = {
    "input": {
        "type": "VIDEO",
        "provider": "kling",
        "input": {
            "text": "A serene landscape with mountains and a lake at sunset"
        },
        "options": {
            "duration": 5,
            "aspectRatio": "16:9"
        }
    }
}

response = requests.post(url, json={
    "query": query,
    "variables": variables
}, headers=headers)

data = response.json()
print("Result:", data["data"]["generate"])
mutation Generate($input: GenerateInput!) {
  generate(input: $input) {
    id
    status
    type
    provider
    url
    metadata
    creditCost
    createdAt
  }
}

# Variables
{
  "input": {
    "type": "VIDEO",
    "provider": "kling",
    "input": {
      "text": "A serene landscape with mountains and a lake at sunset"
    },
    "options": {
      "duration": 5,
      "aspectRatio": "16:9",
      "version": "2.1-master",
      "quality": "high"
    }
  }
}

Preise

Kling API nutzt ein Credit-basiertes Preismodell. Credits werden basierend auf der Komplexität und Dauer der generierten Inhalte verbraucht.

Funktion Credits Beschreibung
Standard-Modus 100-200 Credits 5–10 Sekunden Video in Standardqualität
Pro-Modus 300-500 Credits 5–10 Sekunden Video in Profiqualität

API-Endpunkte

Kling API ist über unseren einheitlichen GraphQL-Endpunkt verfügbar.

GraphQL-Endpunkt

POST https://api.doitong.com/graphql

REST-Endpunkt

POST https://api.doitong.com/v1/text_to_video

Parameter

Verfügbare Parameter für Kling API-Anfragen:

Parameter Typ Erforderlich Beschreibung
service String Yes Service-Identifikator: "kling"
prompt String Yes Textbeschreibung dessen, was generiert werden soll
duration Integer No Videodauer in Sekunden (Standard: 5)
aspectRatio String No Seitenverhältnis: "16:9", "9:16", "1:1" (Standard: "16:9")
version String No Model version: "1.0", "1.5", "1.6", "2.0", "2.1", "2.1-master"
webhookUrl String No URL für Benachrichtigungen bei Fertigstellung

Antwortformat

Alle API-Antworten folgen einem einheitlichen Format:

Erfolgreiche Antwort

{
  "data": {
    "generatevideo": {
      "id": "abc123xyz",
      "status": "processing",
      "url": null,
      "webhookUrl": "https://your-webhook.com/callback",
      "createdAt": "2024-01-01T00:00:00Z"
    }
  }
}

Abgeschlossene Antwort

{
  "data": {
    "generatevideo": {
      "id": "abc123xyz",
      "status": "completed",
      "url": "https://cdn.doitong.com/outputs/abc123xyz.mp4",
      "duration": 5,
      "createdAt": "2024-01-01T00:00:00Z"
    }
  }
}

Fehlerbehandlung

Die API verwendet Standard-HTTP-Statuscodes und gibt detaillierte Fehlermeldungen zurück.

Häufige Fehlercodes

Statuscode Fehlertyp Beschreibung
400 Bad Request Invalid parameters or malformed request
401 Unauthorized Missing or invalid API key
402 Payment Required Insufficient credits
429 Too Many Requests Rate limit exceeded
500 Internal Server Error Server error, please retry

Fehler-Antwortformat

{
  "errors": [
    {
      "message": "Insufficient credits for this operation",
      "extensions": {
        "code": "INSUFFICIENT_CREDITS",
        "creditsRequired": 100,
        "creditsAvailable": 50
      }
    }
  ]
}

Webhooks

Erhalten Sie Echtzeit-Benachrichtigungen, sobald die Erstellung Ihrer text to video abgeschlossen ist.

Webhooks einrichten

Include a <code>webhookUrl</code> parameter in your request to receive a POST notification when processing is complete.

Webhook-Payload

{
  "id": "abc123xyz",
  "status": "completed",
  "url": "https://cdn.doitong.com/outputs/abc123xyz.mp4",
  "service": "kling",
  "createdAt": "2024-01-01T00:00:00Z",
  "completedAt": "2024-01-01T00:01:00Z",
  "metadata": {
    "duration": 5,
    "width": 1920,
    "height": 1080
  }
}

Webhook-Sicherheit

Alle Webhook-Anfragen enthalten einen Signatur-Header zur Verifizierung:

X-Doitong-Signature: sha256=abc123...

Rate Limits

Um eine faire Nutzung und Systemstabilität zu gewährleisten, gelten die folgenden Limits:

Tarif Anfragen/Minute Gleichzeitige Jobs Tageslimit
Kostenlos 10 1 100
Starter 30 3 1,000
Pro 60 10 10,000
Enterprise Individuell Individuell Unbegrenzt
Rate-Limit-Header: Prüfen Sie die Response-Header für den aktuellen Limit-Status:
  • X-RateLimit-Limit: Maximum requests per window
  • X-RateLimit-Remaining: Requests remaining
  • X-RateLimit-Reset: Window reset timestamp

Best Practices

1. Prompts optimieren

Schreiben Sie klare, beschreibende Prompts für beste Ergebnisse:

  • Be specific about visual elements, style, and mood
  • Include details about lighting, camera angles, and composition
  • Avoid contradictory or impossible requests

2. Asynchrone Verarbeitung handhaben

Die Generierung erfolgt asynchron. Implementieren Sie entsprechendes Polling oder Webhooks:

// Polling example
async function pollStatus(jobId) {
  let status = 'processing';
  while (status === 'processing') {
    await sleep(2000); // Wait 2 seconds
    const result = await checkJobStatus(jobId);
    status = result.status;
  }
  return result;
}

3. Fehlerbehebung

Implementieren Sie eine Retry-Logik mit exponentiellem Backoff:

async function retryWithBackoff(fn, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    try {
      return await fn();
    } catch (error) {
      if (i === maxRetries - 1) throw error;
      await sleep(Math.pow(2, i) * 1000);
    }
  }
}

4. Credit-Verbrauch überwachen

Verfolgen Sie Ihren Credit-Verbrauch, um Unterbrechungen zu vermeiden:

  • Check credit balance before large batch operations
  • Set up alerts for low credit thresholds
  • Implement credit-aware request queuing

Bereit loszulegen?

Schließen Sie sich tausenden Entwicklern an, die Kling API nutzen, um großartige Inhalte zu erstellen

API-Schlüssel jetzt anfordern Preise ansehen