MMAudio V2
Integrieren
mmaudio-v2
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/mmaudio-v2?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video": "https://content.doitong.com/dev-api/2026/10/21/req_qicb9wfr7rqfo46hqcxollq6/0-QQGxyL6x8ywkCEWdZ94UY_YyJVjs3R.mp4",
"prompt": "Gentle waves lapping against a wooden boat, oars creaking, seagulls calling in the distance, light wind",
"duration": 5
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/mmaudio-v2?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"video": "https://content.doitong.com/dev-api/2026/10/21/req_qicb9wfr7rqfo46hqcxollq6/0-QQGxyL6x8ywkCEWdZ94UY_YyJVjs3R.mp4",
"prompt": "Gentle waves lapping against a wooden boat, oars creaking, seagulls calling in the distance, light wind",
"duration": 5
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"video": "https://content.doitong.com/dev-api/2026/10/21/req_qicb9wfr7rqfo46hqcxollq6/0-QQGxyL6x8ywkCEWdZ94UY_YyJVjs3R.mp4",
"prompt": "Gentle waves lapping against a wooden boat, oars creaking, seagulls calling in the distance, light wind",
"duration": 5,
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/mmaudio-v2", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
# 1. Connect once (Claude Code; Cursor, VS Code, Claude Desktop: https://doitong.com/de/developers/docs/mcp)
claude mcp add --transport http doitong-models https://api.doitong.com/v1/mcp \
--header "Authorization: Bearer $DOITONG_API_KEY"
# 2. Your agent calls the "run" tool with:
{
"model_id": "mmaudio-v2",
"input": {
"video": "https://content.doitong.com/dev-api/2026/10/21/req_qicb9wfr7rqfo46hqcxollq6/0-QQGxyL6x8ywkCEWdZ94UY_YyJVjs3R.mp4",
"prompt": "Gentle waves lapping against a wooden boat, oars creaking, seagulls calling in the distance, light wind",
"duration": 5
}
}
Rufe das Modell MMAudio V2 (mmaudio-v2) über die Doitong API auf. Dokumentation für Agenten: https://doitong.com/de/developers/models/mmaudio-v2.md
POST https://api.doitong.com/v1/run/mmaudio-v2?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"video": "https://content.doitong.com/dev-api/2026/10/21/req_qicb9wfr7rqfo46hqcxollq6/0-QQGxyL6x8ywkCEWdZ94UY_YyJVjs3R.mp4",
"prompt": "Gentle waves lapping against a wooden boat, oars creaking, seagulls calling in the distance, light wind",
"duration": 5
}
Wenn der Antwortstatus "queued" oder "running" lautet, frage GET https://api.doitong.com/v1/requests/REQUEST_ID?wait=20 ab, bis er "succeeded" lautet; die Dateien befinden sich in outputs[].url. POST https://api.doitong.com/v1/quote/mmaudio-v2 mit demselben Body gibt den exakten Preis vor der Ausführung zurück.
Diese Anfrage: 0,005 $ 5 API-Credits Auf dieser Seite ausführen
Dein neuer API-Schlüssel. Sie wird nur jetzt angezeigt und befindet sich bereits im Code und im untenstehenden API-Schlüssel-Feld. Halten Sie sie geheim: Fügen Sie sie niemals in Code ein, der in einem Browser ausgeführt wird.
Beispiele
Anfrage erstellen
Die Steuerelemente werden aus dem Modellschema generiert. Code und Preis werden aktualisiert, während du sie änderst.
/run/mmaudio-v2?wait=20
Preis → 0,005 $
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/mmaudio-v2?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video": "https://content.doitong.com/dev-api/2026/10/21/req_qicb9wfr7rqfo46hqcxollq6/0-QQGxyL6x8ywkCEWdZ94UY_YyJVjs3R.mp4",
"prompt": "Gentle waves lapping against a wooden boat, oars creaking, seagulls calling in the distance, light wind",
"duration": 5
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/mmaudio-v2?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"video": "https://content.doitong.com/dev-api/2026/10/21/req_qicb9wfr7rqfo46hqcxollq6/0-QQGxyL6x8ywkCEWdZ94UY_YyJVjs3R.mp4",
"prompt": "Gentle waves lapping against a wooden boat, oars creaking, seagulls calling in the distance, light wind",
"duration": 5
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"video": "https://content.doitong.com/dev-api/2026/10/21/req_qicb9wfr7rqfo46hqcxollq6/0-QQGxyL6x8ywkCEWdZ94UY_YyJVjs3R.mp4",
"prompt": "Gentle waves lapping against a wooden boat, oars creaking, seagulls calling in the distance, light wind",
"duration": 5,
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/mmaudio-v2", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "run",
"arguments": {
"model_id": "mmaudio-v2",
"input": {
"video": "https://content.doitong.com/dev-api/2026/10/21/req_qicb9wfr7rqfo46hqcxollq6/0-QQGxyL6x8ywkCEWdZ94UY_YyJVjs3R.mp4",
"prompt": "Gentle waves lapping against a wooden boat, oars creaking, seagulls calling in the distance, light wind",
"duration": 5
},
"wait_seconds": 20
}
}
}
Diese Anfrage ausführen
Dein Schlüssel bleibt in diesem Browser: Er wird nur an die Doitong API gesendet und nur gespeichert (localStorage), wenn du „Merken“ aktivierst. API-Schlüssel abrufen
Über MMAudio V2
MMAudio V2 analysiert das Video und erzeugt passenden Ton: Schritte im Takt, Plätschern, Motoren, Menschenmengen und Raumambiente, gesteuert durch Ihren Prompt und einen optionalen Negativ-Prompt. Es erzeugt 1 bis 30 Sekunden Audio und gibt das Video mit dem neuen Soundtrack zurück.
Parameter
Sende entweder den kanonischen Namen oder den nativen Namen, nicht beide. Kanonische Namen
video_urlerforderlich
video
prompterforderlich
negative_promptoptional
seedoptional
num_stepsoptional
durationoptional
cfg_strengthoptional
mask_away_clipoptional
Dateiparameter akzeptieren eine öffentliche https://-URL, eine data:-URI bis 10 MB oder die file_url eines Uploads. Dateien
Ausgabe
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "mmaudio-v2",
"status": "succeeded",
"created_at": "2026-10-20T12:00:00Z",
"started_at": "2026-10-20T12:00:02Z",
"completed_at": "2026-10-20T12:00:09Z",
"queue_position": null,
"cost": {
"credits": 5,
"usd": "0.005",
"charged": 5,
"refunded": 0
},
"input": {
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"prompt": "Night forest ambience, soft paws running on grass, crickets, gentle magical chimes",
"duration": 6
},
"output": {
"video": {
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
"content_type": "video/mp4",
"file_name": "0-output.mp4",
"file_size": 1843200
}
},
"outputs": [
{
"type": "video",
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
"content_type": "video/mp4",
"file_size": 1843200,
"width": 1280,
"height": 720,
"duration": 5,
"stored": true
}
],
"error": null,
"metrics": {
"inference_seconds": 6.8
},
"urls": {
"self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
"cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
}
}
Ausgabefelder
- video
- object {url, content_type, file_name, file_size}Ausgabe-Video mit synchronisierten Lippenbewegungen.
Weitere MMAudio V2-Varianten
Weitere Modelle: Audio
Für KI-Agenten: Diese Seite ist als Markdown verfügbar unter https://doitong.com/de/developers/models/mmaudio-v2.md. Alle Modelle und Anleitungen: https://doitong.com/developers/llms.txt