Aller au contenu
Référence API

Kling Texte en vidéo

Utilisez le point de terminaison texte vers vidéo pour créer une tâche asynchrone.

01

Vue d'ensemble

Utilisez le point de terminaison texte vers vidéo avec un modèle compatible. Utilisez l'ID de tâche retourné pour récupérer son état, ou fournissez callback_url pour les livraisons documentées ci-dessous.

Démarrage rapide

  1. Créez une clé API et définissez-la comme RUNAPI_API_KEY.
  2. Choisissez un modèle pris en charge et envoyez une requête POST dont le corps correspond au schéma de ce modèle.
  3. Enregistrez l'identifiant de tâche retourné, puis interrogez l'état jusqu'à atteindre un état terminal ou gérez les callbacks documentés ci-dessous.

Point de terminaison

POST /api/v1/kling/text_to_video
URL de base
https://runapi.ai
Version de l'API
v1
Authentification
Authorization: Bearer YOUR_API_TOKEN
02

Modèles pris en charge

Ouvrez une page de modèle pour consulter la tarification actuelle, les limites de débit et les conditions d'utilisation commerciale.

03

Schéma de requête

Corps JSON

Les champs et les valeurs autorisées dépendent du modèle sélectionné. Lorsqu'il est fourni, callback_url reçoit les livraisons de tâches documentées ci-dessous.

kling-3.014 champs
aspect_ratiostring
Optionnel

Ratio d'aspect de la sortie.

Valeurs autorisées: 16:9, 9:16, 1:1
callback_urlstring
Optionnel

URL de webhook pour les notifications asynchrones.

cfg_scalenumber
Optionnel

Échelle de guidage (0-1).

duration_secondsinteger
Optionnel

Durée en secondes.

Valeurs autorisées: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
enable_soundboolean
Optionnel

Activer la génération de son.

first_frame_image_urlstring
Optionnel

URL de la première image.

kling_elementsarray
Optionnel

Références d'éléments avec des matériaux image, vidéo ou audio.

last_frame_image_urlstring
Optionnel

URL de l'image de dernière image pour le mode prise de vue unique.

modelstring
Requis

Slug du modèle.

multi_promptarray
Optionnel

Segments de prompt pour le mode multi-plan.

multi_shotsboolean
Optionnel

Activer la génération multi-plans.

negative_promptstring
Optionnel

Invite négative.

output_resolutionstring
Optionnel

Résolution de sortie.

Valeurs autorisées: 720p, 1080p, 4k
promptstring
Optionnel

Description de la vidéo. Obligatoire sauf si multi_shots est activé.

kling-o111 champs
aspect_ratiostring
Optionnel

Ratio d'aspect de la sortie.

Valeurs autorisées: 16:9, 9:16, 1:1 Par défaut: 16:9
callback_urlstring
Optionnel

URL de webhook pour les notifications asynchrones.

duration_secondsinteger
Optionnel

Durée en secondes.

Valeurs autorisées: 5 Par défaut: 5
enable_soundboolean
Optionnel

La génération sonore doit rester désactivée.

Par défaut: false
modestring
Optionnel

Mode de génération.

Valeurs autorisées: std, pro Par défaut: std
modelstring
Requis

Slug du modèle.

preserve_reference_video_audioboolean
Optionnel

Conserver l'audio original de la vidéo de référence.

Par défaut: false
promptstring
Requis

Description de la vidéo ; référencez les médias avec des marqueurs numérotés correspondants.

Plage: 1 - 2500
reference_image_urlsarray
Optionnel

URLs ordonnées d'images de référence JPG, JPEG ou PNG publiques en HTTP(S).

Plage d'éléments: 1 - 7
reference_video_typestring
Optionnel

Utilisez la vidéo comme base d'édition ou référence de fonctionnalité.

Valeurs autorisées: base, feature Par défaut: base
reference_video_urlstring
Optionnel

URL de vidéo de référence MP4 ou MOV HTTP(S) publique.

kling-v2.1-master-text-to-video8 champs
aspect_ratiostring
Optionnel

Ratio d'aspect de la sortie.

Valeurs autorisées: 16:9, 9:16, 1:1
callback_urlstring
Optionnel

URL de webhook pour les notifications asynchrones.

cfg_scalenumber
Optionnel

Échelle de guidage (0-1).

duration_secondsinteger
Optionnel

Durée en secondes.

Valeurs autorisées: 5, 10
enable_soundboolean
Optionnel

Activer la génération de son.

modelstring
Requis

Slug du modèle.

negative_promptstring
Optionnel

Invite négative.

promptstring
Optionnel

Description de la vidéo.

kling-v2.5-turbo-text-to-video-pro8 champs
aspect_ratiostring
Optionnel

Ratio d'aspect de la sortie.

Valeurs autorisées: 16:9, 9:16, 1:1
callback_urlstring
Optionnel

URL de webhook pour les notifications asynchrones.

cfg_scalenumber
Optionnel

Échelle de guidage (0-1).

duration_secondsinteger
Optionnel

Durée en secondes.

Valeurs autorisées: 5, 10
enable_soundboolean
Optionnel

Activer la génération de son.

modelstring
Requis

Slug du modèle.

negative_promptstring
Optionnel

Invite négative.

promptstring
Optionnel

Description de la vidéo.

kling-v2.67 champs
aspect_ratiostring
Optionnel

Ratio d'aspect de la sortie.

Valeurs autorisées: 16:9, 9:16, 1:1 Par défaut: 16:9
callback_urlstring
Optionnel

URL de webhook pour les notifications asynchrones.

duration_secondsinteger
Optionnel

Durée en secondes.

Valeurs autorisées: 5, 10 Par défaut: 5
enable_soundboolean
Optionnel

Activer la génération de son ; nécessite le mode pro.

Par défaut: false
modestring
Optionnel

Mode de génération.

Valeurs autorisées: std, pro Par défaut: std
modelstring
Requis

Slug du modèle.

promptstring
Requis

Description de la vidéo.

Plage: 1 - 2500
kling-v3-omni7 champs
aspect_ratiostring
Optionnel

Ratio d'aspect de la sortie.

Valeurs autorisées: 16:9, 9:16, 1:1 Par défaut: 16:9
callback_urlstring
Optionnel

URL de webhook pour les notifications asynchrones.

duration_secondsinteger
Optionnel

Durée en secondes.

Valeurs autorisées: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 Par défaut: 5
enable_soundboolean
Optionnel

Activer la génération de son synchronisée.

Par défaut: false
modelstring
Requis

Slug du modèle.

output_resolutionstring
Optionnel

Résolution de sortie.

Valeurs autorisées: 720p, 1080p, 4k Par défaut: 720p
promptstring
Requis

Description de la vidéo.

Plage: 1 - 2500
kling-v3-omni-reference8 champs
aspect_ratiostring
Requis

Ratio d'aspect de la sortie.

Valeurs autorisées: 16:9, 9:16, 1:1
callback_urlstring
Optionnel

URL de webhook pour les notifications asynchrones.

duration_secondsinteger
Optionnel

Durée de sortie en secondes.

Valeurs autorisées: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 Par défaut: 5
enable_soundboolean
Optionnel

Activer la génération de son synchronisée.

Par défaut: false
modelstring
Requis

Slug du modèle.

output_resolutionstring
Optionnel

Résolution de sortie.

Valeurs autorisées: 720p, 1080p, 4k Par défaut: 720p
promptstring
Requis

Description de la vidéo.

Plage: 1 - 2500
reference_image_urlsarray
Requis

URLs ordonnées d'images de référence.

Plage d'éléments: 1 - 7
kling-v3-turbo-text-to-video6 champs
aspect_ratiostring
Optionnel

Ratio d'aspect de la sortie.

Valeurs autorisées: 16:9, 9:16, 1:1 Par défaut: 16:9
callback_urlstring
Optionnel

URL de webhook pour les notifications asynchrones.

duration_secondsinteger
Optionnel

Durée en secondes.

Valeurs autorisées: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 Par défaut: 5
modelstring
Requis

Slug du modèle.

output_resolutionstring
Optionnel

Résolution de sortie.

Valeurs autorisées: 720p, 1080p Par défaut: 720p
promptstring
Requis

Description de la vidéo.

Plage: 1 - 2500

Règles conditionnelles

Ces exigences s'appliquent lorsque toutes les conditions listées sont réunies.

  1. Lorsque model = kling-3.0
    Requis
    Non accepté
    reference_image_urls, reference_video_url, reference_video_type, preserve_reference_video_audio
  2. Lorsque model = kling-o1
    Requis
    Non accepté
    output_resolution, negative_prompt, cfg_scale, multi_shots, multi_prompt, first_frame_image_url, last_frame_image_url, kling_elements
  3. Lorsque model = kling-v2.1-master-text-to-video
    Requis
    Non accepté
    mode, reference_image_urls, reference_video_url, reference_video_type, preserve_reference_video_audio
  4. Lorsque model = kling-v2.5-turbo-text-to-video-pro
    Requis
    Non accepté
    mode, reference_image_urls, reference_video_url, reference_video_type, preserve_reference_video_audio
  5. Lorsque model = kling-v2.6
    Requis
    Non accepté
    output_resolution, negative_prompt, cfg_scale, multi_shots, multi_prompt, first_frame_image_url, last_frame_image_url, kling_elements, reference_image_urls, reference_video_url, reference_video_type, preserve_reference_video_audio
  6. Lorsque model = kling-v3-omni
    Requis
    Non accepté
    negative_prompt, cfg_scale, multi_shots, multi_prompt, first_frame_image_url, last_frame_image_url, kling_elements, reference_image_urls, reference_video_url, reference_video_type, preserve_reference_video_audio
  7. Lorsque model = kling-v3-turbo-text-to-video
    Requis
    Non accepté
    enable_sound, negative_prompt, cfg_scale, multi_shots, multi_prompt, first_frame_image_url, last_frame_image_url, kling_elements, reference_image_urls, reference_video_url, reference_video_type, preserve_reference_video_audio
04

Créer une acceptation

HTTP 202

POST /api/v1/kling/text_to_video

Schéma de réponse
JSON
{
  "properties": {
    "billing": {
      "properties": {
        "refund": {
          "oneOf": [
            {
              "properties": {
                "refunded_at": {
                  "type": "string"
                }
              },
              "required": [
                "refunded_at"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        },
        "reservation": {
          "oneOf": [
            {
              "properties": {
                "amount_cents": {
                  "type": "integer"
                }
              },
              "required": [
                "amount_cents"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        },
        "settlement": {
          "oneOf": [
            {
              "properties": {
                "amount_micro_cents": {
                  "type": "integer"
                },
                "charged_amount_cents": {
                  "type": "integer"
                }
              },
              "required": [
                "charged_amount_cents",
                "amount_micro_cents"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        }
      },
      "required": [
        "reservation",
        "settlement",
        "refund"
      ],
      "type": "object",
      "unevaluatedProperties": false
    },
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "processing"
      ],
      "type": "string"
    },
    "task_replayed": {
      "type": "boolean"
    }
  },
  "required": [
    "id",
    "status",
    "billing"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemple de réponse

JSON
{
  "billing": {
    "refund": null,
    "reservation": null,
    "settlement": null
  },
  "id": "tsk_reference_demo",
  "status": "processing"
}
05

Interrogation en cours

HTTP 200

GET /api/v1/kling/text_to_video/:id

Schéma de réponse
JSON
{
  "properties": {
    "billing": {
      "properties": {
        "refund": {
          "oneOf": [
            {
              "properties": {
                "refunded_at": {
                  "type": "string"
                }
              },
              "required": [
                "refunded_at"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        },
        "reservation": {
          "oneOf": [
            {
              "properties": {
                "amount_cents": {
                  "type": "integer"
                }
              },
              "required": [
                "amount_cents"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        },
        "settlement": {
          "oneOf": [
            {
              "properties": {
                "amount_micro_cents": {
                  "type": "integer"
                },
                "charged_amount_cents": {
                  "type": "integer"
                }
              },
              "required": [
                "charged_amount_cents",
                "amount_micro_cents"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        }
      },
      "required": [
        "reservation",
        "settlement",
        "refund"
      ],
      "type": "object",
      "unevaluatedProperties": false
    },
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "processing"
      ],
      "type": "string"
    }
  },
  "required": [
    "id",
    "status",
    "billing"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemple de réponse

JSON
{
  "billing": {
    "refund": null,
    "reservation": null,
    "settlement": null
  },
  "id": "tsk_reference_demo",
  "status": "processing"
}
06

Interrogation terminée

HTTP 200

GET /api/v1/kling/text_to_video/:id

Schéma de réponse
JSON
{
  "properties": {
    "billing": {
      "properties": {
        "refund": {
          "oneOf": [
            {
              "properties": {
                "refunded_at": {
                  "type": "string"
                }
              },
              "required": [
                "refunded_at"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        },
        "reservation": {
          "oneOf": [
            {
              "properties": {
                "amount_cents": {
                  "type": "integer"
                }
              },
              "required": [
                "amount_cents"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        },
        "settlement": {
          "oneOf": [
            {
              "properties": {
                "amount_micro_cents": {
                  "type": "integer"
                },
                "charged_amount_cents": {
                  "type": "integer"
                }
              },
              "required": [
                "charged_amount_cents",
                "amount_micro_cents"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        }
      },
      "required": [
        "reservation",
        "settlement",
        "refund"
      ],
      "type": "object",
      "unevaluatedProperties": false
    },
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "completed"
      ],
      "type": "string"
    },
    "videos": {
      "items": {
        "properties": {
          "url": {
            "type": "string",
            "x-runapi-generated-media": true
          }
        },
        "required": [
          "url"
        ],
        "type": "object",
        "unevaluatedProperties": false
      },
      "type": "array"
    }
  },
  "required": [
    "id",
    "status",
    "videos",
    "billing"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemple de réponse

JSON
{
  "billing": {
    "refund": null,
    "reservation": null,
    "settlement": null
  },
  "id": "tsk_reference_demo",
  "status": "completed",
  "videos": [
    {
      "url": "https://file.runapi.ai/reference-video.mp4"
    }
  ]
}
07

Échec de l'interrogation

HTTP 200

GET /api/v1/kling/text_to_video/:id

Schéma de réponse
JSON
{
  "properties": {
    "billing": {
      "properties": {
        "refund": {
          "oneOf": [
            {
              "properties": {
                "refunded_at": {
                  "type": "string"
                }
              },
              "required": [
                "refunded_at"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        },
        "reservation": {
          "oneOf": [
            {
              "properties": {
                "amount_cents": {
                  "type": "integer"
                }
              },
              "required": [
                "amount_cents"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        },
        "settlement": {
          "oneOf": [
            {
              "properties": {
                "amount_micro_cents": {
                  "type": "integer"
                },
                "charged_amount_cents": {
                  "type": "integer"
                }
              },
              "required": [
                "charged_amount_cents",
                "amount_micro_cents"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        }
      },
      "required": [
        "reservation",
        "settlement",
        "refund"
      ],
      "type": "object",
      "unevaluatedProperties": false
    },
    "error": {
      "type": "string"
    },
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "failed"
      ],
      "type": "string"
    }
  },
  "required": [
    "id",
    "status",
    "error",
    "billing"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemple de réponse

JSON
{
  "billing": {
    "refund": null,
    "reservation": null,
    "settlement": null
  },
  "error": "Task processing failed.",
  "id": "tsk_reference_demo",
  "status": "failed"
}
08

Rappel client : terminé

HTTP 200

POST callback_url

Schéma de réponse
JSON
{
  "properties": {
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "completed"
      ],
      "type": "string"
    },
    "videos": {
      "items": {
        "properties": {
          "url": {
            "type": "string",
            "x-runapi-generated-media": true
          }
        },
        "required": [
          "url"
        ],
        "type": "object",
        "unevaluatedProperties": false
      },
      "type": "array"
    }
  },
  "required": [
    "id",
    "status",
    "videos"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemple de réponse

JSON
{
  "id": "tsk_reference_demo",
  "status": "completed",
  "videos": [
    {
      "url": "https://file.runapi.ai/reference-video.mp4"
    }
  ]
}
09

Rappel client : échoué

HTTP 200

POST callback_url

Schéma de réponse
JSON
{
  "properties": {
    "error": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "properties": {
            "code": {
              "type": "string"
            },
            "limit_cents": {
              "type": "integer"
            },
            "message": {
              "type": "string"
            },
            "reset_at": {
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "used_cents": {
              "type": "integer"
            },
            "window": {
              "enum": [
                "1h",
                "1d",
                "7d",
                "daily",
                "weekly",
                "monthly",
                "lifetime"
              ],
              "type": "string"
            }
          },
          "required": [
            "code",
            "message"
          ],
          "type": "object",
          "unevaluatedProperties": false
        }
      ]
    },
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "failed"
      ],
      "type": "string"
    }
  },
  "required": [
    "id",
    "status",
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemple de réponse

JSON
{
  "error": {
    "code": "generation_failed",
    "message": "Task processing failed."
  },
  "id": "tsk_reference_demo",
  "status": "failed"
}
10

Erreurs

HTTP 401

POST /api/v1/kling/text_to_video

Schéma de réponse
JSON
{
  "properties": {
    "error": {
      "description": "Message d'erreur lisible par l'humain.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemple de réponse

JSON
{
  "error": "Authentication required"
}
11

Erreurs

HTTP 401

GET /api/v1/kling/text_to_video/:id

Schéma de réponse
JSON
{
  "properties": {
    "error": {
      "description": "Message d'erreur lisible par l'humain.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemple de réponse

JSON
{
  "error": "Authentication required"
}
12

Erreurs

HTTP 400

POST /api/v1/kling/text_to_video

Schéma de réponse
JSON
{
  "oneOf": [
    {
      "properties": {
        "error": {
          "description": "Message d'erreur lisible par l'humain.",
          "type": "string"
        }
      },
      "required": [
        "error"
      ],
      "type": "object",
      "unevaluatedProperties": false
    },
    {
      "properties": {
        "error": {
          "description": "Résumé de validation lisible par l'humain.",
          "type": "string"
        },
        "errors": {
          "additionalProperties": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": "Messages de validation indexés par champ de requête public, avec un tableau de chaînes lisibles par l'humain pour chaque champ.",
          "type": "object"
        }
      },
      "required": [
        "error",
        "errors"
      ],
      "type": "object",
      "unevaluatedProperties": false
    }
  ]
}

Exemple de réponse

JSON
{
  "error": "model must be one of: kling-3.0, kling-o1, kling-v2.1-master-text-to-video, kling-v2.5-turbo-text-to-video-pro, kling-v2.6, kling-v3-omni, kling-v3-omni-reference, kling-v3-turbo-text-to-video"
}
13

Erreurs

HTTP 402

POST /api/v1/kling/text_to_video

Schéma de réponse
JSON
{
  "properties": {
    "error": {
      "description": "Message d'erreur lisible par l'humain.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemple de réponse

JSON
{
  "error": "Insufficient balance"
}
14

Erreurs

HTTP 429

POST /api/v1/kling/text_to_video

Schéma de réponse
JSON
{
  "properties": {
    "error": {
      "description": "Message d'erreur lisible par l'humain.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemple de réponse

JSON
{
  "error": "API key credit limit exceeded"
}
15

Erreurs

HTTP 409

POST /api/v1/kling/text_to_video

Schéma de réponse
JSON
{
  "properties": {
    "error": {
      "description": "Message d'erreur lisible par l'humain.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemple de réponse

JSON
{
  "error": "The request uses features that are not supported for the selected model"
}
16

Erreurs

HTTP 429

POST /api/v1/kling/text_to_video

Schéma de réponse
JSON
{
  "properties": {
    "error": {
      "description": "Message d'erreur lisible par l'humain.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemple de réponse

JSON
{
  "error": "Rate limit reached. Please retry later."
}
17

Erreurs

HTTP 503

POST /api/v1/kling/text_to_video

Schéma de réponse
JSON
{
  "properties": {
    "error": {
      "description": "Message d'erreur lisible par l'humain.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemple de réponse

JSON
{
  "error": "Service under maintenance, please try again later"
}
18

Erreurs

HTTP 504

POST /api/v1/kling/text_to_video

Schéma de réponse
JSON
{
  "properties": {
    "error": {
      "description": "Message d'erreur lisible par l'humain.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemple de réponse

JSON
{
  "error": "The request timed out"
}
19

Erreurs

HTTP 404

GET /api/v1/kling/text_to_video/:id

Schéma de réponse
JSON
{
  "properties": {
    "error": {
      "description": "Message d'erreur lisible par l'humain.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemple de réponse

JSON
{
  "error": "Task with id 'tsk_reference_demo' not found"
}
20

Exemples de code générés

Utilisez directement cURL, ou installez un SDK pour votre langage. Chaque exemple soumet la requête validée indiquée dans cette référence.

Installer

Shell
pip install runapi-kling
PYTHON
import os
from runapi.kling import KlingClient

client = KlingClient(api_key=os.environ["RUNAPI_API_KEY"])
task = client.text_to_video.create(
  model="kling-v3-turbo-text-to-video",
  prompt="A paper kite flying above a quiet coastal town at sunrise",
  duration_seconds=5,
  aspect_ratio="16:9",
  output_resolution="720p"
)