Sam 3 · Video
یکپارچهسازی
sam-3/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/sam-3/video?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video": "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/sam-3/video?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"video": "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 = {
"video": "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/sam-3/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/fa/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": "sam-3/video",
"input": {
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
}
}
مدل Sam 3 · Video (sam-3/video) را از طریق Doitong API فراخوانی کنید. مستندات عاملها: https://doitong.com/fa/developers/models/sam-3/video.md
POST https://api.doitong.com/v1/run/sam-3/video?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
}
اگر وضعیت پاسخ "queued" یا "running" است، GET https://api.doitong.com/v1/requests/REQUEST_ID?wait=20 را تا زمانی که وضعیت "succeeded" شود بهطور دورهای فراخوانی کنید؛ فایلها در outputs[].url قرار دارند. ارسال POST https://api.doitong.com/v1/quote/sam-3/video با همان بدنه، قیمت دقیق را پیش از اجرا برمیگرداند.
فایلهایی مانند نمونه: $۰٫۰۹۵ ۹۵ اعتبار API فایلهای شما پیش از اجرا اندازهگیری میشوند اجرای آن در این صفحه
کلید API جدید شما. این کلید فقط همین حالا نمایش داده میشود و از قبل در کد و فیلد کلید API زیر قرار گرفته است. آن را محرمانه نگه دارید: هرگز آن را در کدی که در مرورگر اجرا میشود قرار ندهید.
اولین نتیجه شما اینجا قرار میگیرد
درخواست را در زیر بسازید و با کلید API خود اجرا کنید. خروجیها در فضای ذخیرهسازی ما کپی میشوند و برای همیشه یا بهمدت ۷ روز رایگان نگهداری میشوند.
ساخت درخواست
کنترلها از شِمای مدل تولید میشوند. با تغییر آنها، کد و قیمت بهروزرسانی میشوند.
/run/sam-3/video?wait=20
قیمت → $۰٫۰۹۵
# 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/sam-3/video?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video": "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/sam-3/video?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"video": "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 = {
"video": "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/sam-3/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": "sam-3/video",
"input": {
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
},
"wait_seconds": 20
}
}
}
اجرای این درخواست
کلید شما در این مرورگر باقی میماند: فقط به Doitong API ارسال میشود و فقط در صورت فعالکردن گزینه «یادآوری»، در localStorage ذخیره میشود. دریافت کلید API
درباره Sam 3 · Video
اشیا را در ویدئوی ارائهشده از طریق `video_url` شناسایی و ردیابی میکند. اهداف را در `prompt` نام ببرید و چند مورد را با ویرگول جدا کنید، یا از `point_prompts` و `box_prompts` استفاده کنید. بازه `detection_threshold` از 0.1 تا 1 است و `apply_mask` تعیین میکند ماسک روی ویدئو رسم شود یا نه. خروجی mp4 یا webm، بهعلاوه یک فایل zip از پوششهای کادر محدودکننده برای هر فریم است.
پارامترها
نام استاندارد یا نام بومی را ارسال کنید، نه هر دو. نامهای استاندارد
video_urlالزامی
video
promptاختیاری
text_promptاختیاری
point_promptsاختیاری
point_prompts[].xاختیاری
point_prompts[].yاختیاری
point_prompts[].labelاختیاری
point_prompts[].object_idاختیاری
box_promptsاختیاری
box_prompts[].x_minاختیاری
box_prompts[].y_minاختیاری
box_prompts[].x_maxاختیاری
box_prompts[].y_maxاختیاری
box_prompts[].object_idاختیاری
apply_maskاختیاری
video_output_typeاختیاری
detection_thresholdاختیاری
پارامترهای فایل یک URL عمومی https://، یک URI از نوع data: تا سقف 10 MB، یا file_url یک فایل بارگذاریشده را میپذیرند. فایلها
خروجی
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "sam-3/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": 95,
"usd": "0.095",
"charged": 95,
"refunded": 0
},
"input": {
"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
},
"boundingbox_frames_zip": {
"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"
}
}
فیلدهای خروجی
- video
- object {url, content_type, file_name, file_size}ویدیوی تولیدشده از بخشبندی.
- boundingbox_frames_zip
- object {url, content_type, file_name, file_size} | nullبایگانی ZIP پوششهای کادر محدودکننده برای هر فریم.
گونههای دیگر Sam3
مدلهای بیشتر: ویدیو به ویدیو
برای عاملهای هوش مصنوعی: این صفحه بهصورت Markdown در دسترس است https://doitong.com/fa/developers/models/sam-3/video.md. همه مدلها و راهنماها: https://doitong.com/developers/llms.txt