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

# Veo Videos Generation API Integrationsbeskrivning

> Veo Video Generation 集成指南 - XHuoAPI

Denna artikel kommer att introducera en Veo Videos Generation API integrationsbeskrivning, som kan generera officiella Veo-videor genom att ange anpassade parametrar.

## Ansökningsprocess

För att använda API:et måste du först gå till [Veo Videos Generation API](https://api.xhuoapi.ai/documents/63e01dc3-eb21-499e-8049-3025c460058f) 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:

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

Om du inte har loggat in eller registrerat dig kommer du automatiskt att omdirigeras till inloggningssidan där du blir inbjuden 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 och främst, förstå den grundläggande användningsmetoden, vilket innebär att ange en prompt `prompt`, en åtgärd `action`, en array av referensbilder för första och sista bild `image_urls` samt modellen `model`, så får du det bearbetade resultatet. Först behöver du enkelt skicka ett `action`-fält, vars värde är `text2video`. Det innehåller huvudsakligen tre typer av åtgärder: text till video (`text2video`), bild till video (`image2video`), hämta 1080p-video (`get1080p`). Sedan behöver vi också ange modellen `model`, som för närvarande huvudsakligen inkluderar `veo2`, `veo2-fast`, `veo3`, `veo31`, `veo31-fast`, `veo31-fast-ingredients` och `veo3-fast` modeller, med specifikt innehåll som följer:

<p>
  <img src="https://cdn.xhuoapi.ai/vv5pe8.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`: API-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, huvudsakligen `veo2`, `veo2-fast`, `veo3`, `veo31`, `veo31-fast`, `veo31-fast-ingredients` och `veo3-fast` modeller.
* `action`: åtgärden för denna videogenereringsuppgift, som huvudsakligen innehåller tre typer av åtgärder: text till video (`text2video`), bild till video (`image2video`), hämta 1080p-video (`get1080p`).
* `image_urls`: när bild till video-åtgärden `image2video` väljs, måste referensbildlänkar för första och sista bild laddas upp, med högst tre referensbilder.
* `resolution`: välj upplösningen för den genererade videon, där veo31-modellen stöder 4k-upplösning, medan andra modeller inte gör det. Alla modeller stöder 1080p och gif-upplösning, om detta värde inte anges används 720p-upplösning som standard, som huvudsakligen delas in i: `1080p`, `gif`, `4k`.
* `prompt`: promptord.
* `callback_url`: URL för att få tillbaka resultatet.

### 📌 Sammanfattning av modellbeskrivning

| **Modellnamn**             | **Stödda lägen**                                                                              | **Bildinmatningsregler**                                                   |
| -------------------------- | --------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| **veo2-fast**              | Text till video (utan bild)<br />Bild till video-läge (med bild)                              | Stöder endast **1 bild** → Första bildläge                                 |
| **veo3-fast**              | Text till video (utan bild)<br />Bild till video-läge (med bild)                              | **1 bild** → Första bildläge<br />**3 bilder** → Första och sista bildläge |
| **veo31-fast**             | Text till video (utan bild)<br />Bild till video-läge (med bild)                              | **1 bild** → Första bildläge<br />**3 bilder** → Första och sista bildläge |
| **veo31-fast-ingredients** | ❌ Text till video (stöds inte)<br />✅ **Tvingad flerbildssammanslagning** (måste skicka bild) | **1-3 bilder** → Flerbildssammanslagningsläge (max 3 bilder)               |
| **veo2**                   | Text till video (utan bild)<br />Bild till video-läge (med bild)                              | **1 bild** → Första bildläge<br />**3 bilder** → Första och sista bildläge |
| **veo3**                   | Text till video (utan bild)<br />Bild till video-läge (med bild)                              | **1 bild** → Första bildläge<br />**3 bilder** → Första och sista bildläge |
| **veo31**                  | Text till video (utan bild)<br />Bild till video-läge (med bild)                              | **1 bild** → Första bildläge<br />**3 bilder** → Första och sista bildläge |

***

### 🔑 Viktiga regler

1. **Allmän logik**:
   * **Ingen bildinmatning** → Utlöser automatiskt text till video-läge.
   * **Med bildinmatning** → Utlöser bild till video-läge (specifik åtgärd bestäms av antalet bilder).
2. **Typer av bild till video-läge**:
   * **Första bildläge** (1 bild): Första bilden är fastställd som inmatad bild.
   * **Första och sista bildläge** (2 bilder): Första och sista bilden är fastställda som inmatade bilder.
   * **Flerbildssammanslagningsläge** (1-3 bilder): Endast `veo31-fast-ingredients` stöder detta, som sammanfogar innehållet från flera bilder för att generera video.
3. **Klassificering av lägen**:
   * **Snabbt läge**: `veo2-fast`, `veo3-fast`, `veo31-fast`, `veo31-fast-ingredients`.
   * **Kvalitetsläge**: `veo2`, `veo3`, `veo31` (genererar högre kvalitet).

***

### ⚠️ Viktiga punkter

* **Enda tvingande bildmodell**: `veo31-fast-ingredients` måste ha bilder (1-3 bilder), annars kan den inte köras.
* **Begränsning av antal bilder**:
  * Förutom `veo31-fast-ingredients` stöder andra modeller högst **3 bilder** som inmatning.

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

<p>
  <img src="https://cdn.xhuoapi.ai/pmwh4y.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": "dd01fc69-e1f7-4b68-aa8c-463f6b748d11",
  "trace_id": "9906dac0-1516-41dc-9fe3-067ca1ba8269",
  "data": [
    {
      "id": "253eedc47f1c4eb2a370ed2312168f4b",
      "video_url": "https://platform.cdn.xhuoapi.ai/veo/dd01fc69-e1f7-4b68-aa8c-463f6b748d11.mp4",
      "created_at": "2025-07-25 16:07:43",
      "complete_at": "2025-07-25 16:10:28",
      "state": "succeeded"
    }
  ]
}
```

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

* `success`，status för videoproduktionsuppgiften vid denna tidpunkt.
* `task_id`，videoproduktionsuppgiftens ID vid denna tidpunkt.
* `data`，resultatet av videoproduktionsuppgiften vid denna tidpunkt.
  * `id`，videoproduktionsuppgiftens video-ID vid denna tidpunkt.
  * `video_url`，videoproduktionsuppgiftens videolänk vid denna tidpunkt.
  * `created_at`，skapelsedatum för videoproduktionsuppgiften vid denna tidpunkt.
  * `complete_at`，slutförandedatum för videoproduktionsuppgiften vid denna tidpunkt.
  * `state`，status för videoproduktionsuppgiften vid denna tidpunkt.

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

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

```shell theme={null}
curl -X POST 'https://api.xhuoapi.ai/v1/veo/videos' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "text2video",
  "model": "veo2",
  "prompt": "Vit keramik kaffekopp på glänsande marmorarbetsyta med morgonsolens ljus. Kameran roterar långsamt 360 grader runt koppen och pausar kort vid handtaget."
}'
```

## Bild till video-funktion

Om du vill generera en video baserat på första och sista bildramar kan du ställa in parametern `action` till `image2video` och ange en array av länkar till första och sista bildramar `image_urls`.

Därefter måste vi fylla i nästa steg med utökade promptord för att anpassa den genererade videon, så kan vi specificera följande innehåll:

* `model`：modellen för den genererade videon, huvudsakligen `veo2` 、`veo2-fast`、`veo3` och `veo3-fast`.
* `image_urls`：när du väljer bild till video-beteendet `image2video` måste du ladda upp länkar till referensbilder för första och sista bildramar.
* `prompt`：promptord.

Exempel på ifyllning:

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

När du har fyllt i det genereras automatiskt koden nedan:

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

Motsvarande Python-kod:

```python theme={null}
import requests

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

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

payload = {
    "action": "image2video",
    "model": "veo2",
    "prompt": "Låt den dansa",
    "image_urls": ["https://cdn.xhuoapi.ai/7p1jhy.png"]
}

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

När du klickar på kör kan du se att du får ett resultat, som nedan:

```json theme={null}
{
  "success": true,
  "task_id": "98e309f3-35bc-438d-8cb3-4015fc864b87",
  "trace_id": "8bc68066-36de-41ef-ae5e-b7d61ff6aee8",
  "data": [
    {
      "id": "59f12222b1fa4fbe9331ff2400ad1583",
      "video_url": "https://platform.cdn.xhuoapi.ai/veo/98e309f3-35bc-438d-8cb3-4015fc864b87.mp4",
      "created_at": "2025-07-25 16:13:07",
      "complete_at": "2025-07-25 16:16:12",
      "state": "succeeded"
    }
  ]
}
```

Det kan ses att resultatinnehållet är konsekvent med det ovanstående, vilket också uppnår videofunktionen för bild till video.

## Hämta 1080p video-funktion

Om du vill hämta 1080p för en redan genererad Veo-video kan du ställa in parametern `action` till `get1080p` och ange ID för videon som ska hämtas i 1080p, videons ID kan hämtas baserat på grundläggande användning, som visas nedan:

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

Vid denna tidpunkt kan du se att videons ID är:

```json theme={null}
"id": "59f12222b1fa4fbe9331ff2400ad1583"
```

> Observera att videons `video_id` här är ID för den genererade videon, om du inte vet hur du genererar en video kan du hänvisa till den grundläggande användningen ovan för att generera videon.

Därefter måste vi fylla i nästa steg med utökade promptord för att anpassa den genererade videon, så kan vi specificera följande innehåll:

* `model`：modellen för den genererade videon, huvudsakligen `veo2` 、`veo2-fast`、`veo3` och `veo3-fast`.
* `video_id`：referensvideons ID, används för att hämta 1080p-videon.

Exempel på ifyllning:

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

När du har fyllt i det genereras automatiskt koden nedan:

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

När du klickar på kör kan du se att du får ett resultat, som nedan:

```json theme={null}
{
  "success": true,
  "task_id": "47a51cfe-2e24-4aba-93b3-546c2dc52984",
  "trace_id": "a8922eec-6f50-4f77-8104-00ded071d59d",
  "data": [
    {
      "id": "59f12222b1fa4fbe9331ff2400ad1583",
      "video_url": "https://platform.cdn.xhuoapi.ai/veo/47a51cfe-2e24-4aba-93b3-546c2dc52984.mp4",
      "created_at": "2025-07-25 16:13:07",
      "complete_at": "2025-07-25 16:16:12",
      "state": "succeeded"
    }
  ]
}
```

Det kan ses att resultatinnehållet är konsekvent med det ovanstående, vilket också uppnår videofunktionen för att hämta 1080p-video.

## Specifiera videostorlek för generering

Om du vill specificera en anpassad storlek för den genererade Veo-videon kan du ställa in parametern `aspect_ratio` till den önskade storleken, därefter måste vi fylla i nästa steg med utökade promptord för att anpassa den genererade videon, så kan vi specificera följande innehåll:

* `model`：modellen för den genererade videon, huvudsakligen `veo2` 、`veo2-fast`、`veo3` och `veo3-fast`.
* `aspect_ratio`：videons storlek, för närvarande stöds: `16:9`、`16:9`、`3:4`、`4:3`、`1:1`，standard är `16:9`.
* `translation`：om automatisk översättning av promptord ska aktiveras, standard är `false`.
  Exempel på ifyllning:

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

När du har fyllt i det genereras automatiskt koden nedan:

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

När du klickar på kör kan du se att du får ett resultat, som nedan:

```json theme={null}
{
  "success": true,
  "task_id": "d2b93290-ab0e-4d20-ae45-60c062a32687",
  "trace_id": "9834e64d-c8fe-43ae-8114-ee2b5f93d886",
  "data": [
    {
      "id": "fc667e7d3b8f44beaa61a3c339af0e50",
      "video_url": "https://platform.cdn.xhuoapi.ai/veo/d2b93290-ab0e-4d20-ae45-60c062a32687.mp4",
      "created_at": "2025-08-24 20:09:06",
      "complete_at": "2025-08-24 20:10:45",
      "state": "succeeded"
    }
  ]
}
```

Det kan ses att resultatinnehållet är i linje med ovanstående, vilket också uppnår funktionen att generera video i angiven storlek.

## Asynkron återkoppling

Eftersom Veo Videos Generation API:s genereringstid är relativt lång, cirka 1-2 minuter, om API:t 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 denna 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-förfrågan kommer API:t omedelbart att returnera ett resultat som innehåller ett `task_id`-fält, vilket representerar det aktuella uppdragets ID. När uppdraget är slutfört 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 uppdragsresultatet kan kopplas ihop med ID.

Nedan går vi igenom ett exempel för att förstå hur man gör detta.

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:

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

Kopiera denna URL, så kan den användas som Webhook, exemplet här är `https://webhook.site/aed5cd28-f8aa-4dca-9480-8ec9b42137dc`.

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

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

Klicka på kör, och du kan se att ett resultat omedelbart erhålls, som följer:

```json theme={null}
{
  "task_id": "1ebe4f2b-59ba-4385-a4ea-0ce8a3fe12ed"
}
```

Vänta en stund, så kan vi observera resultatet av den genererade videon på `https://webhook.site/aed5cd28-f8aa-4dca-9480-8ec9b42137dc`, som visas i bilden:

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

Innehållet är som följer:

```json theme={null}
{
  "success": true,
  "task_id": "1ebe4f2b-59ba-4385-a4ea-0ce8a3fe12ed",
  "trace_id": "d1d53c04-58c5-4c40-bb63-f00188540e56",
  "data": [
    {
      "id": "2f43ceed37944b4d836e1a1899dad0a1",
      "video_url": "https://platform.cdn.xhuoapi.ai/veo/1ebe4f2b-59ba-4385-a4ea-0ce8a3fe12ed.mp4",
      "created_at": "2025-07-25 17:19:20",
      "complete_at": "2025-07-25 17:21:45",
      "state": "succeeded"
    }
  ]
}
```

Det kan ses att resultatet innehåller ett `task_id`-fält, de andra fälten är liknande som ovan, och genom detta fält kan uppdragen kopplas ihop.

## Felhantering

Vid anrop av API:t, om ett fel uppstår, kommer API:t att returnera motsvarande felkod och information. Till exempel:

* `400 token_mismatched`: Bad request, möjligtvis på grund av saknade eller ogiltiga parametrar.
* `400 api_not_implemented`: Bad request, 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 förfrågningar, du har överskridit hastighetsgränsen.
* `500 api_error`: Intern 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 Veo Videos Generation API för att generera video genom att ange promptord och en referensbild för första ramen. Vi hoppas att detta dokument kan hjälpa dig att bättre integrera och använda denna API. Om du har några frågor, tveka inte att kontakta vårt tekniska supportteam.
