TL;DR Über CometAPI können Sie unterstützte Kling-Videomodelle mit einem CometAPI-Konto und API-Schlüssel ansprechen, ohne einen separaten Kling-Entwickler-Onboarding-Prozess abzuschließen. Die aktuelle Text-zu-Video-Route ist POST /kling/v1/videos/text2video. Sie liefert eine Task-ID zurück, die Ihr Backend abfragt, bis die Task den Status succeed oder failed erreicht. Modellverfügbarkeit, Parameter, Preise und Kontoberechtigungen können sich ändern; prüfen Sie daher vor dem Produktionseinsatz den aktuellen Modellkatalog und die API-Dokumentation.
Direkte Antwort
Der praktikable Weg ist der Kling-Modellkatalog von CometAPI. Wenn das benötigte Kling-Modell für Ihr CometAPI-Konto verfügbar ist, kann Ihr Server sich mit einem CometAPI-API-Schlüssel authentifizieren und den jeweiligen Kling-kompatiblen Endpunkt aufrufen. Für diesen Weg ist eine separate Kling-API-Anwendung nicht Teil der Integrationsschritte.
Diese Unterscheidung ist für Teams relevant, die CometAPI bereits für andere Modelle nutzen. Die Anwendung behält eine zentrale Stelle für das Berechtigungsmanagement und eine Anbieterbeziehung bei, während ein Kling-Video-Workflow hinzugefügt wird. Ihr Code muss dennoch das videospezifische Anfrageschema und den asynchronen Aufgabenlebenszyklus von Kling verwenden; „ein API-Schlüssel“ bedeutet nicht, dass alle Anbieter identische Request-Bodys teilen.
Dieser Artikel konzentriert sich auf Text-zu-Video, weil es die kleinste sinnvolle Integration ist. CometAPI dokumentiert auch Bild-zu-Video und weitere Kling-Workflows, doch jeder hat eigenen Endpunkt und Parametergrenzen. Starten Sie mit einem verifizierten Pfad und fügen Sie Fähigkeiten erst hinzu, nachdem Sie die aktuelle Dokumentation geprüft haben.
Warum dieser Weg für ein Entwicklungsteam nützlich sein kann
Der unmittelbare Nutzen ist operativ, nicht „magisch“. Ein Team, das CometAPI bereits verwendet, kann einen verfügbaren Kling-Workflow hinzufügen, ohne eine weitere direkte Anbieterintegration aufzubauen, weitere Zugangsdaten zu verteilen oder einen separaten Account-Management-Prozess zu erstellen. Das kann die Anzahl geheimer Daten, Abrechnungsbeziehungen und anbieterspezifischer Client-Konfigurationen verringern, die Ihre Plattform verwalten muss.
Der zweite Vorteil ist architektonisch. Ihre Anwendung kann einen kleinen internen Vertrag für Videogenerierung bereitstellen – Prompt, Workflow, Modell, Optionen und Job-Status – während ein Provider-Adapter diesen Vertrag in die dokumentierte Kling-Anfrage übersetzt. Bewertet das Team später ein anderes Videomodell, kann das produktseitige Jobmodell stabil bleiben, auch wenn Endpunktpfade, Parameter und Ausgabemetadaten abweichen.
Die Einschränkung ist ebenso wichtig: Eine konsolidierte Zugriffsschicht macht die zugrunde liegenden Modelle nicht austauschbar. Prompt-Verhalten, akzeptierte Medien, Latenz, Preise, Sicherheitsrichtlinien und Ergebnisschemata können variieren. Halten Sie diese Unterschiede in Konfiguration und Tests sichtbar, statt sie hinter nicht unterstützten Annahmen zu verbergen.
Was sich durch diesen Zugangsweg ändert – und was nicht
Was sich ändert. Sie erstellen und verwalten einen CometAPI-Schlüssel, senden Anfragen an die Kling-kompatible API von CometAPI und verfolgen die Nutzung auf CometAPI-Seite. Das entfernt einen separaten direkten Kling-Onboarding-Schritt aus diesem speziellen Zugriffsweg.
Was sich nicht ändert. Kling bleibt die zugrunde liegende Modellfamilie. Anbieterspezifische Parameter, Generierungsverhalten, Nutzungsregeln, Modellverfügbarkeit und Ausgabecharakteristika sind weiterhin relevant. Die CometAPI-Dokumentation weist zudem darauf hin, dass sich Felder in Anfragen und Antworten je nach Anbieter unterscheiden können – behandeln Sie daher die Live-Endpunktreferenz als Vertrag für Ihre Implementierung.
Was Sie vor einer Entscheidung verifizieren sollten. Bestätigen Sie, dass Ihr Konto auf die benötigte Modell-ID zugreifen kann, prüfen Sie den aktuellen Preis und die Ratenlimits und führen Sie einen kleinen authentifizierten Test aus. Planen Sie keinen Produktionsworkflow auf Basis eines Modellnamens aus einem alten Blogpost oder einem gecachten Beispiel.
Bevor Sie beginnen
Sie benötigen ein CometAPI-Konto, einen auf Ihrem Server gespeicherten API-Schlüssel und ein Backend, das einen asynchronen Job ausführen kann. Bewahren Sie den Schlüssel in einer Umgebungsvariable wie COMETAPI_KEY auf; setzen Sie ihn nicht in Browser- oder Mobile-Client-Code ein.
- Öffnen Sie den Kling-Modellkatalog und bestätigen Sie, dass das Modell, das Sie verwenden möchten, derzeit für Ihr Konto aufgeführt ist.
- Prüfen Sie die aktuelle Kling-Text-zu-Video-API-Referenz. Zum Zeitpunkt der Verifizierung nutzt das dokumentierte Beispiel
kling-v3. - Erstellen Sie im CometAPI-Console einen serverseitigen API-Schlüssel und hinterlegen Sie ihn in Ihrer Laufzeitumgebung.
- Entscheiden Sie, wo Ihr Dienst die Task-ID und das finale Video speichert. Die Generierungsanfrage liefert eine Task zurück, nicht die fertige Videodatei.
Wählen Sie den Kling-Workflow, bevor Sie die Anfrage entwerfen
Starten Sie mit dem Asset, das Ihr Produkt bereits hat. Hat der Nutzer nur ein schriftliches Konzept, ist Text-zu-Video der direkte Weg. Gibt es ein Standbild, das als visueller Anker erhalten bleiben soll, nutzen Sie die separat dokumentierte Bild-zu-Video-Route. Fügen Sie kein Bildfeld in eine Text-zu-Video-Anfrage ein und gehen Sie nicht davon aus, dass die API den Workflow ableitet.
| Workflow | Aktueller Erstellpfad | Verwenden, wenn |
|---|---|---|
| Text to video | POST /kling/v1/videos/text2video | Die Eingabe ist eine schriftliche Szene- oder Bewegungsidee, und es muss kein Quellbild erhalten bleiben. |
| Image to video | POST /kling/v1/videos/image2video | Die Eingabe enthält ein Quellbild, das die erzeugte Bewegung und visuelle Identität führen soll. |
Die aktuelle Bild-zu-Video-Referenz akzeptiert eine öffentliche Bild-URL oder einen Base64-Bildstring und liefert eine asynchrone Task zurück. Speziellere Kling-Workflows haben eigene Seiten und Anfragebeschränkungen. Fügen Sie sie einzeln hinzu – erst wenn Produktanforderung und aktuelle Dokumentation den zusätzlichen Adapter rechtfertigen.
Für einen ersten Produktionsnachweis verwenden Sie einen Workflow, eine verifizierte Modell-ID, eine kurze Dauer und eine kleine Menge repräsentativer Prompts. So isolieren Sie Kontozugriff und Task-Orchestrierung von der subjektiven Ausgabe-Evaluation. Sobald die Pipeline zuverlässig ist, vergleichen Sie Modi oder Modelle mit einem festen Evaluationsset, statt mehrere Variablen im selben Test zu ändern.
Erstellen Sie Ihre erste Kling-Text-zu-Video-Anfrage
Der aktuelle Text-zu-Video-Endpunkt akzeptiert JSON und Bearer-Authentifizierung. Beginnen Sie mit einem kurzen Prompt und der kleinsten unterstützten Dauer. Die folgende Anfrage nutzt nur Felder aus der aktuellen CometAPI-Referenz:
curl https://api.cometapi.com/kling/v1/videos/text2video \
-H "Authorization: Bearer $COMETAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A small ceramic cup on a wooden table, steam rising in soft morning light",
"model_name": "kling-v3",
"mode": "std",
"duration": "5",
"sound": "off"
}'
Eine erfolgreiche Übermittlung gibt ein Objekt mit data.task_id und einem Task-Status zurück. Speichern Sie diese Task-ID in Ihrem Job-Datensatz der Anwendung. Halten Sie die HTTP-Verbindung nicht offen, während das Video gerendert wird.
| Feld | Dokumentierte Werte | Hinweis zur Implementierung |
|---|---|---|
| model_name | Die aktuelle Enum umfasst kling-v3 und frühere Tracks | Bestätigen Sie vor dem Deployment die Live-Enum und Kontoverfügbarkeit. |
| duration | 5 oder 10 | Starten Sie mit 5 Sekunden, um den Workflow zu validieren. |
| aspect_ratio | 16:9, 9:16, 1:1 | Lassen Sie es nur weg, wenn der dokumentierte Standard passt. |
| mode | std oder pro | Die Referenz beschreibt pro als höhere Qualität und höhere Kosten. |
| sound | on oder off | Gilt nur für Modelltracks mit generiertem Audio. |
Behandeln Sie die asynchrone Task sicher
Die Kling-Generierung ist asynchron. Für Text-zu-Video pollen Sie GET /kling/v1/videos/text2video/{task_id}. Laut CometAPI-Taskreferenz kann eine Antwort die Task direkt oder in einem data-Envelope zurückgeben, daher normalisiert das Beispiel beide Formen. Außerdem werden alle nicht-terminalen Zustände als „weiter warten“ behandelt, statt eine feste Liste an Zwischenzuständen anzunehmen.
import os
import time
import requests
API_KEY = os.environ["COMETAPI_KEY"]
BASE_URL = "https://api.cometapi.com/kling/v1/videos/text2video"
HEADERS = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
}
def submit_video(prompt: str) -> str:
response = requests.post(
BASE_URL,
headers=HEADERS,
json={
"prompt": prompt,
"model_name": "kling-v3",
"mode": "std",
"duration": "5",
"sound": "off",
},
timeout=30,
)
response.raise_for_status()
payload = response.json()
return payload["data"]["task_id"]
def wait_for_video(task_id: str, timeout_seconds: int = 600) -> str:
deadline = time.monotonic() + timeout_seconds
poll_url = f"{BASE_URL}/{task_id}"
while time.monotonic() < deadline:
response = requests.get(poll_url, headers=HEADERS, timeout=30)
response.raise_for_status()
payload = response.json()
task = payload.get("data") or payload
status = task.get("task_status")
if status == "succeed":
videos = task.get("task_result", {}).get("videos", [])
if not videos or not videos[0].get("url"):
raise RuntimeError("Task succeeded without a video URL")
return videos[0]["url"]
if status == "failed":
detail = task.get("task_status_msg") or task.get("task_result")
raise RuntimeError(f"Kling task failed: {detail}")
time.sleep(10)
raise TimeoutError(f"Kling task {task_id} exceeded {timeout_seconds}s")
task_id = submit_video(
"A small ceramic cup on a wooden table, steam rising in soft morning light"
)
video_url = wait_for_video(task_id)
print(video_url)
Der finale Erfolgsstring lautet succeed, nicht succeeded. Wenn eine Task abgeschlossen ist, kopieren Sie das generierte Asset in einen Speicher, den Sie kontrollieren, falls Ihr Produkt Aufbewahrung erfordert. Anbieter-Liefer-URLs sollten nicht als permanenter Anwendungsspeicher betrachtet werden.
Für größere Workloads nutzen Sie eine Queue oder Worker statt Polling innerhalb einer Webanfrage. CometAPI dokumentiert auch Callback-URLs für Kling-Tasks. Wenn Sie Webhooks verwenden, authentifizieren und deduplizieren Sie Callback-Ereignisse und behalten Sie ein Polling-Fallback für verpasste Zustellungen bei.
Entwerfen Sie den Job-Lebenszyklus der Anwendung, bevor Sie skalieren
Behandeln Sie die Provider-Task als Teil Ihres eigenen Job-Datensatzes. Speichern Sie eine Job-ID der Anwendung, Workflow, angefordertes Modell, Provider-Task-ID, Abfrage-URL, aktuellen Status, Zeitstempel der Übermittlung, letzte Abfragezeit und Ausgabepfad. So erhalten Support- und Operationsteams genug Kontext, um eine fehlgeschlagene oder langsame Generierung zu untersuchen, ohne rohe Request-Logs durchsuchen zu müssen.
Wiederholen Sie die Erstellung nicht nur, weil der Client keine Antwort erhielt. Der Provider hat die Task möglicherweise bereits erstellt. Persistieren Sie Ihren lokalen Job vor der Übermittlung, speichern Sie die zurückgegebene Task-ID sofort und trennen Sie Erstellung-Retries von Statusabfrage-Retries. Die aktuelle Text-zu-Video-Referenz dokumentiert außerdem external_task_id für Anwendungstracking; bestätigen Sie das Live-Verhalten, bevor Sie es als Deduplizierungsmechanismus verwenden.
const TERMINAL = new Set(["succeed", "failed"]);
function normalizeKlingTask(payload) {
const task = payload?.data ?? payload;
if (!task?.task_id || !task?.task_status) {
throw new Error("Kling response is missing task identity or status");
}
return task;
}
async function refreshVideoJob(job, apiKey) {
const response = await fetch(job.queryUrl, {
headers: { Authorization: `Bearer ${apiKey}` },
});
if (!response.ok) {
throw new Error(`Task query failed with HTTP ${response.status}`);
}
const task = normalizeKlingTask(await response.json());
const outputUrl = task.task_result?.videos?.[0]?.url ?? null;
return {
...job,
providerTaskId: task.task_id,
providerStatus: task.task_status,
terminal: TERMINAL.has(task.task_status),
outputUrl,
failureDetail: task.task_status_msg ?? null,
checkedAt: new Date().toISOString(),
};
}
Dieses Beispiel übersetzt bewusst nicht jeden möglichen Zwischenstatus des Providers in ein Produktversprechen. Ihr Worker hält nicht-terminale Tasks aktiv, behandelt succeed und failed explizit und protokolliert den rohen Provider-Status für das Debugging. Fügen Sie ein separates Anwendungstimeout hinzu, damit eine festhängende Task nicht ewig offen bleibt.
Verwenden Sie Polling als Basis, da die Task-ID abfragbar bleibt. Wenn der gewählte Endpunkt callback_url unterstützt, kann ein Webhook wiederholte Statusanfragen reduzieren, sollte aber nicht Ihr einziges Recovery-Mechanismus werden. Der offizielle Leitfaden zu Polling und Webhooks weist darauf hin, dass Callback-Payloads anbieterabhängig sein können. Speichern Sie das rohe Ereignis, machen Sie die Verarbeitung über die Task-ID idempotent, antworten Sie schnell erfolgreich per HTTP und gleichen Sie den finalen Zustand per Polling ab.
Produktions-Checkliste für Entwicklerteams
- Validieren Sie das Modell zur Laufzeit. Prüfen Sie den aktuellen Katalog und schlagen Sie eindeutig fehl, wenn ein angefordertes Modell nicht verfügbar ist. Substituieren Sie nicht stillschweigend ein anderes Modell, wenn das Ausgabeverhalten relevant ist.
- Trennen Sie Einreichung von Abruf. Speichern Sie die CometAPI-Task-ID, Ihre eigene Job-ID, das gewählte Modell und Zeitstempel, damit Retries keine doppelte Arbeit erzeugen.
- Begrenzen Sie Polling. Verwenden Sie ein Timeout, Exponential-Backoff oder ein angemessenes festes Intervall sowie eine maximale Anzahl an Versuchen. Prüfen Sie CometAPIs Hinweise zu Ratenlimits und Parallelität, bevor Sie die Parallelisierung erhöhen.
- Klassifizieren Sie Fehler. Wiederholen Sie Anfragen nicht bei ungültigen Parametern oder Authentifizierungsfehlern. Wenden Sie Backoff bei wiederholbaren Ratenlimit- und Plattformfehlern an, gemäß dem aktuellen Retry-Leitfaden.
- Schützen Sie Zugangsdaten und Eingaben. Bewahren Sie API-Schlüssel serverseitig auf, protokollieren Sie keine Geheimnisse und bestätigen Sie, dass Nutzer Rechte an Prompts, Bildern oder anderen Quelldaten haben, die sie übermitteln.
- Messen Sie den gesamten Job. Verfolgen Sie Einreichungserfolg, Wartezeit, Generierungszeit, finale Fehlerrate, Timeout-Rate, Erfolgsquote beim Abruf der Ausgabe sowie Kosten nach Modell und Modus.
- Persistieren Sie Ausgaben bewusst. Laden Sie abgeschlossene Assets in Ihren eigenen kontrollierten Speicher, wenn Ihr Produkt dauerhaften Zugriff benötigt, und wenden Sie dann Ihre Aufbewahrungs- und Löschrichtlinie an.
Praktische FAQs
Brauche ich für diesen Weg ein separates Kling-Entwicklerkonto?
Ein separater Kling-Entwickler-Onboarding-Schritt erscheint im CometAPI-Integrationsablauf nicht. Sie verwenden ein CometAPI-Konto und einen API-Schlüssel. Der Zugriff hängt dennoch davon ab, dass das Modell für Ihr CometAPI-Konto und Ihre Region verfügbar ist – prüfen Sie das vor einer Produktionsentscheidung.
Ist die Kling-API vollständig OpenAI-kompatibel?
Nicht für den hier gezeigten Video-Workflow. Er verwendet Kling-spezifische Routen wie /kling/v1/videos/text2video und Kling-spezifische Felder. Sie können die Berechtigung über CometAPI verwalten, aber Ihr Adapter sollte das anbieterspezifische Schema beibehalten.
Welche Kling-Modell-ID sollte ich verwenden?
Die aktuelle CometAPI-Text-zu-Video-Referenz nutzt im ersten lauffähigen Beispiel kling-v3 und listet mehrere frühere Tracks. Verwenden Sie eine Modell-ID aus der Live-Endpoint-Enum und verifizieren Sie, dass sie für Ihr Konto aktiviert ist. Gehen Sie nicht davon aus, dass das neueste Modell überall verfügbar ist.
Warum enthält die erste Antwort kein Video?
Die Videogenerierung läuft als asynchrone Task. Die initiale Antwort liefert eine Task-ID. Pollen Sie die passende Abfrageroute, bis task_status zu succeed oder failed wird, und lesen Sie dann die Ergebnis-Metadaten.
Soll ich pollen oder eine Callback-URL verwenden?
Polling ist für eine erste Integration einfacher. Callbacks reduzieren wiederholte Anfragen in größerem Maßstab, erfordern jedoch einen authentifizierten, idempotenten Empfänger und Recovery-Logik. Viele Produktivsysteme verwenden Callbacks als Hauptpfad und Polling als Fallback.
Kann ich Bild-zu-Video über denselben Endpunkt nutzen?
Nein. CometAPI dokumentiert Bild-zu-Video unter einer separaten Route, /kling/v1/videos/image2video. Befolgen Sie das aktuelle Anfrageschema dieses Endpunkts, statt ein Bildfeld zur Text-zu-Video-Anfrage hinzuzufügen.
Soll ich mit Standard- oder Professional-Modus beginnen?
Verwenden Sie std, um Authentifizierung, Request-Form, Task-Speicherung, Polling und Ausgabeabruf zu validieren. Die aktuelle Referenz beschreibt pro als Modus mit höherer Qualität und höheren Kosten. Evaluieren Sie ihn mit repräsentativen Prompts erst, nachdem der Grundworkflow funktioniert, und vergleichen Sie Ausgabequalität zusammen mit Generierungszeit und tatsächlichen Kosten.
Wie vermeide ich doppelte Generierungen bei Retries?
Erstellen Sie einen Job-Datensatz der Anwendung, bevor Sie die API aufrufen, und speichern Sie die zurückgegebene Provider-Task-ID sofort. Wiederholen Sie Statusabfragen unabhängig von Erstellungsvorgängen. Gehen Sie nicht davon aus, dass das Wiederholen desselben POST idempotent ist. Der Endpunkt dokumentiert derzeit external_task_id fürs Tracking; prüfen Sie die aktuellen Semantiken, bevor Sie es als Deduplizierungsgarantie behandeln.
Fazit
Für ein US-Entwicklungsteam, das Kling-Videogenerierung testen möchte, ohne eine separate direkte Kling-Entwickleranmeldung abzuschließen, bietet CometAPI einen dokumentierten Weg: Verifizieren Sie, dass das benötigte Kling-Modell für das Konto verfügbar ist, authentifizieren Sie sich mit einem CometAPI-Schlüssel, rufen Sie den workflowspezifischen Endpunkt auf und verfolgen Sie die asynchrone Task bis zu einem Endzustand.
Der praktische technische Wert liegt in zentralisiertem Zugriff und einem wiederverwendbaren Jobmodell der Anwendung – nicht in der Annahme, dass sich alle Videoanbieter gleich verhalten. Behalten Sie für jeden Workflow einen schlanken Adapter bei, speichern Sie Task-Identität und Ausgaben gezielt und behalten Sie Polling als Recovery-Pfad, selbst wenn Callbacks aktiviert sind.
Ein sicherer Rollout ist klein und messbar: Validieren Sie ein Modell und einen Workflow, senden Sie kurze, kostengünstige Jobs, erfassen Sie finale Erfolgs- und Fehlerraten, verifizieren Sie den Ausgabeabruf und vergleichen Sie tatsächliche Kosten und Latenz mit Ihren Produktanforderungen. Erweitern Sie erst auf Bild-zu-Video oder zusätzliche Kling-Workflows, nachdem die aktuelle Dokumentation und Ihr Zielkonto geprüft wurden.
