Workflow Utilities Blend Video
Integrasikan
workflow-utilities/blend-video
# 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/workflow-utilities/blend-video?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"top_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"bottom_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
}'
# 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/workflow-utilities/blend-video?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"top_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"bottom_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
}),
});
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 = {
"top_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"bottom_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/workflow-utilities/blend-video", 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/ms/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": "workflow-utilities/blend-video",
"input": {
"top_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"bottom_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
}
}
Panggil model Workflow Utilities Blend Video (workflow-utilities/blend-video) melalui Doitong API. Dokumentasi untuk ejen: https://doitong.com/ms/developers/models/workflow-utilities/blend-video.md
POST https://api.doitong.com/v1/run/workflow-utilities/blend-video?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"top_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"bottom_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
}
Jika status respons ialah "queued" atau "running", tinjau GET https://api.doitong.com/v1/requests/REQUEST_ID?wait=20 sehingga statusnya menjadi "succeeded"; fail berada dalam outputs[].url. POST https://api.doitong.com/v1/quote/workflow-utilities/blend-video dengan badan yang sama mengembalikan harga tepat sebelum dijalankan.
Sehingga $3.60 setiap larian dicaj berdasarkan penggunaan sebenar, selebihnya dibayar balik Jalankan pada halaman ini
Kunci API baharu anda. Ia hanya dipaparkan sekarang dan sudah dimasukkan dalam kod serta medan kunci API di bawah. Simpan secara rahsia: jangan sekali-kali letakkannya dalam kod yang berjalan dalam pelayar.
Hasil pertama anda akan muncul di sini
Bina permintaan di bawah dan jalankannya dengan kunci API anda. Output disalin ke storan kami, disimpan selama-lamanya atau 7 hari secara percuma.
Bina permintaan
Kawalan dijana daripada skema model. Kod dan harga dikemas kini apabila anda mengubahnya.
/run/workflow-utilities/blend-video?wait=20
sebut harga → $3.60
# 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/workflow-utilities/blend-video?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"top_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"bottom_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
}'
# 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/workflow-utilities/blend-video?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"top_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"bottom_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
}),
});
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 = {
"top_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"bottom_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/workflow-utilities/blend-video", 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": "workflow-utilities/blend-video",
"input": {
"top_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"bottom_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
},
"wait_seconds": 20
}
}
}
Jalankan permintaan ini
Kunci anda kekal dalam pelayar ini: ia hanya dihantar kepada Doitong API dan disimpan (localStorage) hanya jika anda menanda Ingat. Dapatkan kunci API
Tentang Workflow Utilities Blend Video
Menggabungkan video atas dan bawah menjadi satu menggunakan mod gabungan seperti tindihan, darab, perbezaan atau pilihan gaya skrin (23 mod keseluruhannya, lalai tindihan). `opacity` menetapkan kekuatan lapisan atas daripada 0 hingga 1. Apabila `shortest` didayakan, output tamat apabila input yang lebih pendek tamat.
Parameter
top_video_urldiperlukan
bottom_video_urldiperlukan
blend_modepilihan
+7 lagi
phoenixpinlightreflectscreensoftlightsubtractvividlightopacitypilihan
shortestpilihan
Parameter fail menerima URL awam https://, URI data: sehingga 10 MB, atau file_url bagi muat naik. Fail
Output
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "workflow-utilities/blend-video",
"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": 3600,
"usd": "3.60",
"charged": 3600,
"refunded": 0
},
"input": {
"top_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"bottom_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
},
"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"
}
}
Medan output
- video
- object {url, content_type, file_name, file_size}Video yang dihasilkan dengan mengadun input.
Varian Workflow Utilities lain
Lebih banyak model: Video ke Video
Untuk ejen AI: halaman ini dalam Markdown tersedia di https://doitong.com/ms/developers/models/workflow-utilities/blend-video.md. Semua model dan panduan: https://doitong.com/developers/llms.txt