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

# Veo Videos Generation API Integrationsbeskrivning

> Veo Video Generation API guide - Ace Data Cloud

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 Veo Videos Generation API, börja med att gå till [Ace Data Cloud-konsolen](https://platform.acedata.cloud/console/applications) för att hämta din API-token, som du ska spara.

![](https://cdn.acedata.cloud/5hmkdg.jpg)

Om du inte har loggat in eller registrerat dig, kommer du automatiskt att omdirigeras till inloggningssidan där du uppmanas att registrera dig och logga in. När detta är klart kommer du automatiskt att återvända till den aktuella sidan.

**En API-token kan användas för att anropa alla tjänster på plattformen, det krävs ingen separat ansökan för varje tjänst.** Första ansökan ger en gratis kvot för att prova; när kvoten är slut kan du ladda på allmän balans i [konsolen](https://platform.acedata.cloud/console/coin).

> 📘 Fullständig dokumentation: [Veo Videos Generation API →](https://platform.acedata.cloud/documents/veo-videos)

## Grundläggande användning

Först bör du förstå den grundläggande användningen, 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`, för att få det bearbetade resultatet. Först behöver du enkelt skicka ett `action`-fält, vars värde är `text2video`, som huvudsakligen innehåller 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 `veo31-fast`, `veo3`, `veo31`, `veo3-fast` och `veo31-fast-ingredients`, med specifikt innehåll som följer:

<p>
  <img src="https://cdn.acedata.cloud/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`: 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 `veo31-fast`, `veo3`, `veo31`, `veo3-fast` och `veo31-fast-ingredients`.
* `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 laddas upp. `veo31-fast-ingredients` stöder upp till 3 bilder (flera bildfusioner), medan övriga modeller stöder upp till 2 bilder (första och sista bildläge).
* `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 som standard, som huvudsakligen delas in i: `1080p`, `gif`, `4k`.
* `prompt`: promptord.
* `callback_url`: URL för att få tillbaka resultatet.
* `async`: valfritt, om det sätts till `true` returnerar gränssnittet omedelbart `task_id`, utan att behöva ange `callback_url`, och sedan kan resultatet hämtas genom att fråga motsvarande uppgiftsgränssnitt.

### 📌 Modellbeskrivning Sammanfattning

| **Modellnamn**             | **Stödda lägen**                                                                         | **Bildinmatningsregler**                                                   |
| -------------------------- | ---------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| **veo3-fast**              | Text till video (utan bild)<br />Bild till video-läge (med bild)                         | **1 bild** → Första bildläge<br />**2 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 />**2 bilder** → Första och sista bildläge |
| **veo31-fast-ingredients** | ❌ Text till video (stöds inte)<br />✅ **Tvingad flera bildfusioner** (måste skicka bild) | **1-3 bilder** → Flera bildfusioner (max 3 bilder)                         |
| **veo3**                   | Text till video (utan bild)<br />Bild till video-läge (med bild)                         | **1 bild** → Första bildläge<br />**2 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 />**2 bilder** → Första och sista bildläge |

***

### 🔑 Viktiga regler

1. **Allmän logik**:
   * **Ingen bildinmatning** → Automatisk aktivering av text till video-läge.
   * **Med bildinmatning** → Aktiverar 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.
   * **Flera bildfusioner** (1-3 bilder): Endast `veo31-fast-ingredients` stöder detta, fusionerar flera bildinnehåll för att generera video.
3. **Klassificering av lägen**:

* **Snabbt läge**: `veo3-fast`, `veo31-fast`, `veo31-fast-ingredients`.
* **Kvalitetsläge**: `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**:
  * `veo31-fast-ingredients` stöder **1-3 bilder** inmatning (flera bildfusioner).
  * Övriga modeller stöder högst **2 bilder** inmatning (första och sista bildläge).

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

<p>
  <img src="https://cdn.acedata.cloud/pmwh4y.png" width="500" className="m-auto" />
</p>

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

```json theme={null}
{
  "success": true,
  "task_id": "697ea2fc-58fd-48c8-8191-29041ff23c3c",
  "trace_id": "70e1cb12-c619-4292-a416-90191205996b",
  "data": [
    {
      "id": "24ac06a5-9cc7-448f-802e-0b4db19f6e96",
      "video_url": "https://platform2.cdn.acedata.cloud/veo/f5389ec0-2eb5-4212-b4a8-04b513b0129a.mp4",
      "created_at": "2026-06-30T04:01:50.364Z",
      "complete_at": "2026-06-30T04:03:20.495Z",
      "state": "succeeded"
    }
  ]
}
```

Det returnerade resultatet innehåller 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.acedata.cloud/veo/videos' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "text2video",
  "model": "veo31-fast",
  "prompt": "Vit keramik kaffekopp på glänsande marmorarbetsyta med morgonljus från fönstret. Kameran roterar långsamt 360 grader runt koppen och pausar kort vid handtaget."
}'
```

## Funktion för att generera video från bilder

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 bildlänkar för första och sista bildramar `image_urls`.

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

* `model`：modellen för den genererade videon, huvudsakligen `veo31-fast`、`veo3`、`veo31`、`veo3-fast` och `veo31-fast-ingredients`.
* `image_urls`：när du väljer videogenerering från bilder `image2video` måste du ladda upp referensbildlänkar.
* `prompt`：prompt.

Exempel på ifyllning:

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

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

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

Motsvarande Python-kod:

```python theme={null}
import requests

url = "https://api.acedata.cloud/veo/videos"

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

payload = {
    "action": "image2video",
    "model": "veo31-fast",
    "prompt": "Låt den dansa",
    "image_urls": ["https://cdn.acedata.cloud/7p1jhy.png"]
}

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

När du klickar på körning 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.acedata.cloud/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 funktionen för att generera video från bilder.

## Funktion för att hämta 1080p-video

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 den video som behöver hämtas i 1080p. Video-ID:t kan hämtas baserat på grundläggande användning, som visas i bilden nedan:

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

Vid denna tidpunkt kan du se att video-ID:t är:

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

> Observera att video-ID:t här är ID:t 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 de utökade promptarna för att anpassa den genererade videon, så att vi kan specificera följande innehåll:

* `model`：modellen för den genererade videon, huvudsakligen `veo31-fast`、`veo3`、`veo31`、`veo3-fast` och `veo31-fast-ingredients`.
* `video_id`：referensvideo-ID:t, som används för att hämta 1080p-videon.

Exempel på ifyllning:

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

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

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

När du klickar på körning 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.acedata.cloud/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 funktionen för att hämta 1080p-video.

## Generera video med angiven storlek

Om du vill ange 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 de utökade promptarna för att anpassa den genererade videon, så att vi kan specificera följande innehåll:

* `model`：modellen för den genererade videon, huvudsakligen `veo31-fast`、`veo3`、`veo31`、`veo3-fast` och `veo31-fast-ingredients`.
* `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 promptar ska aktiveras, standard är `false`.
  Exempel på ifyllning:

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

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

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

När du klickar på körning 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.acedata.cloud/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, så detta API erbjuder 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 kommer vi att förstå hur man gör detta genom ett exempel.

Först är Webhook-återkoppling en tjänst som kan ta emot HTTP-förfrågningar, utvecklare 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.acedata.cloud/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.acedata.cloud/rgivs2.png" width="500" className="m-auto" />
</p>

Klicka på kör, och du kan upptäcka att du omedelbart får ett resultat, 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.acedata.cloud/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.acedata.cloud/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, 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 av första ramen. Vi hoppas att detta dokument kan hjälpa dig att bättre integrera och använda detta API. Om du har några frågor, tveka inte att kontakta vårt tekniska supportteam.
