Перейти до основного вмісту
У цьому документі буде представлено інструкцію з інтеграції Midjourney Videos API, яка дозволяє генерувати офіційні відео Midjourney за допомогою введення користувацьких параметрів.

Процес подачі заявки

Щоб використовувати API, спочатку потрібно перейти на сторінку Midjourney Videos API для подачі заявки на відповідну послугу. Після переходу на сторінку натисніть кнопку «Acquire», як показано на малюнку: Якщо ви ще не увійшли в систему або не зареєстровані, вас автоматично перенаправлять на сторінку входу, запрошуючи вас зареєструватися та увійти. Після входу або реєстрації ви автоматично повернетеся на поточну сторінку. При першій подачі заявки вам буде надано безкоштовний ліміт, який дозволяє безкоштовно використовувати цей API.

Основне використання

Спочатку потрібно ознайомитися з основним способом використання, а саме введенням підказки prompt, дії action, масиву посилань на зображення для першого та останнього кадрів image_url, щоб отримати оброблений результат. Спочатку потрібно просто передати поле action, значення якого буде generate. Воно містить дві основні дії: генерувати відео (generate), розширити відео (extend), деталі наведені нижче:

Ми можемо бачити, що тут ми налаштували заголовки запиту, включаючи:
  • accept: формат відповіді, який ви хочете отримати, тут вказано application/json, тобто формат JSON.
  • authorization: ключ для виклику API, після подачі заявки ви можете вибрати його зі списку.
Також налаштовано тіло запиту, яке включає:
  • image_url: посилання на зображення для першого кадру відео.
  • end_image_url: необов’язковий, вказує на зображення для останнього кадру відео.
  • video_id: потрібно вказати ID відео при розширенні відео.
  • video_index: потрібно вказати, яке саме відео з video_id, індекс починається з 0, за замовчуванням 0.
  • action: дія для цього завдання генерації відео, основні дії: генерувати відео (generate), розширити відео (extend).
  • prompt: підказка.
  • mode: режим швидкості генерації відео, за замовчуванням fast.
  • resolution: чіткість відео, за замовчуванням 720p.
  • loop: чи потрібно генерувати циклічне відео, за замовчуванням false.
  • callback_url: URL для отримання результату.
Після вибору ви можете помітити, що праворуч також згенерувався відповідний код, як показано на малюнку:

Натисніть кнопку «Try», щоб провести тестування, як показано на малюнку, і ви отримаєте наступний результат:
{
  "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
}
У повернутому результаті є кілька полів, описаних нижче:
  • success: статус завдання генерації відео.
  • task_id: ID завдання генерації відео.
  • image_url: зображення обкладинки завдання генерації відео.
  • image_width: ширина зображення обкладинки завдання генерації відео.
  • image_height: висота зображення обкладинки завдання генерації відео.
  • video_id: ID відео завдання генерації відео.
  • video_urls: масив посилань на відео завдання генерації відео.
Ми отримали задовільну інформацію про відео, і нам потрібно лише отримати згенероване відео Midjourney за адресами посилань video_urls. Крім того, якщо ви хочете згенерувати відповідний код інтеграції, ви можете просто скопіювати його, наприклад, код CURL виглядає так:
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"
}'

Функція розширення відео

Якщо ви хочете продовжити генерацію вже створеного Kling відео, ви можете встановити параметр action на extend і ввести ID відео, яке потрібно продовжити генерувати. ID відео можна отримати за допомогою основного використання. У цьому випадку ви можете побачити, що ID відео з попереднього розділу:
"video_id": "1751816807896311"
Зверніть увагу, що тут video_id відео є ID згенерованого відео. Якщо ви не знаєте, як згенерувати відео, ви можете звернутися до основного використання, щоб згенерувати відео.
Далі вам потрібно заповнити наступні підказки для розширення відео, щоб налаштувати генерацію, ви можете вказати такі параметри:
  • video_index: вибраний індекс відео для розширення, цей індекс з video_urls, починається з 0, за замовчуванням 0.
  • video_id: ID відео для розширення.
  • action: дія для розширення відео, extend.
  • prompt: підказка.
Приклад заповнення виглядає так:

Після заповнення автоматично згенерується код, як показано нижче:

Відповідний код на 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)
Натиснувши «Запустити», ви отримаєте результат, як показано нижче:
{
    "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
}
Можна побачити, що результати відповідають попередньому тексту, що реалізує функцію розширення відео.

Асинхронний зворотний виклик

Оскільки час генерації Midjourney Videos API відносно тривалий, приблизно 1-2 хвилини, якщо API довго не відповідає, HTTP запит буде постійно підтримувати з’єднання, що призводить до додаткових витрат системних ресурсів, тому цей API також надає підтримку асинхронних зворотних викликів. Загальний процес: коли клієнт ініціює запит, додатково вказується поле callback_url, після ініціації API запиту, API відразу повертає результат, що містить інформацію про поле task_id, яке представляє ID поточного завдання. Коли завдання завершено, результати генерації відео будуть надіслані на вказаний клієнтом callback_url у форматі POST JSON, в якому також міститься поле task_id, таким чином результати завдання можуть бути пов’язані за ID. Далі ми розглянемо приклад, щоб зрозуміти, як саме це працює. По-перше, Webhook зворотний виклик — це сервіс, який може приймати HTTP запити, розробники повинні замінити його на URL свого HTTP сервера. Для зручності демонстрації використовується публічний веб-сайт з прикладом Webhook https://webhook.site/, відкривши цей сайт, ви отримаєте URL Webhook, як показано на малюнку:

Скопіюйте цей URL, і ви зможете використовувати його як Webhook, приклад тут: https://webhook.site/556e6971-b41f-4fa8-9151-6e91acd0399f. Далі ми можемо налаштувати поле callback_url на вказаний Webhook URL, одночасно заповнивши відповідні параметри, конкретний зміст, як показано на малюнку:

Натиснувши “Запустити”, можна помітити, що відразу отримано результат, як показано нижче:
{
  "task_id": "b726a27a-f379-4d91-b569-cfe4b7b299ee"
}
Почекавши деякий час, ми можемо спостерігати результати генерації відео на https://webhook.site/556e6971-b41f-4fa8-9151-6e91acd0399f, як показано на малюнку:

Зміст такий:
{
  "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
}
Можна побачити, що в результаті є поле task_id, інші поля схожі на попередні, за допомогою цього поля можна реалізувати зв’язок завдань.

Обробка помилок

При виклику API, якщо виникає помилка, API поверне відповідний код помилки та інформацію. Наприклад:
  • 400 token_mismatched: Неправильний запит, можливо, через відсутні або недійсні параметри.
  • 400 api_not_implemented: Неправильний запит, можливо, через відсутні або недійсні параметри.
  • 401 invalid_token: Неавторизовано, недійсний або відсутній токен авторизації.
  • 429 too_many_requests: Занадто багато запитів, ви перевищили ліміт запитів.
  • 500 api_error: Внутрішня помилка сервера, щось пішло не так на сервері.

Приклад відповіді з помилкою

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

Висновок

Завдяки цьому документу, ви вже зрозуміли, як використовувати Midjourney Videos API для генерації відео за допомогою введення підказок та зображення першого кадру. Сподіваємося, що цей документ допоможе вам краще інтегрувати та використовувати цей API. Якщо у вас є будь-які питання, будь ласка, звертайтеся до нашої технічної підтримки.