لا تزال واجهات API للمطورين في المرحلة التجريبية وقد تتغير في أي وقت. في الوقت الحالي، هي أنسب للاختبار والتجربة الشخصية ولا يُنصح بعد باستخدامها في بيئات الإنتاج.
ساحة التجربة
يستبدل وجهًا متتبعًا في الفيديو المستهدف بوجه من صورة مرجعية. يتم الاكتشاف وتتبع معالم الوجه وتحليل النتيجة تلقائيًا.
POST /api/v1/video-face-swap/submit → /queryالوصول إلى API متاح للمشتركين فقط. يشترك الموقع وAPI في رصيد الاشتراك نفسه.
عرض الخططفهرس الوجه المتتبع المراد استبداله، بدءًا من الصفر.
فهرس الوجه المراد استخدامه من الصورة المرجعية، بدءًا من الصفر.
#!/usr/bin/env bash
set -euo pipefail
SUBMIT_RESPONSE="$(curl --fail-with-body --silent --show-error -X POST "https://vidmage.ai/api/v1/video-face-swap/submit" \
-H "Authorization: Bearer ${VIDMAGE_API_KEY}" \
-H "Content-Type: application/json" \
--data-raw '{
"targetVideoUrl": "https://vidmage.ai/assets/models/hailuo-ai-video-generator/skincare-ad.mp4",
"referenceFaceImageUrl": "https://vidmage.ai/assets/images/samples/smiling-man-sweater.webp"
}')"
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/video-face-swap/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