Skip to content

doubao-seedance-2-0-260128 视频编辑 API 使用文档

基于字节跳动 Seedance 2.0 多模态视频生成模型,doubao-seedance-2-0-260128 支持参考图片和视频进行智能视频编辑,可实现场景替换、主体替换、视频延长、风格迁移等多种编辑效果。支持多模态输入(文本 + 图片 + 视频 + 音频组合),最多接受 9 张参考图和 3 段参考视频,生成分辨率支持 480p/720p/1080p,时长 4~15 秒可控。采用异步任务模式,提交任务后获取任务 ID,再通过专用接口获取生成的视频 URL。

🎬 模型名称

  • doubao-seedance-2-0-260128

🔗 接口地址

接口请求方式URL
提交任务POSThttps://www.dmxapi.cn/v1/responses
获取结果POSThttps://www.dmxapi.cn/v1/responses

WARNING

请妥善保管您的 API Key!严禁将密钥泄露给他人、硬编码到代码中或提交到公开的代码仓库。如果怀疑密钥已泄露,请立即前往 DMXAPI 官网重新生成。

🎥 视频编辑 示例代码

python
import requests
import json
import base64
import os

# ╔═══════════════════════════════════════════════════════════════╗
# ║              ⚙️ 基础配置(密钥 & 输入素材)                     ║
# ╚═══════════════════════════════════════════════════════════════╝

# ---------- 🔐 API 密钥 ----------
# 获取方式: 登录 DMXAPI 官网 -> 个人中心 -> API 密钥管理
api_key = "sk-****************************************"

# ---------- 🖼️ 图片输入 ----------
# 无需手动选择模式,直接填入即可,程序会自动识别以下三种格式:
#   1. 网络图片 URL    (http:// 或 https:// 开头)
#   2. 素材库 ID       (asset:// 开头,如 asset://asset-20260401123823-6d4x2)
#   3. 本地图片路径    (上述两种以外,按本地文件读取并转 Base64)
# image_input = "C:/Users/a1/Pictures/20230301120626930.jpg"
# image_input = "https://ark-project.tos-cn-beijing.volces.com/doc_image/r2v_edit_pic1.jpg"
image_input = "asset://asset-20260401123823-6d4x2"

# ---------- 🎬 视频输入 ----------
# 无需手动选择模式,直接填入即可,程序会自动识别以下两种格式:
#   1. 网络视频 URL    (http:// 或 https:// 开头)
#   2. 素材库 ID       (asset:// 开头,如 asset://asset-20260224190654-9nbbl)
# ⚠️ 注意:视频仅支持 URL / 素材 ID,不支持本地路径转 Base64
# ⚠️ 建议:传入视频的秒数最好是 15s
video_url = "asset://asset-20260224190654-9nbbl"

# ---------- 📝 提示词 ----------
prompt_text = "图片1中的人物将视频1礼盒中的香水拿起来喷到自己的身上"


# ╔═══════════════════════════════════════════════════════════════╗
# ║           🔩 内部处理逻辑(无需修改)                            ║
# ╚═══════════════════════════════════════════════════════════════╝

def encode_image_to_base64(path):
    """读取本地图片并转换为 Base64 Data URL"""
    ext = path.lower().split(".")[-1]
    mime_map = {
        "jpg": "image/jpeg", "jpeg": "image/jpeg",
        "png": "image/png",  "webp": "image/webp",
        "gif": "image/gif",
    }
    mime_type = mime_map.get(ext, "image/jpeg")
    with open(path, "rb") as f:
        encoded = base64.b64encode(f.read()).decode("utf-8")
    return f"data:{mime_type};base64,{encoded}"


def resolve_image_url(source):
    """
    自动识别图片来源并返回可用的 URL 字符串:
      - 网络图片 URL  : 直接返回原始 URL
      - 素材库 ID     : 形如 asset://asset-xxx,直接返回原始素材 ID
      - 本地图片路径  : 读取文件并转换为 Base64 Data URL
    """
    source = source.strip()

    # 网络图片 URL:直接返回
    if source.startswith("http://") or source.startswith("https://"):
        return source

    # 素材库 ID:形如 asset://asset-20260401123823-6d4x2,直接返回
    if source.startswith("asset://"):
        return source

    # 其余情况按本地图片路径处理
    return encode_image_to_base64(source)


def resolve_video_url(source):
    """
    自动识别视频来源并返回可用的 URL 字符串:
      - 网络视频 URL  : 直接返回原始 URL(http:// 或 https:// 开头)
      - 素材库 ID     : 形如 asset://asset-xxx,直接返回原始素材 ID
    ⚠️ 注意:视频仅支持 URL / 素材 ID 方式,不支持本地路径转 Base64。
            如需使用本地视频,请先上传至素材库或对象存储获取 URL。
    """
    source = source.strip()

    # 网络视频 URL:直接返回
    if source.startswith("http://") or source.startswith("https://"):
        return source

    # 素材库 ID:形如 asset://asset-20260224190654-9nbbl,直接返回
    if source.startswith("asset://"):
        return source

    # 其余情况(如本地路径)不被支持,主动报错提示
    raise ValueError(
        f"❌ 视频输入不支持该格式: {source}\n"
        f"   视频仅支持: 1) 公网 URL(http/https)  2) 素材库 ID(asset://)\n"
        f"   如需使用本地视频,请先上传至素材库或对象存储获取 URL。"
    )


# ╔═══════════════════════════════════════════════════════════════╗
# ║              📋 请求参数配置(按需调整)                         ║
# ╚═══════════════════════════════════════════════════════════════╝

headers = {
    "Content-Type": "application/json",
    "Authorization": f"{api_key}",
}

payload = {
    # 【model】(string, 必填) 调用的模型 ID
    "model": "doubao-seedance-2-0-260128",
    # 【input】(object[], 必填) 多模态输入内容数组
    "input": [
        {
            # 【type】(string, 必填) 内容类型,text 表示文本提示词
            "type": "text",
            # 【text】(string, 可选) 文本提示词,描述编辑指令
            # 支持中英文,建议中文不超过 500 字,英文不超过 1000 词
            # 可使用 [图1][图2] 等方式明确指定参考图片的用途
            "text": prompt_text,
        },
        {
            # 【type】(string, 必填) 内容类型,image_url 表示图片
            "type": "image_url",
            "image_url": {
                # 【url】(string) 图片地址,支持以下三种格式(程序自动识别):
                #   1. 公网 URL(http:// 或 https://)
                #   2. Base64 编码(data:image/...;base64,...,由本地图片自动生成)
                #   3. 素材库 ID(形如 asset://asset-20260401123823-6d4x2)
                # 图片格式:jpeg/png/webp/bmp/tiff/gif
                # 宽高比:(0.4, 2.5),宽高长度:(300, 6000) px,单张不超过 30 MB
                "url": resolve_image_url(image_input),
            },
            # 【role】(string, 条件必填) 图片用途
            # 可选值: "first_frame"(首帧) / "last_frame"(尾帧) / "reference_image"(参考图)
            # 多模态参考生视频场景必填,最多支持 9 张参考图
            "role": "reference_image",
        },
        {
            # 【type】(string, 必填) 内容类型,video_url 表示视频
            "type": "video_url",
            "video_url": {
                # 【url】(string) 视频 URL 或素材 ID(视频仅支持 URL / 素材 ID 方式,程序自动识别):
                #   1. 公网 URL(http:// 或 https://)
                #   2. 素材库 ID(形如 asset://asset-20260224190654-9nbbl)
                # 视频格式:mp4/mov,分辨率:480p/720p/1080p
                # 时长:[2, 15] s,最多传入 3 个参考视频,总时长不超过 15s
                # 单个视频不超过 50 MB,帧率:[24, 60] FPS
                # ⚠️ 建议:传入视频的秒数最好是 15s
                "url": resolve_video_url(video_url),
            },
            # 【role】(string, 条件必填) 视频用途
            # 可选值: "reference_video"(参考视频)
            "role": "reference_video",
        },
    ],
    # 【generate_audio】(boolean, 可选) 是否生成同步音频
    # true: 生成包含人声、音效和背景音乐的有声视频(建议将对话置于双引号内)
    # false: 生成无声视频
    # 默认值: true
    "generate_audio": True,
    # 【ratio】(string, 可选) 视频宽高比
    # 可选值: "16:9" / "4:3" / "1:1" / "3:4" / "9:16" / "21:9" / "adaptive"(根据输入自动选择)
    # Seedance 2.0 默认值: adaptive
    "ratio": "16:9",
    # 【duration】(integer, 可选) 视频时长(秒)
    # Seedance 2.0 & 2.0 fast 取值范围: [8, 15]
    # 输出视频的秒数必须大于等于8s
    # 默认值: 8
    "duration": 8,
    # 【watermark】(boolean, 可选) 是否添加水印
    # false: 不含水印 / true: 含水印
    # 默认值: false
    "watermark": True,
    # 【resolution】(string, 可选) 视频分辨率
    # 可选值: "480p" / "720p"/ "1080p"
    # 默认值: 720p
    "resolution": "480p",
    # 【seed】(integer, 可选) 随机种子,控制生成内容的随机性
    # 取值范围: [-1, 2^32-1],-1 表示使用随机数
    # 相同 seed 值生成类似结果,但不保证完全一致
    # 默认值: -1
    "seed": -1,
    # 【callback_url】(string, 可选) 任务状态变更回调地址
    # 任务状态包括: queued(排队中) / running(运行中) / succeeded(成功) / failed(失败) / expired(超时)
    # 失败时回调最多重试 3 次(5 秒超时)
    "callback_url": "https://www.dmxapi.cn",
    # 【return_last_frame】(boolean, 可选) 是否返回生成视频的尾帧图像(png 格式,无水印)
    # 可用于生成多段连续视频:以上一段视频的尾帧作为下一段的首帧
    # 默认值: false
    "return_last_frame": False,
    # 【execution_expires_after】(integer, 可选) 任务超时时间(秒)
    # 取值范围: [3600, 259200],从任务创建时间开始计算,超时后任务自动终止并标记为 expired
    # 默认值: 172800(48 小时)
    "execution_expires_after": 172800,
    # 【tools】(object[], 可选) 工具配置,仅 Seedance 2.0 & 2.0 fast 支持
    # web_search: 联网搜索工具,可提升视频时效性,但会增加一定时延
    "tools": [{"type": "web_search"}],
}


# ╔═══════════════════════════════════════════════════════════════╗
# ║              📤 发送请求(无需修改)                             ║
# ╚═══════════════════════════════════════════════════════════════╝

response = requests.post("https://www.dmxapi.cn/v1/responses", headers=headers, json=payload)
print(json.dumps(response.json(), indent=2, ensure_ascii=False))

📥 获取结果 示例代码

python
import requests
import json

url = "https://www.dmxapi.cn/v1/responses"

# DMXAPI 密钥 (请替换为您自己的密钥)
api_key = "sk-******************************************"

headers = {
    "Content-Type": "application/json",
    # Authorization: Bearer 方式鉴权
    "Authorization": f"Bearer {api_key}",
}

payload = {
    # 【model】(string, 必填) 固定值,用于获取视频生成结果
    "model": "seedance-2-0-get",
    # 【input】(string, 必填) 提交任务时返回的任务 ID
    "input": "cgt-20260402221419-2kcc7"
}

response = requests.post(url, headers=headers, json=payload)
result = response.json()
print(json.dumps(result, indent=2, ensure_ascii=False))

# 提取 video_url
try:
    text = result["output"][0]["content"][0]["text"]
    inner = json.loads(text)
    video_url = inner["content"]["video_url"]
    print(f"\n视频链接: {video_url}")
except Exception as e:
    print(f"提取 URL 失败: {e}")

返回示例

json
{
  "request_id": "cgt-20260403171827-s64n7",
  "output": [
    {
      "type": "message",
      "content": [
        {
          "type": "output_text",
          "text": "{\"content\":{\"video_url\":\"https://ark-acg-cn-beijing.tos-cn-beijing.volces.com/doubao-seedance-2-0/...mp4\"},\"id\":\"cgt-20260403171827-s64n7\",\"model\":\"doubao-seedance-2-0-260128\",\"status\":\"succeeded\"}"
        }
      ]
    }
  ],
  "usage": {
    "total_tokens": 0,
    "input_tokens": 0,
    "input_tokens_details": {
      "cached_tokens": 0
    },
    "output_tokens": 0,
    "output_tokens_details": {
      "reasoning_tokens": 0
    }
  }
}

© 2026 DMXAPI doubao-seedance-2-0-260128 视频编辑

一个 Key 用全球大模型