Source: https://ailoot.ai/docs/da/api/video-music/
Canonical: https://ailoot.ai/docs/da/api/video-music/
Language: da

[API](https://ailoot.ai/docs/da/) 

# Video og musik

[Markdown](https://ailoot.ai/docs/da/api/video-music/index.md)

Generering af videoer og musik: anmodningen opretter en opgave, og resultatet hentes via dens identifikator.

POST`https://api.ailoot.ai/v1/videos`

Video og musik

```bash
# Gem Request ID: support bruger det til at finde din anmodning.
# Opret jobbet én gang; løkken nedenfor læser kun dets status.
curl --fail-with-body --max-time 120 -D video-create-headers-v1.txt \
  https://api.ailoot.ai/v1/videos \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"grok-imagine-video-1.5","prompt":"en rolig sø","seconds":"8","size":"1280x720"}' \
  -o video-create-v1.json || exit 1
VIDEO_ID=$(jq -er '.id // .request_id' video-create-v1.json) || exit 1
VIDEO_STATUS=""
# Denne løkke læser kun det oprindelige job. Den sender aldrig oprettelsesanmodningen igen.
for ATTEMPT in $(seq 1 60); do
  curl --fail-with-body --max-time 30 \
    "https://api.ailoot.ai/v1/videos/$VIDEO_ID" \
    -H "Authorization: Bearer $AILOOT_API_KEY" \
    -o video-status-v1.json || exit 1
  VIDEO_STATUS=$(jq -r '.status // empty' video-status-v1.json)
  # result_pending_check: true (status forbliver in_progress): resultatet kontrolleres. Stop; opret aldrig jobbet igen.
  if jq -e '.result_pending_check == true' video-status-v1.json >/dev/null; then
    cat video-status-v1.json
    echo "The result is being checked. Do not create the job again: check GET /v1/videos/$VIDEO_ID later or contact support with the Request ID." >&2
    exit 1
  fi
  case "$VIDEO_STATUS" in
    done|completed) break ;;
    queued|in_progress|pending|processing) sleep 5 ;;
    # failed eller enhver anden status: vis den og stop. Opret aldrig jobbet igen.
    *) cat video-status-v1.json; exit 1 ;;
  esac
done
case "$VIDEO_STATUS" in
  done|completed) ;;
  *) echo "The job is not finished yet (status: ${VIDEO_STATUS:-none}). Check it later: GET /v1/videos/$VIDEO_ID" >&2; exit 1 ;;
esac
curl --fail-with-body --max-time 120 -L --max-redirs 3 \
  "https://api.ailoot.ai/v1/videos/$VIDEO_ID/content" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o video-v1.mp4
# Efter en timeout ved oprettelse skal du kontrollere Request ID i din forbrugshistorik, før du kører dette script igen.
```

```bash
curl https://api.ailoot.ai/v1/music/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "google/lyria", "prompt": "Roligt klaver og cello, uden vokal"}' 
```

Svar · forkortet

```json
// Opgavens identifikator findes i feltet id eller request_id
{ "id": "…", … }

// Formatet afhænger af modellen: brug identifikatoren
// fra svaret på oprettelsen uændret.
```

## Godkendelse

| Parameter | Type | Påkrævet | Beskrivelse |
| --- | --- | --- | --- |
| `Authorization` | header | påkrævet | Nøgle i formatet `Bearer sk-…`. Følgende headers kan også bruges: `x-api-key` eller `x-goog-api-key`. |

## Video: anmodningens indhold

| Parameter | Type | Påkrævet | Beskrivelse |
| --- | --- | --- | --- |
| `model` | string | påkrævet | Videomodel: `google/omni-1.1-flash`, `grok-imagine-video`, `happyhorse-1.1-t2v`, `MiniMax-Hailuo-2.3`, `grok-imagine-video-1.5`, `happyhorse-1.1-r2v`, `grok-imagine-video-1.5-preview`, `happyhorse-1.1-i2v`. |
| `prompt` | string | påkrævet | Beskrivelse af videoen. |
| `duration / seconds` | integer / string | valgfrit | Afhænger af familien: Grok 1–15 sekunder, MiniMax 6/10 ved 768P eller 6 ved 1080P, HappyHorse 3–15; Google Omni 4/6/8/10. Brug ikke et felt fra én familie i en anden. |
| `resolution / size` | string | valgfrit | Grok: 480p/720p/1080p (1080p for video-1.5), eller size 1280x720/720x1280/1920x1080/1080x1920. MiniMax: 768P/1080P. HappyHorse: 480P/720P/1080P. Google Omni: 360p/720p. |
| `image / first_frame_image / image_urls` | string / array | valgfrit | Felterne til kildebilleder afhænger af familien og tilstanden. MiniMax Fast kræver first\_frame\_image. HappyHorse t2v — uden images, i2v — præcis ét billede uden ratio, r2v — 1–9 billeder. |

Svaret indeholder opgavens identifikator (feltet `id` eller `request_id`). Brug den uændret uden at fortolke den: formatet afhænger af modellen. Status og færdig fil:

GET`https://api.ailoot.ai/v1/videos/{id}`

GET`https://api.ailoot.ai/v1/videos/{id}/content`

De samme adresser virker også med præfikset `/v1/videos/generations/{id}`. Status for en færdig opgave og svarfelterne afhænger af modellen — brug statusfeltet som vejledning, og hent filen via `/content`.

## Oprettelse → status → download

Gem svaret fra oprettelsen og dets Request ID. For MiniMax/HappyHorse er opgaven færdig ved `status: completed`, svaret indeholder `content_url`, `data[]` og usage. For Grok — `status: done` med `video.url`. Google Omni returnerer 202 queued, derefter in\_progress med Retry-After, completed eller partial/content\_revoked. Betragt ikke ethvert 200-svar som en færdig video. Hvis statussvaret indeholder `result_pending_check: true` (`status` er samtidig `in_progress`), er resultatet ved at blive afklaret. Opret ikke opgaven igen — kontrollér den senere via GET /v1/videos/{id}, eller kontakt support med Request ID.

`/content` kan returnere MP4 direkte eller redirect til en signeret fil. Hvis svaret indeholder flere resultater i `data[]`, skal du gemme dem alle: alle leverede resultater betales. En videoopgave kan ikke annulleres eller slettes via API'et. Sletning af den færdige fil fjerner adgangen til den, men annullerer ikke genereringen.

Betalingen beregnes pr. sekund færdig video i den valgte opløsning eller pr. video, som angivet i kataloget. Hele prisen reserveres, når opgaven oprettes.

## Musik

POST`https://api.ailoot.ai/v1/music/generations`

| Parameter | Type | Påkrævet | Beskrivelse |
| --- | --- | --- | --- |
| `model` | string | påkrævet | `google/lyria`, `google/lyria-3-clip-preview`. |
| `prompt` | string | påkrævet | Beskrivelse af nummeret: genre, instrumenter og stemning. |

I svaret er `data[]` — links til færdige klip. Modellen kan returnere flere klip i én anmodning; hvert leveret klip betales.

Send ikke en video- eller musikanmodning igen, hvis forbindelsen afbrydes: opgaven kan allerede være startet. Kontrollér først status via identifikatoren, eller kontakt support med Request ID.

Har du stadig spørgsmål? Send Request ID og en beskrivelse — så hjælper vi med at finde ud af det.[Kontakt support](mailto:support@ailoot.ai)

## Ailoot · Virksomheden og dens projektportefølje





Ailoot bygger på solid driftserfaring, en stor kundebase, stabil service og løbende kontrol af KPI.





Virksomheden og dens projektportefølje: millioner af kunder; månedligt salg for milliarder.





Ailoot bruger denne driftserfaring til API-adgang til AI-funktioner i kundernes produkter, agenter, applikationer og automatiseringer.
