> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xhuoapi.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Kling Videos Generation API Integrationsinstruktioner

> Kling video generation 集成指南 - XHuoAPI

Den här dokumentationen beskriver hur man integrerar Kling Videos Generation API, vilket gör det möjligt att generera officiella Kling-videor genom att mata in anpassade parametrar.

## Ansökningsprocess

För att använda API:et måste du först ansöka om tjänsten på motsvarande sida för [Kling Videos Generation API](https://api.xhuoapi.ai/documents/3b921a16-a411-4557-8335-53f21d3f9e46). När du är på sidan klickar du på knappen “Acquire”, som visas nedan:

![](https://cdn.xhuoapi.ai/q6ytrc.png)

Om du inte är inloggad eller inte har konto kommer du automatiskt att omdirigeras till inloggningssidan där du kan registrera dig och logga in. Efter inloggning återgår du automatiskt till aktuell sida.

Vid första ansökan tilldelas en gratis kvot, så du kan använda API:et utan kostnad under denna period.

## Grundläggande användning

För att börja använder du enkelt API:et genom att skicka in parametrarna `prompt` (prompt/ledtråd), `action` (genereringshandling), `start_image_url` (referensbild för första ramen) och `model` (modell).

Först måste du ange ett `action`-fält, vars värde är `text2video`, vilket representerar tre huvudsakliga beteenden: text-till-video (`text2video`), bild-till-video (`image2video`) och utökad video (`extend`).

Sedan specificerar du vilken modell du vill använda, med modeller som `kling-v1`, `kling-v1-6`, `kling-v2-master`, `kling-v2-1-master`, `kling-v2-5-turbo`, `kling-v2-6`, `kling-v3`, `kling-v3-omni`, `kling-video-o1` samt andra.

Det huvudsakliga innehållet är som följer:

<p>
  <img src="https://cdn.xhuoapi.ai/ke1bok.png" width="500" className="m-auto" />
</p>

Du kan ställa in request headers inklusive:

* `accept`: angiv vilken svarstyp du önskar, här är det `application/json` (JSON-format).
* `authorization`: API-nyckel för anropet, som kan väljas från dropdown efter ansökan.

Request body innehåller bland annat:

* `model`: vald modell för videoproduktion.
* `mode`: generationsläge, valbart mellan `std` (standard), `pro` (snabb) och `4k` (nativ 4K). Notera att `4k` endast stöds av `kling-v3` och `kling-v3-omni` och är inte kompatibelt med `camera_control`.
* `action`: typen av videogenerering, `text2video`, `image2video` eller `extend`.
* `start_image_url`: URL till referensbild för första ramen, obligatoriskt för `image2video`.
* `end_image_url`: valfri, avslutande bild för `image2video`.
* `duration`: videons längd i sekunder. För `kling-v3` och `kling-v3-omni` kan du ange flexibel längd mellan 3-15 sekunder (heltal), andra modeller stödjer 5 eller 10 sekunder.
* `generate_audio`: om ljud ska genereras samtidigt, valfritt boolean. Endast för `kling-v3`, `kling-v3-omni` och `kling-v2-6` (endast pro). Standard är `false`.
* `aspect_ratio`: bildförhållande, valbart mellan `16:9`, `9:16`, `1:1`, standard är `16:9`.
* `cfg_scale`: relevansfaktor, mellan \[0,1], ju högre desto mer matchande prompten.
* `camera_control`: valfri, styrning av kamerarörelser, stöd för `type/simple` samt `horizontal`, `vertical`, `pan`, `tilt`, `roll`, `zoom`.
* `negative_prompt`: motprompt, önskas undvikas, maximal 200 tecken.
* `element_list`: referenslista för huvudobjekt, gäller endast modellen `kling-video-o1`, se [officiell dokumentation](https://docs.qingque.cn/d/home/eZQAyImcbaS0fz-8ANjXvU5ed?identityId=1oEG9JKKMFv#section=h.5t7wme23nn6z).
* `video_list`: referensvideo, hämtas via URL, endast för `kling-video-o1`, se samma dokument.
* `prompt`: själva ledtråden.
* `callback_url`: URL för att ta emot callback-Resultat.

När du har fyllt i fälten visas kod för exempelvis CURL som genereras till höger, som visar hur du kan testa:

<p>
  <img src="https://cdn.xhuoapi.ai/3yjql0.png" width="500" className="m-auto" />
</p>

Klicka på “Try” för att testa. Resultatet ser ut så här:

```json theme={null}
{
  "success": true,
  "video_id": "af9a1af0-9aa0-4638-81c1-d41d6143c508",
  "video_url": "https://cdn.klingai.com/bs2/upload-kling-api/7485378259/text2video/Cjil4mfBfs0AAAAAAKbMQQ-0_raw_video_1.mp4",
  "duration": "5.1",
  "state": "succeed",
  "task_id": "e3a575aa-a4bd-49c8-9b12-cde38d5462e0"
}
```

Fält i svaret förklaras så här:

* `success`: indikerar om videon genererades framgångsrikt.
* `task_id`: ID för videoproduktionen.
* `video_id`: ID för den genererade videon.
* `video_url`: URL till videon.
* `duration`: längden på videon.
* `state`: status för processen.

Från resultatet kan du enkelt hämta videon via den angivna `video_url`.

För att kopiera exempelvis CURL-koden kan du göra detta:

```shell theme={null}
curl -X POST 'https://api.xhuoapi.ai/v1/kling/videos' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "text2video",
  "model": "kling-v1",
  "prompt": "White ceramic coffee mug on glossy marble countertop with morning window light. Camera slowly rotates 360 degrees around the mug, pausing briefly at the handle."
}'
```

## Modeller och funktioners matriser

Olika modeller har olika stöd för parametrar. Nedan sammanställning är hämtad från [Kling officiell dokumentation för videomodeller](https://app.klingai.com/global/dev/document-api/apiReference/model/videoModels). Kontrollera före användning att kombinationen av `model`, `mode` och `duration` stöder funktionen; annars kan fel som `model/mode/duration(...) is not supported with image_tail` uppstå.

| Modell              | Mode           | `end_image_url` (start/slut-bild) | `generate_audio` (ljud) | `camera_control` (genomförande) | Noteringar                                            |
| ------------------- | -------------- | --------------------------------- | ----------------------- | ------------------------------- | ----------------------------------------------------- |
| `kling-v1`          | std / pro      | ✅ Endast `duration=5`             | ❌                       | ✅ Endast `duration=5`           | `extend` stödjer ej `negative_prompt` och `cfg_scale` |
| `kling-v1-6`        | std            | ❌                                 | ❌                       | ❌                               | Multi-image videoproduktion, `extend` i alla lägen    |
| `kling-v1-6`        | pro            | ✅                                 | ❌                       | ❌                               |                                                       |
| `kling-v2-master`   | —              | ❌                                 | ❌                       | ❌                               | Endast ett läge, endast `duration=5/10`               |
| `kling-v2-1-master` | —              | ❌                                 | ❌                       | ❌                               | Endast ett läge, endast `duration=5/10`               |
| `kling-v2-5-turbo`  | std            | ❌                                 | ❌                       | ❌                               |                                                       |
| `kling-v2-5-turbo`  | pro            | ✅                                 | ❌                       | ❌                               |                                                       |
| `kling-v2-6`        | std            | ❌                                 | ❌                       | ❌                               |                                                       |
| `kling-v2-6`        | pro            | ✅                                 | ✅                       | ❌                               | Den enda icke-v3 modell som stöder ljud samtidigt     |
| `kling-v3`          | std / pro      | ✅                                 | ✅                       | ✅                               | `duration` 3–15 sek.                                  |
| `kling-v3`          | 4k             | ✅                                 | ✅                       | ❌                               | 4K-läge stöder ej genomförande                        |
| `kling-v3-omni`     | std / pro / 4k | ✅                                 | ✅                       | ❌                               |                                                       |
| `kling-video-o1`    | std / pro      | ✅                                 | ❌                       | ❌                               | Endast `duration=5/10`                                |

Viktiga punkter:

* `mode=4k` stöds endast av `kling-v3` och `kling-v3-omni`; samt är inte kompatibelt med `camera_control`.
* `end_image_url` kan endast användas tillsammans med `start_image_url` vid `action=image2video`. Att endast ange `end_image_url` utan `start_image_url` vägras.
* `kling-v3` / `kling-v3-omni` accepterar godtycklig `duration` mellan 3-15 sek, medan andra modeller endast stödjer 5 eller 10 sek.
* `generate_audio` är standard `false`. Stöds endast av `kling-v3`, `kling-v3-omni`, `kling-v2-6` (endast pro).

## Utökad videofunktion (extend)

För att fortsätta generera en redan skapad Kling-video, sätt `action` till `extend` och mata in den video-ID som du hämtar via grundläggande användning.

Video-ID kan hämtas exempelvis så här:

<p>
  <img src="https://cdn.xhuoapi.ai/om6p6g.png" width="500" className="m-auto" />
</p>

Där ser du att videons ID är:

```
"video_id": "030bb06d-98d4-4044-9042-0aa0822e8c8c"
```

> Notera: Det `video_id` du ser i videon är det ID som tillhör den genererade videon. Om du är osäker på hur man genererar video, se avsnittet för grundläggande användning.

För att fortsätta skapa utifrån tidigare video använder du följande exempel:

* `model`: exempelvis `kling-v1`, `kling-v1-5`, `kling-v1-6`.
* `mode`: `std`, `pro`, `4k`.
* `duration`: 5 eller 10 sek.
* `prompt`: Ledtråd för fortsättning.

Exempel:

<p>
  <img src="https://cdn.xhuoapi.ai/ejimqy.png" width="500" className="m-auto" />
</p>

Den automatiskte genererade koden i Python:

```python theme={null}
import requests

url = "https://api.xhuoapi.ai/v1/kling/videos"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "action": "extend",
    "model": "kling-v1",
    "video_id": "030bb06d-98d4-4044-9042-0aa0822e8c8c",
    "prompt": "White ceramic coffee mug on glossy marble countertop with morning window light. Camera slowly rotates 360 degrees around the mug, pausing briefly at the handle.",
    "duration": 10
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

När du kör detta kommer API:et att returnera exempelvis:

```json theme={null}
{
  "success": true,
  "video_id": "bbc3b105-ac72-4de2-8390-0cb37dc7d41e",
  "video_url": "https://cdn.klingai.com/bs2/upload-kling-api/7822108635/extendVideo/Cjil4mfBfs0AAAAAAKhr6A-0_raw_video_1.mp4",
  "duration": "9.6",
  "state": "succeed",
  "task_id": "3ece87e6-3ee3-4f5e-bd70-5ae5eca89a23"
}
```

Detta liknar tidigare exempel och illustrerar videons fortsatta generering.

## Asynkront callback

Pga att videokonstruktionsprocessen kan ta 1–2 minuter erbjuder API:et stöd för asynkrona callbacks.

Processen är att du vid förfrågan anger `callback_url`. API:et svarar genast med ett `task_id`. När videon är klar skickas resultatet via POST i JSON till detta URL, inklusive samma `task_id`, vilket gör det möjligt att koppla ihop uppgiften.

Exempel:

Du kan t ex använda en testwebhook som [https://webhook.site/](https://webhook.site/) för att ta emot callback-resultaten.

Efter att ha angett URL:n och skickat förfrågan kommer du att få ett svar:

```
{
  "task_id": "20068983-0cc9-4c6a-aeb6-9c6a3c668be0"
}
```

När videon är klar kan du se resultatet på den angivna webhook-adressen, exempelvis:

![](https://cdn.xhuoapi.ai/zv5u2q.png)

Innehåll i resultatet:

```json theme={null}
{
  "success": true,
  "video_id": "030bb06d-98d4-4044-9042-0aa0822e8c8c",
  "video_url": "https://cdn.klingai.com/bs2/upload-kling-api/7822108635/text2video/CjJzzGfBfqcAAAAAAKdVMQ-0_raw_video_1.mp4",
  "duration": "5.1",
  "state": "succeed",
  "task_id": "20068983-0cc9-4c6a-aeb6-9c6a3c668be0"
}
```

Det centrala är `task_id`, vilken kopplar ihop den asynkrona processen.

## Felhantering

Om ett API-anrop misslyckas ges ett felmeddelande med kod och information.\
Exempel på fel:

* `400 token_mismatched`: dålig förfrågan, saknade eller felaktiga parametrar.
* `400 api_not_implemented`: inte implementerad funktion.
* `401 invalid_token`: ogiltig eller saknad API-nyckel.
* `429 too_many_requests`: för många förfrågningar, takgräns överskriden.
* `500 api_error`: serverfel.

Exempel på felrespons:

```json theme={null}
{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

## Sammanfattning

Med denna dokumentation är du nu bekant med att använda Kling Videos Generation API för att skapa videor utifrån prompt och referensbilder. Hoppas att detta underlättar din integration. Vid frågor kontakta gärna vår tekniska support.
