Saltar para o conteúdo principal
Este documento apresentará uma descrição da integração da API de Vídeos Midjourney, que pode gerar vídeos oficiais do Midjourney 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 API de Vídeos Midjourney para solicitar o serviço correspondente. Após entrar na página, clique no botão “Acquire”, conforme 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 consiste em inserir a palavra-chave prompt, a ação action, e um array de imagens de referência para o primeiro e último quadro image_url, para obter o resultado processado. Primeiro, é necessário passar um campo action, cujo valor é generate. Ele contém duas ações principais: gerar vídeo (generate) e estender vídeo (extend), conforme descrito abaixo:

Podemos ver que configuramos os Headers da Requisição, incluindo:
  • accept: o formato de resposta desejado, aqui 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 Corpo da Requisição, incluindo:
  • image_url: o link da imagem de referência para o primeiro quadro do vídeo gerado.
  • end_image_url: opcional, especifica a imagem de referência para o último quadro do vídeo gerado.
  • video_id: necessário especificar o ID do vídeo ao estender o vídeo.
  • video_index: necessário especificar qual vídeo do video_id ao estender, o índice começa em 0, o padrão é 0.
  • action: a ação da tarefa de geração de vídeo, que inclui duas ações: gerar vídeo (generate) e estender vídeo (extend).
  • prompt: a palavra-chave.
  • mode: o modo de velocidade de geração de vídeo, padrão é rápido.
  • resolution: a clareza do vídeo, padrão é 720p.
  • loop: se deve gerar um vídeo em loop, padrão é falso.
  • callback_url: a URL para a qual os resultados devem ser retornados.
Após a seleção, você pode notar que o código correspondente também foi gerado à direita, conforme mostrado na imagem:

Clique no botão “Try” para realizar o teste, como mostrado na imagem acima, e você obterá o seguinte resultado:
{
  "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
}
O resultado retornado contém vários campos, descritos a seguir:
  • success: o status da tarefa de geração de vídeo.
  • task_id: o ID da tarefa de geração de vídeo.
  • image_url: a imagem de capa da tarefa de geração de vídeo.
  • image_width: a largura da imagem de capa da tarefa de geração de vídeo.
  • image_height: a altura da imagem de capa da tarefa de geração de vídeo.
  • video_id: o ID do vídeo da tarefa de geração de vídeo.
  • video_urls: um array de links do vídeo 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 em video_urls para obter o vídeo do Midjourney. Além disso, se você quiser gerar o código de integração correspondente, pode copiá-lo diretamente, como o código CURL abaixo:
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"
}'

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

Se você deseja continuar gerando um vídeo Kling já criado, 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 conforme o uso básico. Neste momento, podemos ver que o ID do vídeo mencionado anteriormente é:
"video_id": "1751816807896311"
Nota: o video_id aqui é o ID do vídeo gerado. Se você não souber como gerar um vídeo, pode consultar o 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:
  • video_index: selecione o índice do vídeo a ser estendido, esse índice é do video_urls gerado anteriormente, começando em 0, o valor padrão é 0.
  • video_id: o ID do vídeo especificado para a extensão.
  • action: a ação de extensão do vídeo, que é extend.
  • prompt: a palavra-chave.
Um exemplo de preenchimento é mostrado abaixo:

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

Código correspondente em Python:
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)
Clique em executar e você verá um resultado, conforme abaixo:
{
    "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
}
Pode-se ver que o conteúdo do resultado é consistente com o anterior, o que também realiza a função de extensão de vídeo.

Callback Assíncrono

Como o tempo de geração da API Midjourney Videos é relativamente longo, cerca de 1-2 minutos, se a API não responder por um longo período, a solicitação HTTP manterá a conexão, resultando em 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 solicitação, deve especificar um campo callback_url adicional. Após o cliente fazer a solicitação à API, a API retornará imediatamente um resultado, contendo um campo de informação 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 no formato POST JSON, que também incluirá o campo task_id, permitindo que o resultado da tarefa seja associado pelo ID. Abaixo, vamos entender como operar isso através de um exemplo. Primeiro, o callback Webhook é um serviço que pode receber solicitações HTTP, e os desenvolvedores devem substituí-lo pela URL do servidor HTTP que construíram. Aqui, para facilitar a demonstração, usamos um site de exemplo de Webhook público https://webhook.site/, ao abrir este site, você obterá uma URL de Webhook, como mostrado na imagem:

Copie esta URL e você pode usá-la como Webhook, o exemplo aqui é https://webhook.site/556e6971-b41f-4fa8-9151-6e91acd0399f. Em seguida, podemos definir o campo callback_url para a URL do Webhook acima, enquanto preenchemos os parâmetros correspondentes, conforme mostrado na imagem:

Ao clicar em executar, você pode notar que receberá imediatamente um resultado, como abaixo:
{
  "task_id": "b726a27a-f379-4d91-b569-cfe4b7b299ee"
}
Após alguns instantes, podemos observar o resultado do vídeo gerado em https://webhook.site/556e6971-b41f-4fa8-9151-6e91acd0399f, como mostrado na imagem:

O conteúdo é o seguinte:
{
  "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
}
Pode-se ver que o resultado contém um campo task_id, e os outros campos são semelhantes aos anteriores, permitindo que a tarefa seja associada através deste campo.

Tratamento de Erros

Ao chamar a API, se ocorrer um erro, a API retornará o código de erro e a informação correspondente. Por exemplo:
  • 400 token_mismatched: Solicitação inválida, possivelmente devido a parâmetros ausentes ou inválidos.
  • 400 api_not_implemented: Solicitaçã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 solicitaçõ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 Midjourney Videos para gerar vídeos através da entrada de palavras-chave e imagens de referência. 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.