Google Veo3 Ultra

Le dernier modèle de génération vidéo de Google offrant un réalisme incroyable et une précision physique.

✓ Vidéo ultra-réaliste

✓ Précision physique

✓ Haute résolution

✓ Génération rapide

Authentification

Pour accéder à Google Veo3 via l'API Doitong, utilisez votre clé API Doitong. Incluez-la dans la mutation GraphQL ou dans les en-têtes de l'API REST.

Important: Gardez votre clé API Doitong en sécurité et ne l'exposez jamais dans le code côté client. Effectuez toujours vos appels API depuis votre serveur backend.
// GraphQL Header
{
  "Authorization": "Bearer YOUR_API_KEY"
}

// REST Header
"X-API-Key": "YOUR_API_KEY"

Démarrage rapide

Lancez-vous avec Veo-3 API en quelques minutes seulement. Suivez ces étapes simples pour générer votre premier text to video.

Étape 1 : Obtenir votre clé API

Inscrivez-vous sur Doitong et accédez à votre tableau de bord pour générer une clé API.

Étape 2 : Effectuer votre première requête

Utilisez l'un des exemples de code ci-dessous pour effectuer votre premier appel API.

curl -X POST https://api.doitong.com/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Idempotency-Key: unique-request-id-123" \
  -d '{
    "query": "mutation Generate($input: GenerateInput!) { generate(input: $input) { id status type provider url metadata creditCost } }",
    "variables": {
      "input": {
        "type": "VIDEO",
        "provider": "veo3",
        "input": {
          "text": "A serene landscape with mountains and a lake at sunset"
        },
        "options": {
          "duration": 5,
          "aspectRatio": "16:9"
        }
      }
    }
  }'
const response = await fetch('https://api.doitong.com/graphql', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY',
    'Idempotency-Key': 'unique-request-id-123'
  },
  body: JSON.stringify({
    query: `
      mutation Generate($input: GenerateInput!) {
        generate(input: $input) {
          id
          status
          type
          provider
          url
          metadata
          creditCost
        }
      }
    `,
    variables: {
      input: {
        type: 'VIDEO',
        provider: 'veo3',
        input: {
          text: 'A serene landscape with mountains and a lake at sunset'
        },
        options: {
          duration: 5,
          aspectRatio: '16:9'
        }
      }
    }
  })
});

const data = await response.json();
console.log('Result:', data.data.generate);
import requests
import json

url = "https://api.doitong.com/graphql"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_API_KEY"
}

query = """
mutation Generate($input: GenerateInput!) {
  generate(input: $input) {
    id
    status
    type
    provider
    url
    metadata
    creditCost
  }
}
"""

variables = {
    "input": {
        "type": "VIDEO",
        "provider": "veo3",
        "input": {
            "text": "A serene landscape with mountains and a lake at sunset"
        },
        "options": {
            "duration": 5,
            "aspectRatio": "16:9"
        }
    }
}

response = requests.post(url, json={
    "query": query,
    "variables": variables
}, headers=headers)

data = response.json()
print("Result:", data["data"]["generate"])
mutation Generate($input: GenerateInput!) {
  generate(input: $input) {
    id
    status
    type
    provider
    url
    metadata
    creditCost
    createdAt
  }
}

# Variables
{
  "input": {
    "type": "VIDEO",
    "provider": "veo3",
    "input": {
      "text": "A serene landscape with mountains and a lake at sunset"
    },
    "options": {
      "duration": 5,
      "aspectRatio": "16:9",
      "version": "veo-3",
      "quality": "high"
    }
  }
}

Tarification

Veo-3 API utilise un modèle de tarification basé sur des crédits. Les crédits sont consommés en fonction de la complexité et de la durée du contenu généré.

Fonctionnalité Crédits Description
Mode Standard 100-200 Crédits Vidéo de 5 à 10 secondes en qualité standard
Mode Pro 300-500 Crédits Vidéo de 5 à 10 secondes en qualité professionnelle

Points de terminaison API

Veo-3 API est disponible via notre point de terminaison GraphQL unifié.

Point de terminaison GraphQL

POST https://api.doitong.com/graphql

Point de terminaison REST

POST https://api.doitong.com/v1/text_to_video

Paramètres

Paramètres disponibles pour les requêtes Veo-3 API :

Paramètre Type Requis Description
service Chaîne Yes Identifiant du service: "veo3"
prompt Chaîne Yes Description textuelle de ce qu'il faut générer
duration Entier No Durée de la vidéo en secondes (par défaut : 5)
aspectRatio Chaîne No Format d'image : "16:9", "9:16", "1:1" (par défaut : "16:9")
version Chaîne No Model version: "veo-3"
webhookUrl Chaîne No URL pour recevoir les notifications de fin de génération

Format de réponse

Toutes les réponses de l'API suivent un format cohérent :

Réponse réussie

{
  "data": {
    "generatevideo": {
      "id": "abc123xyz",
      "status": "processing",
      "url": null,
      "webhookUrl": "https://your-webhook.com/callback",
      "createdAt": "2024-01-01T00:00:00Z"
    }
  }
}

Réponse terminée

{
  "data": {
    "generatevideo": {
      "id": "abc123xyz",
      "status": "completed",
      "url": "https://cdn.doitong.com/outputs/abc123xyz.mp4",
      "duration": 5,
      "createdAt": "2024-01-01T00:00:00Z"
    }
  }
}

Gestion des erreurs

L'API utilise des codes d'état HTTP standard et renvoie des messages d'erreur détaillés.

Codes d'erreur courants

Code d'état Type d'erreur Description
400 Bad Request Invalid parameters or malformed request
401 Unauthorized Missing or invalid API key
402 Payment Required Insufficient credits
429 Too Many Requests Rate limit exceeded
500 Internal Server Error Server error, please retry

Format de réponse d'erreur

{
  "errors": [
    {
      "message": "Insufficient credits for this operation",
      "extensions": {
        "code": "INSUFFICIENT_CREDITS",
        "creditsRequired": 100,
        "creditsAvailable": 50
      }
    }
  ]
}

Webhooks

Recevez des notifications en temps réel dès que la génération de votre text to video est terminée.

Configuration des webhooks

Include a <code>webhookUrl</code> parameter in your request to receive a POST notification when processing is complete.

Charge utile du webhook

{
  "id": "abc123xyz",
  "status": "completed",
  "url": "https://cdn.doitong.com/outputs/abc123xyz.mp4",
  "service": "veo3",
  "createdAt": "2024-01-01T00:00:00Z",
  "completedAt": "2024-01-01T00:01:00Z",
  "metadata": {
    "duration": 5,
    "width": 1920,
    "height": 1080
  }
}

Sécurité des webhooks

Toutes les requêtes de webhook incluent un en-tête de signature pour vérification :

X-Doitong-Signature: sha256=abc123...

Limites de débit

Pour garantir une utilisation équitable et la stabilité du système, les limites de débit suivantes s'appliquent :

Forfait Requêtes/Minute Tâches simultanées Limite quotidienne
Gratuit 10 1 100
Starter 30 3 1,000
Pro 60 10 10,000
Entreprise Sur mesure Sur mesure Illimité
En-têtes de limite de débit: Consultez les en-têtes de réponse pour connaître l'état actuel de vos limites :
  • X-RateLimit-Limit: Maximum requests per window
  • X-RateLimit-Remaining: Requests remaining
  • X-RateLimit-Reset: Window reset timestamp

Bonnes pratiques

1. Optimisez vos prompts

Rédigez des prompts clairs et descriptifs pour obtenir les meilleurs résultats :

  • Be specific about visual elements, style, and mood
  • Include details about lighting, camera angles, and composition
  • Avoid contradictory or impossible requests

2. Gérez le traitement asynchrone

La génération est asynchrone. Implémentez un système de polling ou des webhooks :

// Polling example
async function pollStatus(jobId) {
  let status = 'processing';
  while (status === 'processing') {
    await sleep(2000); // Wait 2 seconds
    const result = await checkJobStatus(jobId);
    status = result.status;
  }
  return result;
}

3. Récupération d'erreur

Implémentez une logique de tentative avec un backoff exponentiel :

async function retryWithBackoff(fn, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    try {
      return await fn();
    } catch (error) {
      if (i === maxRetries - 1) throw error;
      await sleep(Math.pow(2, i) * 1000);
    }
  }
}

4. Surveillez l'utilisation des crédits

Suivez votre consommation de crédits pour éviter toute interruption de service :

  • Check credit balance before large batch operations
  • Set up alerts for low credit thresholds
  • Implement credit-aware request queuing

Prêt à commencer ?

Rejoignez des milliers de développeurs qui utilisent Veo-3 API pour créer du contenu incroyable

Obtenir une clé API Voir les tarifs