UlazAI API Documentatie
API de génération vidéo Sora 2
Génération de vidéos professionnelles avec le modèle Sora 2 d'OpenAI - Transformez des invites textuelles ou des images en vidéos IA de haute qualité.
🎉 Spécial lancement de Sora 2 : Recevez 20 % de crédits bonus sur tous vos achats ! Durée limitée seulement.
✨ Fonctions Sora 2
✅ Texte vers vidéo génération
✅ Image vers vidéo animation
✅ Vidéos de 10 secondes à 24 ips
✅ Résolution 1080p Sortie
✅ Plusieurs formats d'image (16:9, 9:16, 1:1)
✅ Traitement rapide (~2-3 minutes)
✅ Stockage R2 automatique avec CDN
✅ Notifications par e-mail une fois terminé
/api/v1/sora/generate/text-to-video/
Générer une vidéo à partir de texte
Créez une vidéo de 10 secondes à partir d'une invite de texte avec Sora 2.
Corps de la demande
{
"prompt": "Un paysage de montagne serein au lever du soleil avec des oiseaux qui volent",
"aspect_ratio": "paysage", // Options : "paysage", "portrait", "carré"
"qualité": "standard" // Options : "standard", "élevé"
}
Paramètres
rapidement * (chaîne)
Description textuelle de la vidéo à générer. 5 000 caractères maximum. Soyez descriptif pour de meilleurs résultats.
rapport_aspect (chaîne)
Rapport hauteur/largeur de la vidéo. Possibilités : paysage (16:9), portrait (9:16), carré (1:1). Standard: paysage
qualité (chaîne)
Préréglage de qualité. Possibilités : standard, haut. Une qualité élevée nécessite plus de temps de traitement. Standard: standard
prompt_directory_optin (booléen) 💰 -10 CRÉDITS
Partagez votre vidéo sur notre répertoire d'invites public et recevez 10 crédits de réduction! Standard: vrai
Réponse réussie (201)
{
"succès": vrai,
"données": {
"task_id": "sra_2_1234567890abcdef",
"statut": "traitement",
"estimated_completion": "2-3 minutes",
"crédits_charged": 80,
"crédits_remaining": 920,
"webhook_url": "https://ulazai.com/api/v1/sora/status/sra_2_1234567890abcdef/",
"message": "La génération de vidéo Sora 2 a démarré avec succès"
}
}
exemple de boucle
curl -X POST https://ulazai.com/api/v1/sora/generate/text-to-video/ \
-H "Autorisation : Jeton YOUR_API_KEY" \
-H "Type de contenu : application/json" \
-d '{
"prompt": "Un paysage de montagne serein au lever du soleil avec des oiseaux volant dans le ciel",
"aspect_ratio": "paysage",
"qualité": "standard"
}'
/api/v1/sora/generate/image-to-video/
Générer une vidéo à partir d'une image
Animez une image statique dans une vidéo de 10 secondes avec Sora 2.
Corps de la demande
{
"image_url": "https://exemple.com/votre-image.jpg",
"prompt": "La caméra zoome lentement pendant que le personnage se tourne et sourit",
"aspect_ratio": "paysage",
"qualité": "standard"
}
Paramètres
image_url * (chaîne)
URL de l'image source à animer. Doit être accessible au public. Formats pris en charge : JPG, PNG, WebP.
rapidement * (chaîne)
Description de la façon d'animer l'image. 5 000 caractères maximum.
rapport_aspect (chaîne)
Doit correspondre au rapport hauteur/largeur de l’image source pour de meilleurs résultats.
qualité (chaîne)
Préréglage de qualité. Standard: standard
prompt_directory_optin (booléen) 💰 -10 CRÉDITS
Partagez votre vidéo sur notre répertoire d'invites public et recevez 10 crédits de réduction! Standard: vrai
/api/v1/sora/status/{task_id}/
Vérifier l'état de la génération
Obtenez l'état actuel et le résultat d'une tâche de génération vidéo Sora.
Réponse des États
Traitement
{
"succès": vrai,
"données": {
"task_id": "sra_2_1234567890abcdef",
"statut": "traitement",
"progrès": 45,
"estimated_completion": "1-2 minutes"
}
}
Succès
{
"succès": vrai,
"données": {
"task_id": "sra_2_1234567890abcdef",
"statut": "succès",
"video_url": "https://cdn.ulazai.com/sora/videos/sra_2_1234567890abcdef.mp4",
"thumbnail_url": "https://cdn.ulazai.com/sora/thumbnails/sra_2_1234567890abcdef.jpg",
"durée": 10,
"résolution": "1920x1080",
"file_size": "15,2 Mo",
"created_at": "2025-01-03T10:15:30Z"
}
}
Échoué
{
"succès": faux,
"error": "La génération vidéo a échoué",
"error_details": "Violation des règles de contenu détectée dans l'invite",
"crédits_refunded": 80
}
exemple de boucle
curl -X GET https://ulazai.com/api/v1/sora/status/sra_2_1234567890abcdef/ \
-H "Autorisation : jeton YOUR_API_KEY"
💰 Prix Sora 2
Texte vers vidéo
80 crédits
Par vidéo de 10 secondes
• Résolution 1080p
• Tous les formats d'image
• Traitement de 2 à 3 minutes
Image vers vidéo
80 crédits
Par animation de 10 secondes
• Animer chaque image
• Indices de mouvement personnalisés
• Traitement de 2 à 3 minutes
💡 Exemple: 25 € = 2.500 crédits ≈ 31 vidéos Sora
📚 Bonnes pratiques
Directives rapides
- Soyez précis sur les mouvements de la caméra (panoramique, zoom, inclinaison)
- Décrire l'éclairage et l'ambiance
- Comprend les actions et expressions des personnages
- Préciser le timing des moments importants
- Évitez les personnages ou les marques protégées par le droit d'auteur
Conseils image en vidéo
- Utilisez des images sources de haute qualité (min. 1024px)
- Ajustez le rapport hauteur/largeur pour éviter le recadrage
- Décrire des mouvements réalistes pour la scène
- Pensez à la physique et au mouvement naturel
Intégration de webhooks
- Les vidéos sont automatiquement stockées dans R2 avec livraison CDN
- Notifications par e-mail envoyées lorsque la génération est terminée
- Vérifiez le point de terminaison de santé pour les mises à jour toutes les 30 secondes
- Les générations ratées remboursent automatiquement les crédits
⚠️ Codes d'erreur
400
Paramètres de requête invalides ou invite trop longue
401
Clé API invalide ou cassée
402
Crédits insuffisants
422
Violation de la politique de contenu
429
Limite de débit dépassée (max. 10 simultanément)
500
Erreur de serveur - les crédits sont remboursés
💻 Exemples de codes
Python
demandes d'importation
heure d'importation
API_KEY = "VOTRE_API_KEY"
BASE_URL = "https://ulazai.com/api/v1"
# Vidéo de génération
réponse = requêtes.post(
f"{BASE_URL}/sora/generate/text-to-video/",
headers={"Autorisation": f"Jeton {API_KEY}"},
json={
"prompt": "Un magnifique coucher de soleil sur l'océan avec des vagues",
"aspect_ratio": "paysage",
"qualité": "standard"
}
)
si réponse.status_code == 201 :
task_id = réponse.json()["data"]["task_id"]
# Sondage sur le statut
tandis que Vrai :
status_response = requêtes.get(
f"{BASE_URL}/sora/status/{task_id}/",
headers={"Autorisation": f"Jeton {API_KEY}"}
)
status_data = status_response.json()["data"]
if status_data["status"] == "succès":
print(f"Claque vidéo : {status_data['video_url']}")
pause
elif status_data["status"] == "échec":
print("Génération erronée")
pause
time.sleep(30) # Attendez 30 secondes pour le prochain contrôle
JavaScript (Node.js)
const axios = require('axios');
const API_KEY = 'VOTRE_API_KEY';
const BASE_URL = 'https://ulazai.com/api/v1';
fonction asynchrone generateSoraVideo() {
essayez {
// Générer une vidéo
réponse const = attendre axios.post (
`${BASE_URL}/sora/generate/text-to-video/`,
{
invite : "Un magnifique coucher de soleil sur l'océan avec des vagues",
aspect_ratio : 'paysage',
qualité : 'standard'
},
{
en-têtes : { 'Autorisation' : `Token ${API_KEY}` }
}
);
const taskId = réponse.data.data.task_id ;
console.log(`Génération de démarrage : ${taskId}`);
// Sondage pour le statut
const checkStatus = async() => {
const statusResponse = attendre axios.get(
`${BASE_URL}/sora/status/${taskId}/`,
{ en-têtes : { 'Autorisation' : `Jeton ${API_KEY}` } }
);
const status = statusResponse.data.data.status;
if (statut === 'succès') {
console.log(`Vidéo prête : ${statusResponse.data.data.video_url}`);
} else if (statut === 'échec') {
console.log('Échec de la génération');
} autre {
setTimeout(checkStatus, 30000); // Vérifiez à nouveau dans 30 secondes
}
} ;
setTimeout(checkStatus, 30000);
} attraper (erreur) {
console.error('Erreur :', erreur.response?.data || erreur.message);
}
}
générerSoraVideo();
🚀 Prêt à vous lancer ?
🎉 Durée limitée : obtenez 20 % de crédits bonus sur tous les achats !