Passer au contenu principal
Cet article présentera une documentation sur l’intégration de l’API Midjourney Videos, qui permet de générer des vidéos officielles de Midjourney en entrant des paramètres personnalisés.

Processus de demande

Pour utiliser l’API, vous devez d’abord vous rendre sur la page Midjourney Videos API pour demander le service correspondant. Une fois sur la page, cliquez sur le bouton « Acquire », comme indiqué dans l’image ci-dessous : Si vous n’êtes pas encore connecté ou inscrit, vous serez automatiquement redirigé vers la page de connexion pour vous inviter à vous inscrire et à vous connecter. Après vous être connecté ou inscrit, vous serez automatiquement renvoyé à la page actuelle. Lors de la première demande, un quota gratuit sera offert, vous permettant d’utiliser cette API gratuitement.

Utilisation de base

Tout d’abord, comprenons la méthode d’utilisation de base, qui consiste à entrer le mot-clé prompt, l’action action, et un tableau d’images de référence pour la première et la dernière image image_url, afin d’obtenir le résultat traité. Vous devez d’abord transmettre un champ action, dont la valeur est generate. Cela comprend principalement deux types d’actions : générer une vidéo (generate), étendre une vidéo (extend), les détails sont les suivants :

Nous pouvons voir ici que nous avons défini les en-têtes de la requête, y compris :
  • accept : le format de réponse souhaité, ici rempli avec application/json, c’est-à-dire au format JSON.
  • authorization : la clé d’API pour appeler l’API, que vous pouvez sélectionner directement après la demande.
De plus, nous avons défini le corps de la requête, y compris :
  • image_url : le lien de l’image de référence pour la première image de la vidéo générée.
  • end_image_url : optionnel, spécifie l’image de référence pour la dernière image de la vidéo générée.
  • video_id : nécessaire pour étendre la vidéo, spécifiez l’ID de la vidéo.
  • video_index : nécessaire pour spécifier quelle vidéo parmi celles désignées par video_id, l’index commence à 0, la valeur par défaut est 0.
  • action : l’action de cette tâche de génération de vidéo, comprenant principalement deux actions : générer une vidéo (generate), étendre une vidéo (extend).
  • prompt : le mot-clé.
  • mode : le mode de vitesse de génération de vidéo, par défaut rapide.
  • resolution : la clarté de la vidéo, par défaut 720p.
  • loop : si la vidéo générée doit être en boucle, par défaut faux.
  • callback_url : l’URL pour laquelle les résultats doivent être rappelés.
Après avoir fait votre sélection, vous pouvez voir que le code correspondant a également été généré à droite, comme indiqué dans l’image ci-dessous :

Cliquez sur le bouton « Try » pour effectuer un test, comme indiqué ci-dessus, et nous avons obtenu le résultat suivant :
{
  "image_url": "https://storage.fonedis.cc/upload_1751816808164156352.png",
  "image_width": 560,
  "image_height": 688,
  "progress": 100,
  "video_id": "1751816807896311",
  "video_urls": [
    "https://storage.fonedis.cc//video/1c67c36c-8177-4f19-ad72-1dc1567265a6/0_0.mp4",
    "https://storage.fonedis.cc//video/1c67c36c-8177-4f19-ad72-1dc1567265a6/0_1.mp4",
    "https://storage.fonedis.cc//video/1c67c36c-8177-4f19-ad72-1dc1567265a6/0_2.mp4",
    "https://storage.fonedis.cc//video/1c67c36c-8177-4f19-ad72-1dc1567265a6/0_3.mp4"
  ],
  "task_id": "037955e0-deee-4050-baa8-1416300d67e2",
  "success": true
}
Le résultat de retour contient plusieurs champs, décrits comme suit :
  • success, l’état de la tâche de génération de vidéo à ce moment.
  • task_id, l’ID de la tâche de génération de vidéo à ce moment.
  • image_url, l’image de couverture de la tâche de génération de vidéo à ce moment.
  • image_width, la largeur de l’image de couverture de la tâche de génération de vidéo à ce moment.
  • image_height, la hauteur de l’image de couverture de la tâche de génération de vidéo à ce moment.
  • video_id, l’ID de la vidéo de la tâche de génération de vidéo à ce moment.
  • video_urls, un tableau de liens vidéo de la tâche de génération de vidéo à ce moment.
Nous pouvons voir que nous avons obtenu des informations vidéo satisfaisantes, nous n’avons qu’à récupérer la vidéo Midjourney générée à partir de l’adresse du lien vidéo dans video_urls. De plus, si vous souhaitez générer le code d’intégration correspondant, vous pouvez le copier directement, par exemple, le code CURL est le suivant :
curl -X POST 'https://api.acedata.cloud/midjourney/videos' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "generate",
  "prompt": "A cat sitting on a table",
  "image_url": "https://cdn.acedata.cloud/jgo1cw.jpg"
}'

Fonctionnalité d’extension de vidéo

Si vous souhaitez continuer à générer une vidéo Kling déjà créée, vous pouvez définir le paramètre action sur extend, et entrer l’ID de la vidéo que vous souhaitez continuer à générer. L’ID de la vidéo peut être obtenu selon l’utilisation de base. À ce moment-là, vous pouvez voir que l’ID de la vidéo ci-dessus est :
"video_id": "1751816807896311"
Remarque : ici, l’video_id dans la vidéo est l’ID de la vidéo après génération. Si vous ne savez pas comment générer une vidéo, vous pouvez vous référer à l’utilisation de base ci-dessus pour générer une vidéo.
Ensuite, vous devez remplir les mots-clés nécessaires pour personnaliser la génération de la vidéo que vous souhaitez étendre, vous pouvez spécifier les éléments suivants :
  • video_index : sélectionnez l’index de la vidéo à étendre, cet index provient des video_urls générés ci-dessus, l’index commence à 0, la valeur par défaut est 0.
  • video_id : l’ID de la vidéo spécifiée pour l’extension.
  • action : l’action de cette extension de vidéo, qui est extend.
  • prompt : le mot-clé.
Un exemple de remplissage est le suivant :

Après avoir rempli, le code suivant a été généré automatiquement :

Le code Python correspondant :
import requests

url = "https://api.acedata.cloud/midjourney/videos"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "action": "extend",
    "prompt": "A cat sitting on a table",
    "video_id": "1751816807896311",
    "video_index": 1
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Cliquez sur exécuter, et vous verrez un résultat, comme suit :
{
    "image_url": "https://storage.fonedis.cc/upload_1751817471047011172.png",
    "image_width": 560,
    "image_height": 688,
    "progress": 100,
    "video_id": "1751818094559027",
    "video_urls": [
        "https://storage.fonedis.cc//video/a4bd2f43-b925-462d-9725-8aef98403133/0_0.mp4",
        "https://storage.fonedis.cc//video/a4bd2f43-b925-462d-9725-8aef98403133/0_1.mp4",
        "https://storage.fonedis.cc//video/a4bd2f43-b925-462d-9725-8aef98403133/0_2.mp4",
        "https://storage.fonedis.cc//video/a4bd2f43-b925-462d-9725-8aef98403133/0_3.mp4"
    ],
    "task_id": "da3bdcd0-9c21-4b40-877a-2c36e5f479e5",
    "success": true
}
On peut voir que le contenu du résultat est cohérent avec le texte précédent, ce qui permet de réaliser la fonction d’extension vidéo.

Callback asynchrone

Étant donné que le temps de génération de l’API Midjourney Videos est relativement long, environ 1 à 2 minutes, si l’API ne répond pas pendant une longue période, la requête HTTP maintiendra la connexion, entraînant une consommation supplémentaire de ressources système. C’est pourquoi cette API propose également un support de callback asynchrone. Le processus global est le suivant : lorsque le client initie une requête, il spécifie un champ callback_url supplémentaire. Après que le client a lancé la requête API, l’API renverra immédiatement un résultat contenant un champ d’information task_id, représentant l’ID de la tâche actuelle. Lorsque la tâche est terminée, le résultat de la vidéo générée sera envoyé au callback_url spécifié par le client sous forme de POST JSON, incluant également le champ task_id, permettant ainsi de relier le résultat de la tâche par ID. Voyons comment procéder à travers un exemple. Tout d’abord, le callback Webhook est un service capable de recevoir des requêtes HTTP, les développeurs doivent le remplacer par l’URL de leur propre serveur HTTP. Ici, pour des raisons de démonstration, nous utilisons un site Web de Webhook public https://webhook.site/, en ouvrant ce site, vous obtiendrez une URL Webhook, comme illustré ci-dessous :

Copiez cette URL, elle peut être utilisée comme Webhook, l’exemple ici est https://webhook.site/556e6971-b41f-4fa8-9151-6e91acd0399f. Ensuite, nous pouvons définir le champ callback_url sur l’URL Webhook ci-dessus, tout en remplissant les paramètres correspondants, le contenu spécifique est illustré ci-dessous :

En cliquant sur exécuter, vous constaterez que vous obtiendrez immédiatement un résultat, comme suit :
{
  "task_id": "b726a27a-f379-4d91-b569-cfe4b7b299ee"
}
Après un moment, nous pouvons observer le résultat de la vidéo générée sur https://webhook.site/556e6971-b41f-4fa8-9151-6e91acd0399f, comme illustré ci-dessous :

Le contenu est le suivant :
{
  "image_url": "https://storage.fonedis.cc/upload_1751818513244368774.png",
  "image_width": 560,
  "image_height": 688,
  "progress": 100,
  "video_id": "1751818512924054",
  "video_urls": [
    "https://storage.fonedis.cc//video/9ff3783e-bcf6-4f11-b738-09aa52318e6e/0_0.mp4",
    "https://storage.fonedis.cc//video/9ff3783e-bcf6-4f11-b738-09aa52318e6e/0_1.mp4",
    "https://storage.fonedis.cc//video/9ff3783e-bcf6-4f11-b738-09aa52318e6e/0_2.mp4",
    "https://storage.fonedis.cc//video/9ff3783e-bcf6-4f11-b738-09aa52318e6e/0_3.mp4"
  ],
  "task_id": "b726a27a-f379-4d91-b569-cfe4b7b299ee",
  "success": true
}
On peut voir qu’il y a un champ task_id dans le résultat, les autres champs sont similaires à ceux du texte précédent, permettant de relier la tâche via ce champ.

Gestion des erreurs

Lors de l’appel de l’API, si une erreur se produit, l’API renverra le code d’erreur et les informations correspondantes. Par exemple :
  • 400 token_mismatched : Mauvaise requête, probablement en raison de paramètres manquants ou invalides.
  • 400 api_not_implemented : Mauvaise requête, probablement en raison de paramètres manquants ou invalides.
  • 401 invalid_token : Non autorisé, jeton d’autorisation invalide ou manquant.
  • 429 too_many_requests : Trop de requêtes, vous avez dépassé la limite de taux.
  • 500 api_error : Erreur interne du serveur, quelque chose s’est mal passé sur le serveur.

Exemple de réponse d’erreur

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "échec de la récupération"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Conclusion

Grâce à ce document, vous avez compris comment utiliser l’API Midjourney Videos pour générer des vidéos en entrant des mots-clés et une image de référence de la première image. Nous espérons que ce document vous aidera à mieux intégrer et utiliser cette API. Si vous avez des questions, n’hésitez pas à contacter notre équipe de support technique.