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

[API](https://ailoot.ai/docs/fr-ch/) 

# Vidéo et musique

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

Génération de vidéos et de musique : la requête crée une tâche, dont le résultat est récupéré par son identifiant.

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

Vidéo et musique

```bash
# Conservez le Request ID : l’assistance l’utilise pour retrouver votre requête.
# Créez la tâche une seule fois ; la boucle ci-dessous consulte uniquement son état.
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":"un lac calme","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=""
# Cette boucle consulte uniquement la tâche d’origine. Elle ne renvoie jamais la requête de création.
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 reste in_progress) : le résultat est en cours de vérification. Arrêtez-vous ; ne recréez jamais la tâche.
  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 ou tout autre état : affichez-le et arrêtez-vous. Ne recréez jamais la tâche.
    *) 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
# Après un dépassement de délai lors de la création, vérifiez le Request ID dans votre historique d’utilisation avant de relancer ce script.
```

```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": "Piano et violoncelle apaisants, sans voix"}' 
```

Réponse · abrégée

```json
// L’identifiant de la tâche se trouve dans le champ id ou request_id
{ "id": "…", … }

// Le format dépend du modèle : reprenez l’identifiant
// tel quel dans la réponse à la création.
```

## Authentification

| Paramètre | Type | Obligatoire | Description |
| --- | --- | --- | --- |
| `Authorization` | header | obligatoire | Clé au format `Bearer sk-…`. Les en-têtes suivants conviennent également : `x-api-key` ou `x-goog-api-key`. |

## Vidéo : corps de la requête

| Paramètre | Type | Obligatoire | Description |
| --- | --- | --- | --- |
| `model` | string | obligatoire | Modèle vidéo : `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 | obligatoire | Description de la vidéo. |
| `duration / seconds` | integer / string | facultatif | Selon la famille : Grok 1–15 secondes, MiniMax 6/10 en 768P ou 6 en 1080P, HappyHorse 3–15 ; Google Omni 4/6/8/10. Ne réutilisez pas le champ d’une famille pour une autre. |
| `resolution / size` | string | facultatif | Grok : 480p/720p/1080p (1080p pour video-1.5), ou size 1280x720/720x1280/1920x1080/1080x1920. MiniMax : 768P/1080P. HappyHorse : 480P/720P/1080P. Google Omni : 360p/720p. |
| `image / first_frame_image / image_urls` | string / array | facultatif | Les champs des images sources dépendent de la famille et du mode. MiniMax Fast exige first\_frame\_image. HappyHorse t2v n’utilise pas images ; i2v accepte exactement une image sans ratio ; r2v accepte 1–9 images. |

La réponse contient l’identifiant de la tâche (champ `id` ou `request_id`). Utilisez-le tel quel, sans l’analyser : son format dépend du modèle. Statut et fichier terminé :

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

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

Les mêmes adresses fonctionnent aussi avec le préfixe `/v1/videos/generations/{id}`. Le statut d’une tâche terminée et les champs de la réponse dépendent du modèle : fiez-vous au champ de statut et récupérez le fichier via `/content`.

## Création → statut → téléchargement

Conservez la réponse de création et son Request ID. Pour MiniMax/HappyHorse, le résultat est prêt lorsque le statut est `status: completed`, et la réponse contient `content_url`, `data[]` et les données usage. Pour Grok, le statut est `status: done` avec `video.url`. Google Omni renvoie 202 queued, puis in\_progress avec Retry-After, completed ou partial/content\_revoked. Ne considérez pas toute réponse 200 comme la confirmation que la vidéo est prête. Si la réponse de statut contient `result_pending_check: true` (`status` alors que `in_progress`), le résultat est en cours de vérification. Ne recréez pas la tâche : vérifiez-la plus tard via GET /v1/videos/{id} ou contactez l’assistance en indiquant le Request ID.

`/content` peut renvoyer directement un MP4 ou une redirection vers un fichier à URL signée. Si la réponse contient plusieurs résultats dans `data[]`, enregistrez-les tous : chaque résultat livré est facturé. Il est impossible d’annuler ou de supprimer une tâche vidéo via l’API. Supprimer le fichier terminé en bloque l’accès, sans annuler la génération.

La facturation se fait par seconde de vidéo terminée à la résolution choisie, ou par vidéo, selon le catalogue. Le coût total est réservé lors de la création de la tâche.

## Musique

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

| Paramètre | Type | Obligatoire | Description |
| --- | --- | --- | --- |
| `model` | string | obligatoire | `google/lyria`, `google/lyria-3-clip-preview`. |
| `prompt` | string | obligatoire | Description du morceau : genre, instruments, ambiance. |

Dans la réponse, `data[]` contient les liens vers les clips terminés. Un même appel peut produire plusieurs clips ; chaque clip livré est facturé.

Ne renvoyez pas une requête vidéo ou musique si la connexion a été interrompue : la tâche peut déjà avoir démarré. Vérifiez d’abord son statut à l’aide de son identifiant ou contactez l’assistance en indiquant le Request ID.

Encore des questions ? Envoyez le Request ID et une description : nous vous aiderons à l’analyser.[Contacter l’assistance](mailto:support@ailoot.ai)

## Ailoot · L’entreprise et son portefeuille de projets





Ailoot s’appuie sur une expérience opérationnelle éprouvée, une large clientèle, un service stable et un suivi continu des KPI.





L’entreprise et son portefeuille de projets : des millions de clients ; des ventes qui se chiffrent en milliards chaque mois.





Ailoot met cette expérience opérationnelle au service de l’accès API aux fonctions d’IA dans les produits des clients, leurs agents, applications et automatisations.
