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

# Anslutningsinstruktioner för Gemini Videos Generation API

> Gemini AI API guide - Ace Data Cloud

Den här artikeln introducerar anslutningsinstruktionerna för Gemini Videos Generation API, som kan generera Google Gemini-videor (omni-flash) genom att mata in textpromptar (samt valfria referensbilder).

## Ansökningsprocess

För att använda Gemini Videos Generation API, gå först till [Ace Data Cloud-konsolen](https://platform.acedata.cloud/console/applications) för att hämta din API Token och spara den för senare användning.

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

Om du ännu inte är inloggad eller registrerad omdirigeras du automatiskt till inloggningssidan där du uppmanas att registrera dig och logga in. När det är klart återgår du automatiskt till den aktuella sidan.

**En API Token kan anropa alla plattformstjänster, utan att behöva ansöka separat för varje tjänst.** Vid första ansökan får du gratis kvot för att kunna testa kostnadsfritt; om kvoten är otillräcklig kan du fylla på det gemensamma saldot i [konsolen](https://platform.acedata.cloud/console/coin).

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

## Grundläggande användning

Låt oss först titta på det grundläggande användningssättet. Genom att ange prompten `prompt`, modellen `model` och bildförhållandet `aspect_ratio` kan du generera motsvarande video.

Här kan vi se att Request Headers har angetts, inklusive:

* `accept`: vilket format du vill ta emot svarsresultatet i; här anges `application/json`, alltså JSON-format.
* `authorization`: nyckeln för att anropa API:et, som kan väljas direkt från rullgardinsmenyn efter ansökan.

Dessutom har Request Body angetts, inklusive:

* `prompt`: textprompten som beskriver videoinnehållet som ska genereras, **obligatorisk**.
* `model`: modellen för att generera videon; för närvarande stöds endast `omni-flash`, och standardvärdet är `omni-flash`.
* `aspect_ratio`: bildförhållandet för den genererade videon; du kan välja `16:9` (liggande) eller `9:16` (stående), och standardvärdet är `16:9`.
* `resolution`: valfri utdatupplösning; du kan välja `720p` eller `1080p`, och standardvärdet är `720p`.
* `image_urls`: valfri array med länkar till referensbilder, som används för att styra videogenereringen; tomma poster ignoreras. När `video_urls` används för videoredigering är denna parameter obligatorisk (minst en bild).
* `video_urls`: valfri array med länkar till referensvideor (högst 1), som används för **videoredigering / videoreferens**; när den anges måste minst en `image_urls` samtidigt anges.
* `callback_url`: asynkron callback-adress; efter inställning returnerar API:et omedelbart `task_id` och POST:ar resultatet till denna adress när uppgiften är klar.
* `async`: valfri; när den sätts till `true` returnerar gränssnittet omedelbart `task_id`, utan behov av att ange `callback_url`; resultatet hämtas sedan genom polling via motsvarande gränssnitt för uppgiftsförfrågan.

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

```json theme={null}
{
  "success": true,
  "task_id": "9258c45f-bed9-4dde-81c2-a70a710a6904",
  "trace_id": "862d6aae-cec0-407f-9524-bc1be2291bcb",
  "data": [
    {
      "id": "dc4b7292-070c-49a8-8183-919bdf8ad59e",
      "video_url": "https://cdn.acedata.cloud/assets/examples/gemini/9258c45f-bed9-4dde-81c2-a70a710a6904-418c13e0605f.mp4",
      "state": "succeeded",
      "aspect_ratio": "16:9",
      "prompt": "A cinematic shot of a kitten chasing a butterfly in a sunlit garden"
    }
  ],
  "started_at": 1784112953.856,
  "finished_at": 1784113021.328,
  "elapsed": 67.472,
  "cost": {
    "amount": 1.932,
    "currency": "credit",
    "list_amount": 2.1
  }
}
```

Svarsresultatet innehåller flera fält, som beskrivs nedan:

* `success`: om denna begäran om videogenerering lyckades.
* `task_id`: ID:t för denna uppgift för videogenerering.
* `trace_id`: spårnings-ID:t för denna begäran, som används för felsökning.
* `data`: listan över genererade videoresultat.
  * `id`: den unika identifieraren för den genererade videon.
  * `video_url`: länkadressen till den genererade videon (`null` när `state` är `pending`).
  * `state`: statusen för uppgiften för videogenerering; möjliga värden är `pending` / `succeeded` / `failed`.
  * `aspect_ratio`: bildförhållandet för denna video, vilket överensstämmer med begärandeparametern.
  * `prompt`: prompten som användes för att generera denna video.

Vid synkront svar inkluderas även fälten `started_at`, `finished_at`, `elapsed` (tidsåtgång, sekunder) samt `cost` (denna debitering, enhet Credit) på toppnivå.

Vi behöver bara hämta den genererade videon via länkadressen `video_url` i resultatets `data`.

Motsvarande CURL-kod är följande:

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/gemini/videos' \
-H 'authorization: Bearer ${bearer_token}' \
-H 'accept: application/json' \
-H 'content-type: application/json' \
-d '{
  "prompt": "A cinematic shot of a kitten chasing a butterfly in a sunlit garden",
  "model": "omni-flash",
  "aspect_ratio": "16:9"
}'
```

Motsvarande Python-kod är följande:

```python theme={null}
import requests

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

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

payload = {
    "prompt": "A cinematic shot of a kitten chasing a butterfly in a sunlit garden",
    "model": "omni-flash",
    "aspect_ratio": "16:9"
}

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

## Bild-till-video

Om du vill generera en video baserat på referensbilder kan du skicka in en eller flera bildlänkar i `image_urls` för att styra videogenereringen:

```json theme={null}
{
  "prompt": "The woman slowly turns around and smiles at the camera, gentle breeze",
  "model": "omni-flash",
  "aspect_ratio": "9:16",
  "image_urls": [
    "https://cdn.acedata.cloud/assets/examples/nanobanana/e44bfceb-1458-4b4b-9d10-21024678f1a3-5ccb6e83b402.png"
  ]
}
```

## Videoredigering / referensvideo (inmatningsvideo, genererad video)

Det stöds att direkt ”mata in en video och generera en ny video”: skicka in en referensvideolänk (högst 1) i `video_urls` och tillhandahåll **samtidigt** minst en referensbild i `image_urls` (uppströms hårt krav), och använd sedan `prompt` för att beskriva önskad redigeringseffekt (ändra stil, byta scen, lägga till eller ta bort element osv.).

Nedan är ett komplett verkligt exempel — en video av en solig strand ändras till en vinterscen med kraftigt snöfall, samtidigt som layouten för stranden, palmerna och båten behålls. Videoredigering tar längre tid (cirka 6,5 minuter i detta exempel), därför skickas den asynkront med `async: true`:

```json theme={null}
{
  "prompt": "Turn this sunny tropical beach into a snowy winter scene with heavy falling snow and overcast sky; keep the same beach, palm trees and boat layout.",
  "model": "omni-flash",
  "aspect_ratio": "9:16",
  "resolution": "720p",
  "image_urls": [
    "https://cdn.acedata.cloud/99289603bd.png"
  ],
  "video_urls": [
    "https://cdn.acedata.cloud/assets/examples/seedance/dd3dc063-3383-4f29-bedc-e771a096758c-044e05281a2a.mp4"
  ],
  "async": true
}
```

Efter inskickning returnerar API:et omedelbart `task_id`:

```json theme={null}
{
  "task_id": "cd68b4ee-de70-4c94-ac69-997a3fed0284"
}
```

Använd sedan denna `task_id` som `id` för att polla [Gemini Tasks API](https://platform.acedata.cloud/documents/gemini-tasks). När uppgiften är slutförd kan du hämta den nya genererade videon (detta är det verkliga retursvaret för exemplet):

```json theme={null}
{
  "success": true,
  "task_id": "cd68b4ee-de70-4c94-ac69-997a3fed0284",
  "trace_id": "5b22104b-5a6d-4a4f-8063-69acae1dc1c6",
  "data": [
    {
      "id": "e125d316-3d26-4c65-9413-55baf6be46b8",
      "video_url": "https://cdn.acedata.cloud/assets/examples/sora/cd68b4ee-de70-4c94-ac69-997a3fed0284-c5603ef983da.mp4",
      "state": "succeeded",
      "aspect_ratio": "9:16",
      "prompt": "Turn this sunny tropical beach into a snowy winter scene with heavy falling snow and overcast sky; keep the same beach, palm trees and boat layout."
    }
  ],
  "started_at": 1784084482.914,
  "finished_at": 1784084877.09,
  "elapsed": 394.176,
  "cost": {
    "amount": 1.932,
    "currency": "credit",
    "list_amount": 2.1
  }
}
```

För resultat med högre upplösning kan du ställa in `resolution` till `1080p` (övriga parametrar förblir oförändrade).

> Tips: In-/utmedialänkarna i exemplet är alla verkliga genererade resultat. **Videor och bildlänkar som genereras av plattformen har en lagringstid och blir ogiltiga efter att den har löpt ut**, så ladda ner och spara dem i din egen lagring i tid efter att du har fått resultatet.

> Observera: Högst 1 referensvideo tillåts; och när `video_urls` anges måste minst en `image_urls` tillhandahållas, annars returneras följande parameterfel:

```json theme={null}
{
  "success": false,
  "error": {
    "code": "bad_request",
    "message": "image_urls (at least one reference image) is required when video_urls is provided."
  }
}
```

## Asynkron återuppringning

Videogenerering kräver en viss bearbetningstid. Om du inte vill behålla en lång anslutning och vänta kan du ange `callback_url`. API:et returnerar då omedelbart `task_id`, och när uppgiften är slutförd POST:as slutresultatet till denna adress:

```json theme={null}
{
  "prompt": "A cinematic shot of a kitten chasing a butterfly in a sunlit garden",
  "model": "omni-flash",
  "aspect_ratio": "16:9",
  "callback_url": "https://your-domain.com/callback/gemini"
}
```

Det omedelbart returnerade resultatet är följande:

```json theme={null}
{
  "task_id": "04a043bd-6b23-4b4e-945c-ce48158c3eee"
}
```

## Fråga efter uppgiftsresultat

Om du använder asynkron återuppringning eller vill fråga efter uppgiftsstatus aktivt kan du använda [Gemini Tasks API](https://platform.acedata.cloud/documents/gemini-tasks) (`POST https://api.acedata.cloud/gemini/tasks`) för att fråga efter den senaste uppgiftsstatusen och resultaten baserat på `task_id`. Skicka in `task_id` som returneras när videon skapas som `id` i begärandekroppen:

```json theme={null}
{
  "id": "04a043bd-6b23-4b4e-945c-ce48158c3eee"
}
```

Resultatet som returneras när uppgiften är slutförd liknar följande. Strukturen för `response.data` är densamma som vid synkron generering (`state` är `pending` och `video_url` är `null` medan generering pågår):

```json theme={null}
{
  "id": "04a043bd-6b23-4b4e-945c-ce48158c3eee",
  "type": "videos",
  "request": {
    "model": "omni-flash",
    "prompt": "A time-lapse of clouds over snow mountains at sunrise",
    "aspect_ratio": "16:9",
    "async": true
  },
  "response": {
    "success": true,
    "task_id": "04a043bd-6b23-4b4e-945c-ce48158c3eee",
    "data": [
      {
        "id": "486ebd5a-6a4b-406c-84ae-33835de4fe19",
        "video_url": "https://cdn.acedata.cloud/assets/examples/gemini/04a043bd-6b23-4b4e-945c-ce48158c3eee-3a89912507c7.mp4",
        "state": "succeeded",
        "aspect_ratio": "16:9",
        "prompt": "A time-lapse of clouds over snow mountains at sunrise"
      }
    ],
    "elapsed": 96.716,
    "cost": {
      "amount": 1.932,
      "currency": "credit",
      "list_amount": 2.1
    }
  }
}
```

## Felhantering

När ett problem uppstår med begäran returnerar API:et motsvarande felkod och beskrivning. Vanliga är följande:

* `400`: Begärandeparametrarna är felaktiga, till exempel saknas `prompt` eller så är `aspect_ratio` ogiltig.
* `401`: Autentiseringen misslyckades, token är ogiltig eller matchar inte API:et.
* `403`: Otillräckligt saldo, eller så avvisades prompten eftersom den träffade innehållsgranskningen.
* `500`: Internt serverfel eller uppströmsgenereringen misslyckades.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.