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

# HappyHorse Videos API integrationsanvisningar

> HappyHorse Video API guide - Ace Data Cloud

Detta dokument introducerar integrationsmetoden för HappyHorse Videos API. Detta API stöder text-till-video, bild-till-video med första bildrutan, bild-till-video med referensbilder och videoredigering via den enhetliga `/happyhorse/videos`-ingången och parametern `action`.

## Ansökningsprocess

För att använda HappyHorse Videos API går du 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 har loggat in eller registrerat dig omdirigeras du automatiskt till inloggningssidan där du uppmanas att registrera dig och logga in. När detta är klart återvänder du automatiskt till den aktuella sidan.

**En API Token kan anropa alla plattformens tjänster, utan att behöva ansöka separat för varje tjänst.** Vid den första ansökan får du kostnadsfria krediter för att prova tjänsten utan kostnad; när krediterna inte räcker till kan du fylla på ditt generella saldo i [konsolen](https://platform.acedata.cloud/console/coin).

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

## Åtgärdstyper

`action` avgör genereringsläget för den aktuella begäran:

* `generate`: text-till-video, standardåtgärden, stöder `happyhorse-1.0-t2v` och `happyhorse-1.1-t2v`, och kräver att `prompt` anges.
* `image_to_video`: bild-till-video med första bildrutan, stöder `happyhorse-1.0-i2v` och `happyhorse-1.1-i2v`, och kräver att `image_url` anges.
* `reference_to_video`: bild-till-video med referensbilder, stöder `happyhorse-1.0-r2v` och `happyhorse-1.1-r2v`, och kräver att `prompt` och 1–9 `image_urls` anges.
* `video_edit`: videoredigering, stöder `happyhorse-1.0-video-edit`, och kräver att `prompt` och `video_url` anges; 0–5 referensbilder via `image_urls` kan dessutom anges.

Varje åtgärd använder som standard 1.1-modellen; `video_edit` har för närvarande endast `happyhorse-1.0-video-edit`.

## Grundläggande användning

Text-till-video behöver bara ange `prompt`, och kan även ange parametrar som `resolution`, `ratio` och `duration`:

```json theme={null}
{
  "action": "generate",
  "model": "happyhorse-1.1-t2v",
  "prompt": "A cinematic white horse lifts its head, the mane moves gently in the sunrise wind, slow camera push in, warm film lighting",
  "resolution": "720P",
  "ratio": "16:9",
  "duration": 5
}
```

Ett exempel på returresultatet är följande:

```json theme={null}
{
  "success": true,
  "task_id": "27837f92-d1c1-4db4-ad9a-4e6e81d9f6c1",
  "trace_id": "6071ab5e-2f37-46f0-9e07-f1e378112e69",
  "data": [
    {
      "id": "9650580f-6d9e-4bc1-823a-29011790c5cb",
      "video_url": "https://cdn.acedata.cloud/assets/examples/happyhorse/27837f92-d1c1-4db4-ad9a-4e6e81d9f6c1-2c108ce23554.mp4",
      "state": "succeeded",
      "duration": 5,
      "resolution": "720P",
      "ratio": null
    }
  ]
}
```

Fältbeskrivning:

* `success`: om den aktuella begäran lyckades.
* `task_id`: uppgifts-ID på Ace Data Cloud-sidan, som kan användas för att kontrollera uppgiftsstatusen.
* `trace_id`: spårnings-ID för den aktuella begäran, som används för felsökning.
* `data`: lista över videoresultat.
  * `id`: uppgifts-ID på HappyHorse-sidan.
  * `video_url`: CDN-länkadressen till den genererade videon.
  * `state`: uppgiftsstatus, möjliga värden är `pending` / `succeeded` / `error`.
  * `duration`: fakturerad videolängd, i sekunder; för `video_edit` är detta den sammanlagda längden för in- och utgående video.
  * `resolution`: utdatans upplösning.
  * `ratio`: utdatans bildförhållande.

Motsvarande cURL-kod är följande:

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/happyhorse/videos' \
-H 'authorization: Bearer ${bearer_token}' \
-H 'accept: application/json' \
-H 'content-type: application/json' \
-d '{
  "action": "generate",
  "model": "happyhorse-1.1-t2v",
  "prompt": "A cinematic white horse lifts its head, the mane moves gently in the sunrise wind, slow camera push in, warm film lighting",
  "resolution": "720P",
  "ratio": "16:9",
  "duration": 5
}'
```

Motsvarande Python-kod är följande:

```python theme={null}
import requests

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

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

payload = {
    "action": "generate",
    "model": "happyhorse-1.1-t2v",
    "prompt": "A cinematic white horse lifts its head, the mane moves gently in the sunrise wind, slow camera push in, warm film lighting",
    "resolution": "720P",
    "ratio": "16:9",
    "duration": 5,
}

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

## Bild-till-video med första bildrutan

När `image_to_video` används fungerar `image_url` som videons första bildruta. Utdatans bildförhållande följer i möjligaste mån bilden i den första bildrutan, så denna åtgärd behöver inte ange `ratio`.

```json theme={null}
{
  "action": "image_to_video",
  "model": "happyhorse-1.1-i2v",
  "image_url": "https://cdn.acedata.cloud/b1c82e4937.png",
  "prompt": "A cinematic white horse lifts its head, the mane moves gently in the sunrise wind, slow camera push in, warm film lighting",
  "resolution": "1080P",
  "duration": 5
}
```

## Bild-till-video med referensbilder

När `reference_to_video` används kan 1–9 referensbilder anges i `image_urls`. I prompten kan bilderna i motsvarande ordning refereras till med exempelvis `character1`, `character2` och så vidare.

```json theme={null}
{
  "action": "reference_to_video",
  "model": "happyhorse-1.1-r2v",
  "prompt": "character1 walks forward through a sunrise meadow with the warm leather and gold trim style from character2",
  "image_urls": [
    "https://cdn.acedata.cloud/b1c82e4937.png",
    "https://cdn.acedata.cloud/eb75d88a3f.png"
  ],
  "resolution": "720P",
  "ratio": "16:9",
  "duration": 5
}
```

## Videoredigering

När `video_edit` används måste videon som ska redigeras, `video_url`, och redigeringsavsikten, `prompt`, anges. Valfria `image_urls` används som referensbilder, till exempel för klädbyte, stilöverföring eller lokal ersättning. `audio_setting` kan vara antingen `auto` eller `origin`, där `origin` innebär att det ursprungliga videoljudet behålls.

```json theme={null}
{
  "action": "video_edit",
  "model": "happyhorse-1.0-video-edit",
  "prompt": "Apply the warm leather and gold trim style from the reference image while preserving the original camera motion",
  "video_url": "https://cdn.acedata.cloud/assets/examples/happyhorse/27837f92-d1c1-4db4-ad9a-4e6e81d9f6c1-2c108ce23554.mp4",
  "image_urls": [
    "https://cdn.acedata.cloud/eb75d88a3f.png"
  ],
  "resolution": "720P",
  "audio_setting": "auto"
}
```

## Asynkron återuppringning

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

```json theme={null}
{
  "action": "generate",
  "prompt": "A horse running through a snowy forest",
  "duration": 5,
  "callback_url": "https://your-domain.com/callback/happyhorse"
}
```

Det omedelbart returnerade resultatet är följande:

```json theme={null}
{
  "task_id": "b8976e18-32dc-4718-9ed8-1ea090fcb6ea"
}
```

Om du endast vill polla och inte behöver en återanropning kan du också skicka in `"async": true` och sedan fråga efter uppgiftsresultatet via [HappyHorse Tasks API](https://platform.acedata.cloud/documents/happyhorse-tasks).

## Information om debitering

HappyHorse debiterar baserat på antalet sekunder i den utgående videon och upplösningen:

* `720P`: från cirka \$0.105 / sekund.
* `1080P`: från cirka \$0.18 / sekund.
* `video_edit`: debiteras utifrån den sammanlagda längden på indata- och utdata-videon. Den faktiska debiterbara längden baseras på statistiken efter att uppgiften har slutförts.

Misslyckade uppgifter debiteras inte och förbrukar inte heller den kostnadsfria kvoten.

## Felhantering

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

* `400`: Felaktiga begärandeparametrar, till exempel att action och model inte matchar, att `prompt` / `image_url` / `video_url` saknas eller att `duration` ligger utanför intervallet 3–15 sekunder.
* `401`: Autentiseringen misslyckades, token är ogiltig eller matchar inte API:t.
* `403`: Otillräckligt saldo, eller så har prompten avvisats eftersom den träffade innehållsgranskningen.
* `429`: Begäran sker för ofta och hastighetsbegränsning har utlösts. Försök igen senare.
* `500`: Internt serverfel eller genereringen misslyckades.


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