> ## 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.

# Hailuo Videos Generation API Integrationsbeskrivning

> Hailuo Video Generation 集成指南 - XHuoAPI

Detta dokument kommer att introducera en Hailuo Videos Generation API integrationsbeskrivning, som kan generera Hailuo officiella videor genom att ange anpassade parametrar.

## Ansökningsprocess

För att använda API:et måste du först gå till [Hailuo Videos Generation API](https://api.xhuoapi.ai/documents/ee06377b-9185-438f-ac84-3376bcb1275e) motsvarande sida för att ansöka om den tjänst som behövs. När du kommer till sidan, klicka på knappen "Acquire", som visas i bilden nedan:

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

Om du inte har loggat in eller registrerat dig kommer du automatiskt att omdirigeras till inloggningssidan för att registrera dig och logga in. Efter att ha loggat in eller registrerat dig kommer du automatiskt att återvända till den aktuella sidan.

Vid första ansökan kommer det att finnas en gratis kvot som ges, så att du kan använda API:et gratis.

## Grundläggande användning

Först bör du förstå den grundläggande användningsmetoden, vilket innebär att du anger en prompt `prompt`, en åtgärd `action`, en referensbild för första ramen `first_image_url` samt en modell `model`, för att få det bearbetade resultatet. Först behöver du enkelt skicka ett `action`-fält, vars värde är `generate`, och sedan behöver vi ange modellen, som för närvarande huvudsakligen består av bild-till-video-modellen `minimax-i2v` och text-till-video-modellen `minimax-t2v`, med specifikt innehåll som följer:

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

Här kan vi se att vi har ställt in Request Headers, inklusive:

* `accept`: vilken format av svar du vill ta emot, här anges som `application/json`, det vill säga JSON-format.
* `authorization`: nyckeln för att anropa API:et, som kan väljas direkt efter ansökan.

Dessutom har vi ställt in Request Body, inklusive:

* `model`: modellen för att generera videon, som huvudsakligen består av bild-till-video-modellen `minimax-i2v` och text-till-video-modellen `minimax-t2v`.
* `action`: åtgärden för denna videogenereringsuppgift.
* `first_image_url`: när bild-till-video-modellen `minimax-i2v` väljs, måste en länk till referensbilden för första ramen laddas upp, Base64-kodning stöds inte.
* `prompt`: prompten.
* `callback_url`: URL:en för att få tillbaka resultatet.

När du har valt kan du se att motsvarande kod också har genererats till höger, som visas i bilden nedan:

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

Klicka på knappen "Try" för att testa, som visas i bilden ovan, här får vi följande resultat:

```json theme={null}
{
  "success": true,
  "task_id": "baf1034c-684c-46be-ae6d-89ebb89b690d",
  "trace_id": "3221eb74-1a25-447a-ba69-7d9b310e306c",
  "data": [
    {
      "id": "0pv8yhe4fdrge0cmckpv23pd2g",
      "model": "minimax-t2v",
      "prompt": "Internal heat",
      "video_url": "https://file.aigpai.com/czjl/qoueLWBokF3ud6tdVD6VJTZuXTnK5HaMO2qAOS46Ef8VSBFUA/tmp9e3u11c1.output.mp4",
      "state": "succeeded"
    }
  ]
}
```

Det returnerade resultatet har flera fält, som beskrivs nedan:

* `success`, statusen för videogenereringsuppgiften.
* `task_id`, ID för videogenereringsuppgiften.
* `trace_id`, spårnings-ID för videogenereringen.
* `data`, resultatlistan för videogenereringsuppgiften.
  * `id`, videons ID för videogenereringsuppgiften.
  * `prompt`, prompten för videogenereringsuppgiften.
  * `model`, länk till omslaget för videogenereringsuppgiften.
  * `video_url`, länk till videon för videogenereringsuppgiften.
  * `state`, statusen för videogenereringsuppgiften.

Vi kan se att vi har fått tillfredsställande videoinformation, och vi behöver bara hämta den genererade Hailuo-videon baserat på videolänkadressen i `data`.

Om du vill generera motsvarande integrationskod kan du direkt kopiera den som till exempel CURL-koden nedan:

```shell theme={null}
curl -X POST 'https://api.xhuoapi.ai/v1/hailuo/videos' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "generate",
  "prompt": "Internal heat"
}'
```

## Asynkron återkoppling

Eftersom Hailuo Videos Generation API:s genereringstid är relativt lång, cirka 1-2 minuter, om API:et inte svarar under en längre tid, kommer HTTP-förfrågan att hålla anslutningen öppen, vilket leder till extra systemresursförbrukning. Därför erbjuder detta API också stöd för asynkron återkoppling.

Den övergripande processen är: när klienten initierar en begäran, specificerar den ett extra `callback_url`-fält. Efter att klienten har initierat API-begäran kommer API:et omedelbart att returnera ett resultat som innehåller ett `task_id`-fält, vilket representerar det aktuella uppgifts-ID:t. När uppgiften är klar kommer resultatet av den genererade videon att skickas till klientens angivna `callback_url` i POST JSON-format, vilket också inkluderar `task_id`-fältet, så att uppgiftsresultatet kan kopplas ihop med ID:t.

Låt oss förstå hur man gör detta genom ett exempel.

Först är Webhook-återkopplingen en tjänst som kan ta emot HTTP-förfrågningar, utvecklaren bör ersätta med URL:en till sin egen byggda HTTP-server. Här för att underlätta demonstration använder vi en offentlig Webhook-exempelsida [https://webhook.site/](https://webhook.site/), öppna denna webbplats för att få en Webhook-URL, som visas i bilden nedan:

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

Kopiera denna URL, så kan den användas som Webhook, här är exemplet `https://webhook.site/580b81f5-596e-4321-b03f-606770b0bb83`.

Därefter kan vi ställa in fältet `callback_url` till ovanstående Webhook-URL, samtidigt som vi fyller i motsvarande parametrar, med specifikt innehåll som visas i bilden nedan:

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

Klicka på körning, och du kan omedelbart få ett resultat, som följer:

```
{
  "task_id": "05aff65c-5e84-442b-8e29-3a5d27130840"
}
```

Vänta en stund, så kan vi observera resultatet av den genererade videon på `https://webhook.site/580b81f5-596e-4321-b03f-606770b0bb83`, som visas i bilden nedan:

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

Innehållet är som följer:

```json theme={null}
{
    "success": true,
    "task_id": "05aff65c-5e84-442b-8e29-3a5d27130840",
    "trace_id": "b9856b8a-725d-45c9-befe-e789d9fd9ffb",
    "data": [
        {
            "id": "t80jhsf96srg80cmcm6b0rk8gm",
            "model": "minimax-t2v",
            "prompt": "Internal heat",
            "video_url": "https://file.aigpai.com/czjl/YPaUz2DcwpJqItTXAG9XHAoEoj3dbF0XPU69LT5nefCMzBFUA/tmp8s_59jez.output.mp4",
            "state": "succeeded"
        }
    ]
}
```

Vi kan se att resultatet innehåller ett `task_id`-fält, och de andra fälten liknar de som nämndes tidigare, och genom detta fält kan uppgifterna kopplas samman.

## Felhantering

När du anropar API:et, om du stöter på ett fel, kommer API:et att returnera motsvarande felkod och information. Till exempel:

* `400 token_mismatched`：Felaktig begäran, möjligtvis på grund av saknade eller ogiltiga parametrar.
* `400 api_not_implemented`：Felaktig begäran, möjligtvis på grund av saknade eller ogiltiga parametrar.
* `401 invalid_token`：Obehörig, ogiltig eller saknad auktoriseringstoken.
* `429 too_many_requests`：För många begärningar, du har överskridit hastighetsgränsen.
* `500 api_error`：Internt serverfel, något gick fel på servern.

### Exempel på felrespons

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

## Slutsats

Genom detta dokument har du fått en förståelse för hur du använder Hailuo Videos Generation API för att generera video genom att ange en prompt och en referensbild för första ramen. Vi hoppas att detta dokument kan hjälpa dig att bättre integrera och använda API:et. Om du har några frågor, tveka inte att kontakta vårt tekniska supportteam.
