Les API pour développeurs sont encore en version bêta et peuvent changer à tout moment. À ce stade, elles conviennent davantage aux tests et expérimentations personnels et ne sont pas encore recommandées pour une utilisation en production.
Playground
Créez des vidéos de synchronisation labiale réalistes avec la technologie IA - faites parler n'importe quelle photo avec des mouvements de bouche parfaits.
POST /api/v1/lip-sync/submit → /queryL’accès à l’API est réservé aux abonnés. Le site et l’API utilisent le même solde de crédits.
Voir les offresParamètre de requête obligatoire. Respectez le type et les valeurs acceptées indiqués dans ce tableau.
Paramètre de requête facultatif. Respectez le type, la valeur par défaut et les valeurs acceptées indiqués dans ce tableau.
Paramètre de requête facultatif. Respectez le type, la valeur par défaut et les valeurs acceptées indiqués dans ce tableau.
Paramètre de requête facultatif. Respectez le type, la valeur par défaut et les valeurs acceptées indiqués dans ce tableau.
#!/usr/bin/env bash
set -euo pipefail
SUBMIT_RESPONSE="$(curl --fail-with-body --silent --show-error -X POST "https://vidmage.ai/api/v1/lip-sync/submit" \
-H "Authorization: Bearer ${VIDMAGE_API_KEY}" \
-H "Content-Type: application/json" \
--data-raw '{
"visualUrl": "https://vidmage.ai/assets/images/samples/blue-eyed-woman-sunlight.webp",
"inputType": "image"
}')"
TASK_ID="$(printf '%s' "$SUBMIT_RESPONSE" | jq -er '.["taskId"]')"
while true; do
QUERY_RESPONSE="$(curl --fail-with-body --silent --show-error -X POST "https://vidmage.ai/api/v1/lip-sync/query" \
-H "Authorization: Bearer ${VIDMAGE_API_KEY}" \
-H "Content-Type: application/json" \
--data-raw "{\"taskId\":\"${TASK_ID}\"}")"
STATUS="$(printf '%s' "$QUERY_RESPONSE" | jq -r '(.status // .data.status // "") | ascii_downcase')"
case "$STATUS" in
success|succeeded|completed)
printf '%s' "$QUERY_RESPONSE" | jq -r '(.result // .["videoUrl"] // .data["videoUrl"] // empty)'
break
;;
failed|error)
printf '%s' "$QUERY_RESPONSE" | jq -r '(.message // .error // .data.error // "Task failed")' >&2
exit 1
;;
esac
sleep 5
done