Passer au contenu principal
POST
/
v1
/
videos
/
generations
curl --request POST \
  --url https://api.evolink.ai/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "model": "seedance-2.0-fast-image-to-video",
  "prompt": "The camera slowly zooms in, the scene gradually comes to life",
  "image_urls": [
    "https://example.com/first-frame.jpg"
  ],
  "duration": 5,
  "aspect_ratio": "adaptive"
}
'
{
  "created": 1761313744,
  "id": "task-unified-1774857405-abc123",
  "model": "seedance-2.0-fast-image-to-video",
  "object": "video.generation.task",
  "progress": 0,
  "status": "pending",
  "task_info": {
    "can_cancel": true,
    "estimated_time": 165,
    "video_duration": 8
  },
  "type": "video",
  "usage": {
    "billing_rule": "per_second",
    "credits_reserved": 50,
    "user_group": "default"
  }
}

Autorisations

Authorization
string
header
requis

Toutes les interfaces necessitent une authentification par Bearer Token

Obtenir une cle API :

Visitez la Page de gestion des cles API pour obtenir votre cle API

Ajoutez dans l'en-tete de la requete :

Authorization: Bearer YOUR_API_KEY

Corps

application/json
model
enum<string>
défaut:seedance-2.0-fast-image-to-video
requis

Nom du modele de generation video

Options disponibles:
seedance-2.0-fast-image-to-video
Exemple:

"seedance-2.0-fast-image-to-video"

prompt
string
requis

Prompt textuel decrivant la video souhaitee. Prend en charge le chinois et l'anglais, il est recommande de ne pas depasser 500 caracteres en chinois ou 1000 mots en anglais

Remarque :

  • Ce modele ne prend pas en charge les entrees video_urls, audio_urls
Exemple:

"The camera slowly zooms in, the scene gradually comes to life"

image_urls
string<uri>[]
requis

Tableau d'URLs d'images, 1 a 2 images

Nombre d'images et comportement :

Nombre d'imagesComportementRole
1 imageVideo a partir de la premiere imageAutomatiquement defini comme first_frame
2 imagesVideo avec images de debut et de fin1ere image → first_frame, 2eme image → last_frame

Exigences pour les images :

  • Formats pris en charge : .jpeg, .png, .webp, .bmp, .tiff, .gif
  • Rapport d'aspect (largeur/hauteur) : 0.4 a 2.5
  • Dimensions en pixels : 300 a 6000 px
  • Taille maximale par image : 30 Mo
  • Taille totale du corps de requete ne depassant pas 64 Mo, ne pas utiliser l'encodage Base64 pour les fichiers volumineux
  • Lors de l'envoi d'images de debut et de fin, les deux images peuvent etre identiques. En cas de rapport d'aspect different, la premiere image prevaut et la derniere image est automatiquement recadree
  • Les URLs d'images doivent etre directement accessibles par le serveur
Required array length: 1 - 2 elements
Exemple:
["https://example.com/first-frame.jpg"]
duration
integer
défaut:5

Duree de la video (secondes), par defaut 5 secondes

Details :

  • Prend en charge toute valeur entiere entre 4 et 15 secondes
  • La duree est directement liee a la facturation
Plage requise: 4 <= x <= 15
Exemple:

5

quality
enum<string>
défaut:720p

Resolution video, par defaut 720p

Valeurs possibles :

  • 480p : resolution inferieure, prix reduit
  • 720p : resolution standard, valeur par defaut
Options disponibles:
480p,
720p
Exemple:

"720p"

aspect_ratio
enum<string>
défaut:16:9

Rapport d'aspect de la video, par defaut 16:9

Valeurs possibles :

  • 16:9 (paysage), 9:16 (portrait), 1:1 (carre), 4:3, 3:4, 21:9 (ultra-large)
  • adaptive : selectionne automatiquement le rapport d'aspect le plus proche en fonction de la premiere image

Pixels correspondants par resolution :

Rapport d'aspect480p720p
16:9864×4961280×720
4:3752×5601112×834
1:1640×640960×960
3:4560×752834×1112
9:16496×864720×1280
21:9992×4321470×630
Options disponibles:
16:9,
9:16,
1:1,
4:3,
3:4,
21:9,
adaptive
Exemple:

"adaptive"

generate_audio
boolean
défaut:true

Generer ou non un audio synchronise, par defaut true

Valeurs possibles :

  • true : la video inclut un audio synchronise, sans frais supplementaires
  • false : video muette en sortie
Exemple:

true

callback_url
string<uri>

URL de rappel HTTPS apres l'achevement de la tache

Declenchement du rappel :

  • Declenche lorsque la tache est terminee (completed), echouee (failed) ou annulee (cancelled)
  • Envoye apres la confirmation de la facturation

Restrictions de securite :

  • Seul le protocole HTTPS est pris en charge
  • Les rappels vers les adresses IP privees sont interdits (127.0.0.1, 10.x.x.x, 172.16-31.x.x, 192.168.x.x, etc.)
  • La longueur de l'URL ne doit pas depasser 2048 caracteres

Mecanisme de rappel :

  • Delai d'expiration : 10 secondes
  • Jusqu'a 3 tentatives apres un echec (respectivement 1/2/4 secondes apres l'echec)
  • Le format du corps de reponse du rappel est identique a celui de l'interface de consultation de tache
  • Un code de statut 2xx est considere comme un succes, les autres codes declenchent une nouvelle tentative
Exemple:

"https://your-domain.com/webhooks/video-task-completed"

Réponse

Tache de generation video creee avec succes

created
integer

Horodatage de creation de la tache

Exemple:

1761313744

id
string

ID de la tache

Exemple:

"task-unified-1774857405-abc123"

model
string

Nom du modele effectivement utilise

Exemple:

"seedance-2.0-fast-image-to-video"

object
enum<string>

Type specifique de la tache

Options disponibles:
video.generation.task
progress
integer

Pourcentage de progression de la tache (0-100)

Plage requise: 0 <= x <= 100
Exemple:

0

status
enum<string>

Statut de la tache

Options disponibles:
pending,
processing,
completed,
failed
Exemple:

"pending"

task_info
object

Informations detaillees de la tache video

type
enum<string>

Type de sortie de la tache

Options disponibles:
text,
image,
audio,
video
Exemple:

"video"

usage
object

Informations d'utilisation et de facturation