Par capacité

Vidéos

Les vidéos s'exécutent toujours sous forme de tâche : soumettez, puis revenez vérifier ou recevez un callback. Les clips plus longs et plus nets coûtent plus cher.

#1. Choisir un modèle

doubao-seedance-2.0-mini$0.02288 / requêteLimites et état

13 modèles en ligne pour cet usage. En changer modifie le code ci-dessous.

#2. Copier la requête

Remplacez YOUR_API_KEY par votre clé, puis exécutez la requête. Les options affichées sont celles que ce modèle accepte.

POSThttps://www.aisplice.store/v1/videosBearer API keyTâche asynchrone

OptionsSeules les options publiées pour ce modèle sont affichées.

# Requires curl and jq
API_KEY="${API_KEY:-YOUR_API_KEY}"

# 1. Submit once
SUBMITTED=$(curl --fail-with-body -sS https://www.aisplice.store/v1/videos \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: model-docs-$(date +%s)-$$" \\
  -d '{
  "model": "Seedance 2.0 Mini",
  "prompt": "A cinematic scene with careful composition",
  "duration": 5,
  "resolution": "720p",
  "size": "16:9",
  "metadata": {
    "generate_audio": true
  }
}')
TASK_ID=$(printf '%s' "$SUBMITTED" | jq -r '.task_id // .id // empty')
if [ -z "$TASK_ID" ]; then
  printf '%s\n' "$SUBMITTED" >&2
  exit 1
fi
echo "task_id=$TASK_ID"

# 2. Poll until terminal
while true; do
  STATUS_JSON=$(curl --fail-with-body -sS \
    "https://www.aisplice.store/v1/videos/$TASK_ID" \
    -H "Authorization: Bearer $API_KEY")
  STATUS=$(printf '%s' "$STATUS_JSON" | jq -r '.status // empty' | tr '[:upper:]' '[:lower:]')
  echo "status=$STATUS"
  case "$STATUS" in
    completed|succeeded|success) break ;;
    failed|failure|cancelled|canceled)
      printf '%s\n' "$STATUS_JSON" | jq .
      exit 1
      ;;
  esac
  sleep 5
done

# 3. Fetch the final result
curl --fail-with-body -sS \
  "https://www.aisplice.store/v1/videos/$TASK_ID/content" \
  -H "Authorization: Bearer $API_KEY" | jq .

Ce modèle exige des URL de médias publiques. Envoyez d'abord le fichier local, puis placez public_url dans la requête du modèle. Évitez les gros corps en Base64.

Lire le guide d'envoi

Tous les paramètres

Tous les champs acceptés par ce modèle, avec les valeurs autorisées.

model
stringobligatoire

Identifiant exact du modèle pour cette requête.

doubao-seedance-2.0-mini
prompt
stringobligatoire

Video prompt, up to 4000 characters; 500 or fewer recommended.

duration
integerfacultatif

Output seconds from 4 to 15.

resolution
stringfacultatif

Résolution de sortie demandée.

480p720p
size
stringfacultatif

Aspect ratio between 0.5 and 2.5.

16:99:161:14:33:421:9adaptive
images
string[]facultatif

Up to 9 public reference-image URLs, or exactly one first-frame image when image_tail is set.

metadata.video_urls
string[]facultatif

URL publiques HTTP(S) des vidéos sources. 3 éléments maximum.

Cycle de la réponse

Statut des tâches, états finaux et exemples de réponses de résultat.

Soumettre
{
  "id": "task_xxx",
  "task_id": "task_xxx",
  "object": "video",
  "model": "Seedance 2.0 Mini",
  "status": "queued"
}

En attente

queued · submitted · in_progress · processing

Succès

completed · succeeded · success

Échec

failed · failure · cancelled · canceled

Tous les champs : /v1/videos dans la référence API →

#3. Obtenir le résultat

L'appel de soumission répond immédiatement avec un task_id. Vérifiez la tâche toutes les quelques secondes jusqu'à ce que status vaille completed, ou transmettez webhook_url et nous vous appellerons une fois la tâche terminée.

GET https://www.aisplice.store/v1/videos/{task_id}

GET https://www.aisplice.store/v1/videos/{task_id}/content

La durée et la résolution déterminent le palier de prix. Une tâche en cours peut être annulée ; voir la référence API.

Facturé uniquement en cas de succès

Une tâche échouée ou annulée est remboursée automatiquement. Le journal des requêtes affiche le coût final de chaque tâche.

Valeurs de statut et interrogation →Recevoir un callback au lieu d'interroger →

#En cas de problème

  • 400 avec un nom de champ : cette option n'est pas acceptée par ce modèle ; utilisez les valeurs listées à l'étape 2.
  • Image ou vidéo de référence rejetée : il doit s'agir d'une URL publique que le modèle peut télécharger.
  • Contenu refusé par le modèle : reformulez le prompt ; les requêtes refusées ne sont pas facturées.
  • 402 : le solde ne couvre pas cette requête ; rechargez dans Portefeuille, puis réessayez.
  • 429 : ralentissez et réessayez après le nombre de secondes indiqué par Retry-After.
  • 503 model_not_found : le nom du modèle est incorrect ou le modèle est hors ligne ; choisissez-en un à l'étape 1.

Rechercher une autre erreur →

#Première et dernière images, images et vidéos de référence

Les modèles qui les acceptent affichent les champs à l'étape 2 : première image, dernière image, images de référence ou vidéo de référence. Transmettez des URL publiques ; envoyez d'abord les fichiers locaux.

Comment envoyer un fichier local →

L'intégrer à votre produitLes options à montrer en premier à vos utilisateurs, et celles à garder pour plus tard.
Les options à montrer en premier à vos utilisateursCommencez par le prompt et un seul réglage de prix ; ajoutez le reste une fois le parcours de base fonctionnel.+

Intention créative

Les champs comme prompt ont leur place dans l'interface, car l'utilisateur comprend directement le résultat qu'ils modifient.

Multiplicateur de coût

Les champs comme duration, resolution, size et count ne doivent être introduits que lorsque la tarification est déjà explicable.

Changement de mode

Les champs comme image, mask ou les ID de continuation changent le workflow lui-même et ne doivent apparaître que dans des modes dédiés.

Mécanique interne

Les champs comme webhook_secret s'adressent aux intégrateurs, pas aux créateurs au quotidien : gardez-les hors de l'interface par défaut.

  • prompt
    Quand l'exposer
    Toujours. Il définit la scène ou la direction du mouvement.
    Valeur par défaut recommandée
    Obligatoire dans l'interface.
    Pourquoi c'est important
    Sans lui, les utilisateurs ne peuvent pas orienter l'intention du clip.
  • image / images
    Quand l'exposer
    À exposer uniquement pour les produits basés sur une référence ou image vers vidéo.
    Valeur par défaut recommandée
    Masquer dans les parcours avec prompt seul.
    Pourquoi c'est important
    Ce paramètre change le mode de création et doit relever d'un choix produit délibéré.
  • duration
    Quand l'exposer
    À exposer une fois que le parcours asynchrone de base est stable et que la tarification est visible.
    Valeur par défaut recommandée
    Commencez par la durée la plus courte prise en charge.
    Pourquoi c'est important
    C'est l'un des principaux multiplicateurs de coût et de latence en génération vidéo.
  • resolution
    Quand l'exposer
    À exposer lorsque les clients comparent explicitement des sorties 720p, 1080p ou 4K.
    Valeur par défaut recommandée
    Choisissez une résolution recommandée côté serveur.
    Pourquoi c'est important
    Une résolution plus élevée augmente le coût, le temps d'attente et le risque d'échec.
  • webhook_url / webhook_secret
    Quand l'exposer
    À exposer uniquement aux intégrateurs backend, pas aux utilisateurs finaux ordinaires.
    Valeur par défaut recommandée
    Privilégiez l'interrogation régulière dans les produits avec interface utilisateur.
    Pourquoi c'est important
    Ils relèvent de l'intégration système, pas de la créativité de l'utilisateur final : ils doivent rester hors des réglages visibles par les utilisateurs.
recommended-rollout.txt
Phase 1
- prompt
- one size or one duration default
- submit -> poll -> content

Phase 2
- one quality or resolution selector
- clear pricing hint

Phase 3
- advanced controls such as reference media, continuation, webhook, or vendor-specific tuning

Une seule source de vérité pour les résultats

Quand une tâche se termine, alignez votre application sur l'URL de plateforme renvoyée par /content. Les détails du fournisseur en amont restent masqués et la relecture de l'historique reste stable.

Toujours bloqué ?

Envoyez-nous l'ID de requête ou le message d'erreur, et nous examinerons le problème.