Saltar para o conteúdo principal
Este documento irá apresentar uma descrição da integração da Kling Videos Generation API, que pode gerar vídeos oficiais da Kling através da entrada de parâmetros personalizados.

Processo de Solicitação

Para usar a API, você precisa primeiro acessar a página correspondente da Kling Videos Generation API para solicitar o serviço correspondente. Após entrar na página, clique no botão “Acquire”, como mostrado na imagem: Se você ainda não estiver logado ou registrado, será redirecionado automaticamente para a página de login, convidando-o a se registrar e fazer login. Após o registro e login, você será redirecionado de volta para a página atual. Na primeira solicitação, haverá um crédito gratuito disponível, permitindo o uso gratuito da API.

Uso Básico

Primeiro, entenda a forma básica de uso, que é inserir a palavra-chave prompt, a ação action, a imagem de referência do primeiro quadro start_image_url e o modelo model, para obter o resultado processado. Primeiro, é necessário passar um campo action, cujo valor é text2video. Ele contém principalmente três ações: vídeo gerado por texto (text2video), vídeo gerado por imagem (image2video), e vídeo de extensão (extend). Em seguida, precisamos inserir o modelo model, que atualmente inclui os modelos kling-v1, kling-v1-6, kling-v2-master, kling-v2-1-master, kling-v2-5-turbo, kling-video-o1, conforme detalhado abaixo:

Podemos ver que aqui configuramos os Request Headers, incluindo:
  • accept: o formato de resposta desejado, preenchido como application/json, ou seja, formato JSON.
  • authorization: a chave para chamar a API, que pode ser selecionada diretamente após a solicitação.
Além disso, configuramos o Request Body, incluindo:
  • model: o modelo para gerar o vídeo, que inclui kling-v1, kling-v1-6, kling-v2-master, kling-v2-1-master, kling-v2-5-turbo, kling-video-o1.
  • mode: o modo de geração do vídeo, que inclui o modo padrão std e o modo rápido pro.
  • action: a ação da tarefa de geração de vídeo, que inclui três ações: vídeo gerado por texto (text2video), vídeo gerado por imagem (image2video), e vídeo de extensão (extend).
  • start_image_url: quando a ação de vídeo gerado por imagem (image2video) é escolhida, é necessário fazer o upload do link da imagem de referência do primeiro quadro.
  • end_image_url: opcional ao gerar vídeo por imagem, especifica o último quadro.
  • aspect_ratio: a proporção largura-altura do vídeo, opcional, suportando 16:9, 9:16, 1:1, padrão 16:9.
  • cfg_scale: intensidade de relevância, intervalo [0,1], quanto maior, mais próximo do prompt.
  • camera_control: opcional, controla os parâmetros de movimento da câmera, suportando predefinições type/simple e configurações como horizontal, vertical, pan, tilt, roll, zoom, etc.
  • negative_prompt: opcional, palavras-chave inversas que não devem aparecer, máximo de 200 caracteres.
  • element_list: lista de referências principais, aplicável apenas ao modelo kling-video-o1, consulte a documentação oficial para o uso específico deste parâmetro.
  • video_list: vídeos de referência, obtidos via URL, aplicável apenas ao modelo kling-video-o1, consulte a documentação oficial para o uso específico deste parâmetro.
  • prompt: palavra-chave.
  • callback_url: URL para onde os resultados devem ser retornados.
Após a seleção, você pode notar que o código correspondente também foi gerado à direita, como mostrado na imagem:

Clique no botão “Try” para realizar o teste, como mostrado na imagem acima, e assim obtemos o seguinte resultado:
{
  "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"
}
O resultado retornado contém vários campos, descritos a seguir:
  • success: o estado da tarefa de geração de vídeo.
  • task_id: o ID da tarefa de geração de vídeo.
  • video_id: o ID do vídeo gerado pela tarefa de geração de vídeo.
  • video_url: o link do vídeo gerado pela tarefa de geração de vídeo.
  • duration: a duração do vídeo gerado pela tarefa de geração de vídeo.
  • state: o estado da tarefa de geração de vídeo.
Podemos ver que obtivemos informações satisfatórias sobre o vídeo, e tudo o que precisamos fazer é acessar o link do vídeo gerado no data para obter o vídeo Kling. Além disso, se você quiser gerar o código de integração correspondente, pode copiá-lo diretamente, por exemplo, o código CURL é o seguinte:
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": "Caneca de café de cerâmica branca sobre uma bancada de mármore brilhante com luz da manhã da janela. A câmera gira lentamente 360 graus ao redor da caneca, pausando brevemente na alça."
}'

Função de Extensão de Vídeo

Se você deseja continuar gerando um vídeo Kling que já foi gerado, pode definir o parâmetro action como extend e inserir o ID do vídeo que precisa ser continuado. O ID do vídeo pode ser obtido com base no uso básico, como mostrado na imagem abaixo:

Neste momento, você pode ver que o ID do vídeo é:
"video_id": "030bb06d-98d4-4044-9042-0aa0822e8c8c"
Nota: o video_id aqui é o ID do vídeo gerado após a criação. Se você não souber como gerar um vídeo, pode consultar a seção de uso básico acima para gerar um vídeo.
Em seguida, precisamos preencher a próxima etapa com a palavra-chave que precisamos para personalizar a geração do vídeo, podendo especificar o seguinte conteúdo:
  • model: O modelo para gerar vídeos, principalmente os modelos kling-v1, kling-v1-5 e kling-v1-6.
  • mode: O modo de geração de vídeo, principalmente os modos padrão std e modo rápido pro.
  • duration: A duração do vídeo para esta tarefa de geração, principalmente 5s e 10s.
  • start_image_url: Quando a ação de gerar vídeo a partir de imagem image2video é escolhida, é necessário fazer o upload do link da imagem de referência do primeiro quadro.
  • prompt: Palavra-chave.
Exemplo de preenchimento:

Após o preenchimento, o código gerado automaticamente é o seguinte:

Código Python correspondente:
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": "White ceramic coffee mug on glossy marble countertop with morning window light. Camera slowly rotates 360 degrees around the mug, pausing briefly at the handle.",
    "duration": 10
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Ao clicar em executar, pode-se notar que um resultado é obtido, como abaixo:
{
  "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"
}
Pode-se ver que o conteúdo do resultado é consistente com o anterior, o que também realiza a função de extensão do vídeo.

Callback Assíncrono

Como a geração de vídeos pela API Kling Videos leva um tempo relativamente longo, cerca de 1-2 minutos, se a API não responder por um longo período, a requisição HTTP manterá a conexão, causando consumo adicional de recursos do sistema. Portanto, esta API também oferece suporte a callbacks assíncronos. O fluxo geral é: quando o cliente inicia a requisição, deve especificar um campo callback_url adicional. Após o cliente fazer a requisição à API, a API retornará imediatamente um resultado, incluindo um campo task_id, que representa o ID da tarefa atual. Quando a tarefa for concluída, o resultado do vídeo gerado será enviado para o callback_url especificado pelo cliente, também incluindo o campo task_id, assim o resultado da tarefa pode ser associado pelo ID. Vamos entender como operar isso através de um exemplo. Primeiro, o callback Webhook é um serviço que pode receber requisições HTTP, e os desenvolvedores devem substituí-lo pela URL do servidor HTTP que construíram. Para facilitar a demonstração, usamos um site público de exemplo de Webhook https://webhook.site/, ao abrir este site, você obterá uma URL de Webhook, como mostrado na imagem: Copie esta URL, que pode ser usada como Webhook, o exemplo aqui é https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3. Em seguida, podemos definir o campo callback_url para a URL do Webhook acima, ao mesmo tempo preenchendo os parâmetros correspondentes, o conteúdo específico é mostrado na imagem:

Ao clicar em executar, pode-se notar que um resultado é obtido imediatamente, como abaixo:
{
  "task_id": "20068983-0cc9-4c6a-aeb6-9c6a3c668be0"
}
Após um momento, podemos observar o resultado do vídeo gerado em https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3, como mostrado na imagem: O conteúdo é o seguinte:
{
    "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"
}
Pode-se ver que o resultado contém um campo task_id, e os outros campos são semelhantes aos anteriores, permitindo a associação da tarefa através deste campo.

Tratamento de Erros

Ao chamar a API, se ocorrer um erro, a API retornará o código e a mensagem de erro correspondentes. Por exemplo:
  • 400 token_mismatched: Requisição inválida, possivelmente devido a parâmetros ausentes ou inválidos.
  • 400 api_not_implemented: Requisição inválida, possivelmente devido a parâmetros ausentes ou inválidos.
  • 401 invalid_token: Não autorizado, token de autorização inválido ou ausente.
  • 429 too_many_requests: Muitas requisições, você excedeu o limite de taxa.
  • 500 api_error: Erro interno do servidor, algo deu errado no servidor.

Exemplo de Resposta de Erro

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Conclusão

Através deste documento, você já entendeu como usar a API de Geração de Vídeos Kling, que pode gerar vídeos através da entrada de palavras-chave e da imagem de referência do primeiro quadro. Esperamos que este documento possa ajudá-lo a integrar e usar melhor esta API. Se tiver alguma dúvida, entre em contato com nossa equipe de suporte técnico.