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": "videoretalk",
  "video_url": "https://example.com/speaker.mp4",
  "audio_url": "https://example.com/target-speech.wav"
}
'
{
  "created": 1775200000,
  "id": "task-unified-1775200000-xyz12345",
  "model": "videoretalk",
  "object": "video.generation.task",
  "progress": 0,
  "status": "pending",
  "task_info": {
    "can_cancel": false,
    "estimated_time": 90,
    "video_duration": 0
  },
  "type": "video",
  "usage": {
    "billing_rule": "per_second",
    "credits_reserved": 480,
    "user_group": "default"
  }
}

Autorisations

Authorization
string
header
requis

##Toutes les interfaces nécessitent une authentification par Bearer Token##

Obtenir une clé API :

Visitez la page de gestion des clés API pour obtenir votre clé API

Ajoutez ceci dans l'en-tête de la requête :

Authorization: Bearer YOUR_API_KEY

Corps

application/json
model
enum<string>
défaut:videoretalk
requis

Nom du modèle

Options disponibles:
videoretalk
Exemple:

"videoretalk"

video_url
string<uri>
requis

URL de la vidéo d'entrée contenant le personnage dont les mouvements labiaux doivent être remplacés

Exigences :

  • URL vidéo accessible depuis Internet
  • Formats : MP4, MOV et autres formats courants
  • La vidéo doit contenir un visage clairement visible
  • Durée recommandée : 2 à 300 secondes
Exemple:

"https://example.com/speaker.mp4"

audio_url
string<uri>
requis

URL de l'audio cible ; le personnage de la vidéo parlera selon cet audio

Exigences :

  • URL audio accessible depuis Internet
  • Formats : WAV, MP3, M4A et autres formats courants
  • De préférence, il doit s'agir d'une voix humaine parlée
Exemple:

"https://example.com/target-speech.wav"

ref_image_url
string<uri>

URL de l'image de référence du visage

Lorsque la vidéo contient plusieurs visages, utilisez cette image pour indiquer le visage cible dont les mouvements labiaux doivent être remplacés

Exigences :

  • L'image doit contenir le visage de face du personnage cible
  • Uniquement nécessaire lorsque la vidéo contient plusieurs visages
Exemple:

"https://example.com/target-person-face.jpg"

video_extension
boolean
défaut:false

Lorsque la durée de l'audio est supérieure à celle de la vidéo, indique si la vidéo doit être automatiquement étendue à la durée de l'audio

  • true : durée de sortie = durée de l'audio (la vidéo est automatiquement étendue)
  • false : durée de sortie = min(durée de la vidéo, durée de l'audio)
Exemple:

false

query_face_threshold
integer
défaut:170

Seuil de confiance pour la correspondance faciale

  • Plage : 120 à 200
  • Plus la valeur est basse, plus la correspondance est facile (risque de faux positifs)
  • Plus la valeur est haute, plus la correspondance est stricte (risque de non-correspondance)
  • Si l'erreur « aucun visage correspondant trouvé » apparaît, réduisez légèrement (par ex. 140)
  • Si un mauvais visage est trouvé, augmentez légèrement (par ex. 190)
Plage requise: 120 <= x <= 200
Exemple:

170

callback_url
string<uri>

URL de rappel HTTPS après la fin de la tâche

Déclenchement du rappel :

  • Déclenché lorsque la tâche est terminée (completed), échouée (failed) ou annulée (cancelled)
  • Envoyé après confirmation de la facturation

Restrictions de sécurité :

  • Uniquement le protocole HTTPS est pris en charge
  • Les rappels vers des adresses IP internes 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 dépasser 2048 caractères

Mécanisme de rappel :

  • Délai d'expiration : 10 secondes
  • Maximum 3 nouvelles tentatives en cas d'échec (à 1 s / 2 s / 4 s après l'échec respectivement)
  • Le format du corps de rappel est identique à celui retourné par l'interface de requête de tâche
  • Un code de statut 2xx de l'URL de rappel est considéré comme un succès ; tout autre code déclenche une nouvelle tentative
Exemple:

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

Réponse

Tâche de génération de portrait animé créée avec succès

created
integer

Horodatage de création de la tâche

Exemple:

1775200000

id
string

ID de la tâche

Exemple:

"task-unified-1775200000-xyz12345"

model
string

Nom du modèle réellement utilisé

Exemple:

"videoretalk"

object
enum<string>

Type spécifique de la tâche

Options disponibles:
video.generation.task
progress
integer

Pourcentage de progression de la tâche (0-100)

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

0

status
enum<string>

Statut de la tâche

StatutprogressDescription
pending0~10En attente de traitement
processing10~80En cours de traitement
completed100Terminé
failed0Échec
Options disponibles:
pending,
processing,
completed,
failed
Exemple:

"pending"

task_info
object

Informations détaillées sur la tâche vidéo

type
enum<string>

Type de sortie de la tâche

Options disponibles:
video
Exemple:

"video"

usage
object

Informations d'utilisation et de facturation