Zum Hauptinhalt springen
Dieser Artikel beschreibt eine Integrationsanleitung für die Midjourney Videos API, die es ermöglicht, offizielle Midjourney-Videos durch Eingabe benutzerdefinierter Parameter zu generieren.

Antragsprozess

Um die API zu nutzen, müssen Sie zunächst auf die entsprechende Seite der Midjourney Videos API gehen und den entsprechenden Dienst beantragen. Nach dem Betreten der Seite klicken Sie auf die Schaltfläche „Acquire“, wie im Bild gezeigt: Wenn Sie noch nicht angemeldet oder registriert sind, werden Sie automatisch zur Anmeldeseite weitergeleitet, um sich zu registrieren und anzumelden. Nach der Anmeldung werden Sie automatisch zur aktuellen Seite zurückgeleitet. Bei der ersten Beantragung gibt es ein kostenloses Kontingent, mit dem Sie die API kostenlos nutzen können.

Grundlegende Nutzung

Zunächst sollten Sie die grundlegende Nutzung verstehen, indem Sie die Eingabeaufforderung prompt, die Generierungsaktion action und das Array der Referenzbilder für den ersten und letzten Frame image_url eingeben, um das verarbeitete Ergebnis zu erhalten. Zunächst müssen Sie ein einfaches action-Feld übergeben, dessen Wert generate ist. Es umfasst hauptsächlich zwei Aktionen: Video generieren (generate), Video erweitern (extend), die spezifischen Inhalte sind wie folgt:

Hier sehen wir, dass wir die Request-Header festgelegt haben, einschließlich:
  • accept: In welchem Format Sie die Antwort erhalten möchten, hier eingetragen als application/json, also im JSON-Format.
  • authorization: Der Schlüssel zur API-Nutzung, den Sie nach der Beantragung direkt auswählen können.
Außerdem haben wir den Request-Body festgelegt, einschließlich:
  • image_url: Der Link zum Referenzbild für den ersten Frame des generierten Videos.
  • end_image_url: Optional, um das Referenzbild für den letzten Frame des generierten Videos anzugeben.
  • video_id: Bei der Erweiterung des Videos muss die Video-ID angegeben werden.
  • video_index: Bei der Erweiterung des Videos muss angegeben werden, welches spezifische Video mit der video_id gemeint ist, der Index beginnt bei 0, standardmäßig ist er 0.
  • action: Die Aktion dieser Videoerzeugungsaufgabe, die hauptsächlich zwei Aktionen umfasst: Video generieren (generate), Video erweitern (extend).
  • prompt: Eingabeaufforderung.
  • mode: Geschwindigkeit des Videoerzeugungsmodus, standardmäßig schnell.
  • resolution: Videoauflösung, standardmäßig 720p.
  • loop: Ob ein Schleifenvideo generiert werden soll, standardmäßig falsch.
  • callback_url: Die URL, an die das Ergebnis zurückgerufen werden soll.
Nach der Auswahl können Sie sehen, dass auf der rechten Seite auch der entsprechende Code generiert wurde, wie im Bild gezeigt:

Klicken Sie auf die Schaltfläche „Try“, um einen Test durchzuführen, wie im obigen Bild gezeigt, und wir erhalten folgendes Ergebnis:
{
  "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
}
Die Rückgabe hat mehrere Felder, die wie folgt beschrieben werden:
  • success, der Status der Videoerzeugungsaufgabe zu diesem Zeitpunkt.
  • task_id, die ID der Videoerzeugungsaufgabe zu diesem Zeitpunkt.
  • image_url, das Coverbild der Videoerzeugungsaufgabe zu diesem Zeitpunkt.
  • image_width, die Breite des Coverbilds der Videoerzeugungsaufgabe zu diesem Zeitpunkt.
  • image_height, die Höhe des Coverbilds der Videoerzeugungsaufgabe zu diesem Zeitpunkt.
  • video_id, die Video-ID der Videoerzeugungsaufgabe zu diesem Zeitpunkt.
  • video_urls, das Array der Video-Links der Videoerzeugungsaufgabe zu diesem Zeitpunkt.
Wir sehen, dass wir zufriedenstellende Videoinformationen erhalten haben. Wir müssen nur die Video-Links aus video_urls abrufen, um das generierte Midjourney-Video zu erhalten. Wenn Sie den entsprechenden Integrationscode generieren möchten, können Sie ihn direkt kopieren, zum Beispiel der CURL-Code ist wie folgt:
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"
}'

Erweiterungsfunktion für Videos

Wenn Sie ein bereits generiertes Kling-Video weiter generieren möchten, können Sie den Parameter action auf extend setzen und die ID des Videos eingeben, das Sie weiter generieren möchten. Die Video-ID wird basierend auf der grundlegenden Nutzung abgerufen. In diesem Fall sehen wir, dass die ID des oben genannten Videos lautet:
"video_id": "1751816807896311"
Hinweis: Hier ist die video_id im Video die ID des nach der Generierung erhaltenen Videos. Wenn Sie nicht wissen, wie man ein Video generiert, können Sie sich auf die grundlegende Nutzung im obigen Text beziehen.
Als nächstes müssen wir die nächste Eingabeaufforderung ausfüllen, um das Video anzupassen, und können die folgenden Inhalte angeben:
  • video_index: Wählen Sie den Index des zu erweiternden Videos, dieser Index stammt aus den video_urls, der Index beginnt bei 0, der Standardwert ist 0.
  • video_id: Die ID des Videos, das für die Erweiterung angegeben ist.
  • action: Die Aktion für die Erweiterung des Videos, die extend ist.
  • prompt: Eingabeaufforderung.
Ein Beispiel für die Eingabe ist wie folgt:

Nach dem Ausfüllen wird automatisch der folgende Code generiert:

Der entsprechende Python-Code:
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)
Klicken Sie auf Ausführen, und Sie werden ein Ergebnis erhalten, wie folgt:
{
    "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
}
Es ist zu erkennen, dass der Ergebnisinhalt mit dem obigen Text übereinstimmt, was die Funktion zur Erweiterung von Videos ermöglicht.

Asynchrone Rückrufe

Da die von der Midjourney Videos API generierte Zeit relativ lang ist, etwa 1-2 Minuten, bleibt die HTTP-Anfrage bei längerer Nichtreaktion der API verbunden, was zu einem zusätzlichen Verbrauch von Systemressourcen führt. Daher bietet diese API auch Unterstützung für asynchrone Rückrufe. Der gesamte Ablauf ist: Wenn der Client eine Anfrage stellt, gibt er zusätzlich ein Feld callback_url an. Nachdem der Client die API-Anfrage gestellt hat, gibt die API sofort ein Ergebnis zurück, das ein Feld mit task_id enthält, das die aktuelle Aufgaben-ID darstellt. Wenn die Aufgabe abgeschlossen ist, wird das Ergebnis des generierten Videos in Form von POST JSON an die vom Client angegebene callback_url gesendet, wobei auch das Feld task_id enthalten ist, sodass das Aufgabenergebnis über die ID verknüpft werden kann. Lassen Sie uns anhand eines Beispiels verstehen, wie dies konkret funktioniert. Zunächst ist der Webhook-Rückruf ein Dienst, der HTTP-Anfragen empfangen kann. Entwickler sollten die URL ihres eigenen HTTP-Servers ersetzen. Hier wird zur Vereinfachung ein öffentliches Webhook-Beispiel-Website https://webhook.site/ verwendet. Wenn Sie diese Website öffnen, erhalten Sie eine Webhook-URL, wie im Bild gezeigt:

Kopieren Sie diese URL, um sie als Webhook zu verwenden. Das Beispiel hier ist https://webhook.site/556e6971-b41f-4fa8-9151-6e91acd0399f. Als Nächstes können wir das Feld callback_url auf die oben genannte Webhook-URL setzen und die entsprechenden Parameter ausfüllen, wie im Bild gezeigt:

Wenn Sie auf Ausführen klicken, können Sie sofort ein Ergebnis erhalten, wie folgt:
{
  "task_id": "b726a27a-f379-4d91-b569-cfe4b7b299ee"
}
Nach kurzer Wartezeit können wir das Ergebnis des generierten Videos unter https://webhook.site/556e6971-b41f-4fa8-9151-6e91acd0399f beobachten, wie im Bild gezeigt:

Der Inhalt lautet:
{
  "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
}
Es ist zu sehen, dass im Ergebnis ein Feld task_id vorhanden ist, und die anderen Felder sind ähnlich wie im obigen Text. Über dieses Feld kann die Aufgabe verknüpft werden.

Fehlerbehandlung

Bei der Verwendung der API, wenn ein Fehler auftritt, gibt die API den entsprechenden Fehlercode und die Informationen zurück. Zum Beispiel:
  • 400 token_mismatched: Ungültige Anfrage, möglicherweise aufgrund fehlender oder ungültiger Parameter.
  • 400 api_not_implemented: Ungültige Anfrage, möglicherweise aufgrund fehlender oder ungültiger Parameter.
  • 401 invalid_token: Unbefugt, ungültiger oder fehlender Autorisierungstoken.
  • 429 too_many_requests: Zu viele Anfragen, Sie haben das Kontingent überschritten.
  • 500 api_error: Interner Serverfehler, etwas ist auf dem Server schiefgelaufen.

Beispiel für eine Fehlerantwort

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

Fazit

Durch dieses Dokument haben Sie gelernt, wie Sie die Midjourney Videos API verwenden können, um Videos durch Eingabe von Eingabeaufforderungen und Referenzbildern für den ersten Frame zu generieren. Wir hoffen, dass dieses Dokument Ihnen hilft, die API besser zu integrieren und zu verwenden. Bei Fragen wenden Sie sich bitte jederzeit an unser technisches Support-Team.