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

Processus de demande

Pour utiliser l’API, vous devez d’abord vous rendre sur la page correspondante de l’API de génération de vidéos Kling 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 l’API gratuitement.

Utilisation de base

Tout d’abord, comprenons la méthode d’utilisation de base, qui consiste à entrer un mot-clé prompt, une action action, une image de référence pour la première image start_image_url et un modèle model, afin d’obtenir le résultat traité. Il est d’abord nécessaire de transmettre un champ action, dont la valeur est text2video. Cela comprend principalement trois actions : vidéo générée par texte (text2video), vidéo générée par image (image2video), vidéo étendue (extend). Ensuite, nous devons également entrer le modèle model, qui comprend principalement les modèles kling-v1, kling-v1-6, kling-v2-master, kling-v2-1-master, kling-v2-5-turbo, kling-video-o1, comme indiqué ci-dessous :

Nous pouvons voir ici que nous avons configuré les en-têtes de 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, qui peut être sélectionnée directement après la demande.
De plus, nous avons configuré le corps de la requête, y compris :
  • model : le modèle de génération de vidéos, principalement kling-v1, kling-v1-6, kling-v2-master, kling-v2-1-master, kling-v2-5-turbo, kling-video-o1.
  • mode : le mode de génération de vidéos, principalement le mode standard std et le mode rapide pro.
  • action : l’action de la tâche de génération de vidéos, comprenant principalement trois actions : vidéo générée par texte (text2video), vidéo générée par image (image2video), vidéo étendue (extend).
  • start_image_url : lorsque l’action vidéo générée par image image2video est choisie, il est nécessaire de télécharger le lien de l’image de référence pour la première image.
  • end_image_url : optionnel lors de la vidéo générée par image, spécifiant la dernière image.
  • aspect_ratio : le rapport d’aspect de la vidéo, optionnel, supporte 16:9, 9:16, 1:1, par défaut 16:9.
  • cfg_scale : l’intensité de la corrélation, dans la plage [0,1], plus elle est grande, plus elle correspond au mot-clé.
  • camera_control : optionnel, contrôle les paramètres d’objet de mouvement de la caméra, supporte les préconfigurations type/simple ainsi que horizontal, vertical, panoramique, inclinaison, roulis, zoom, etc.
  • negative_prompt : optionnel, mots-clés inverses que vous ne souhaitez pas voir apparaître, maximum 200 caractères.
  • element_list : liste de référence principale, applicable uniquement au modèle kling-video-o1, la méthode d’utilisation spécifique de ce paramètre est référencée dans la documentation officielle.
  • video_list : vidéos de référence, obtenues par URL, applicables uniquement au modèle kling-video-o1, la méthode d’utilisation spécifique de ce paramètre est référencée dans la documentation officielle.
  • prompt : mot-clé.
  • callback_url : URL pour recevoir les résultats.
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 :
{
  "success": true,
  "video_id": "af9a1af0-9aa0-4638-81c1-d41d6143c508",
  "video_url": "https://cdn.klingai.com/bs2/upload-kling-api/7485378259/text2video/Cjil4mfBfs0AAAAAAKbMQQ-0_raw_video_1.mp4",
  "duration": "5.1",
  "state": "succeed",
  "task_id": "e3a575aa-a4bd-49c8-9b12-cde38d5462e0"
}
Le résultat de retour comprend plusieurs champs, décrits comme suit :
  • success, l’état de la tâche de génération de vidéos.
  • task_id, l’ID de la tâche de génération de vidéos.
  • video_id, l’ID de la vidéo générée par la tâche de génération de vidéos.
  • video_url, le lien de la vidéo générée par la tâche de génération de vidéos.
  • duration, la durée de la vidéo générée par la tâche de génération de vidéos.
  • state, l’état de la tâche de génération de vidéos.
Nous pouvons voir que nous avons obtenu des informations vidéo satisfaisantes, et nous n’avons qu’à récupérer l’adresse du lien vidéo dans data pour obtenir la vidéo Kling générée. 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/kling/videos' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "text2video",
  "model": "kling-v1",
  "prompt": "Tasse à café en céramique blanche sur un comptoir en marbre brillant avec la lumière du matin venant de la fenêtre. La caméra tourne lentement à 360 degrés autour de la tasse, s'arrêtant brièvement au niveau de la poignée."
}'

Fonctionnalité de vidéo étendue

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 à continuer. L’ID de la vidéo peut être obtenu selon l’utilisation de base, comme indiqué dans l’image ci-dessous :

À ce moment-là, vous pouvez voir que l’ID de la vidéo est :
"video_id": "030bb06d-98d4-4044-9042-0aa0822e8c8c"
Remarque : ici, l’ID video_id de la vidéo est l’ID de la vidéo générée. 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 à étendre pour personnaliser la génération de la vidéo, vous pouvez spécifier le contenu suivant :
  • model : le modèle de génération de vidéos, principalement les modèles kling-v1, kling-v1-5 et kling-v1-6.
  • mode : le mode de génération de vidéos, principalement le mode standard std et le mode rapide pro.
  • duration : la durée de la tâche de génération de vidéo, principalement 5s et 10s.
  • start_image_url : lorsque le comportement de génération de vidéo est image2video, il est nécessaire de télécharger le lien de l’image de référence de la première image.
  • prompt : mot-clé.
Exemple de remplissage :

Une fois rempli, le code généré automatiquement est le suivant :

Le code Python correspondant :
import requests

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

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

payload = {
    "action": "extend",
    "model": "kling-v1",
    "video_id": "030bb06d-98d4-4044-9042-0aa0822e8c8c",
    "prompt": "Tasse à café en céramique blanche sur un comptoir en marbre brillant avec la lumière du matin venant de la fenêtre. La caméra tourne lentement à 360 degrés autour de la tasse, s'arrêtant brièvement au niveau de la poignée.",
    "duration": 10
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
En cliquant sur exécuter, on peut constater qu’un résultat est obtenu, comme suit :
{
  "success": true,
  "video_id": "bbc3b105-ac72-4de2-8390-0cb37dc7d41e",
  "video_url": "https://cdn.klingai.com/bs2/upload-kling-api/7822108635/extendVideo/Cjil4mfBfs0AAAAAAKhr6A-0_raw_video_1.mp4",
  "duration": "9.6",
  "state": "succeed",
  "task_id": "3ece87e6-3ee3-4f5e-bd70-5ae5eca89a23"
}
On peut voir que le contenu du résultat est cohérent avec ce qui précède, ce qui permet de réaliser la fonction d’extension de vidéo.

Callback asynchrone

Étant donné que le temps de génération de l’API Kling Videos Generation est relativement long, environ 1 à 2 minutes, si l’API ne répond pas pendant longtemps, la requête HTTP maintiendra la connexion, entraînant une consommation supplémentaire de ressources système. Ainsi, cette API propose également un support pour les callbacks asynchrones. 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 ait 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 les résultats 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. 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é : Copiez cette URL, elle peut être utilisée comme Webhook, l’exemple ici est https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3. 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é comme suit :

En cliquant sur exécuter, on peut immédiatement obtenir un résultat, comme suit :
{
  "task_id": "20068983-0cc9-4c6a-aeb6-9c6a3c668be0"
}
Après un moment, nous pouvons observer le résultat de la vidéo générée sur https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3, comme illustré : Le contenu est le suivant :
{
    "success": true,
    "video_id": "030bb06d-98d4-4044-9042-0aa0822e8c8c",
    "video_url": "https://cdn.klingai.com/bs2/upload-kling-api/7822108635/text2video/CjJzzGfBfqcAAAAAAKdVMQ-0_raw_video_1.mp4",
    "duration": "5.1",
    "state": "succeed",
    "task_id": "20068983-0cc9-4c6a-aeb6-9c6a3c668be0"
}
On peut voir qu’il y a un champ task_id dans le résultat, les autres champs sont similaires à ceux ci-dessus, permettant de relier les tâches 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": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Conclusion

Grâce à ce document, vous avez compris comment utiliser l’API Kling Videos Generation 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.