[{"data":1,"prerenderedAt":1767},["ShallowReactive",2],{"docs-/zh/docs/sdks":3},{"id":4,"title":5,"body":6,"description":1760,"extension":1761,"meta":1762,"navigation":70,"path":1763,"seo":1764,"stem":1765,"__hash__":1766},"content/zh/docs/sdks.md","SDKs - Seedance 2.0 API",{"type":7,"value":8,"toc":1748},"minimark",[9,14,18,23,34,38,587,591,1120,1124,1246,1249,1357,1360,1478,1481,1610,1614,1704,1708,1715,1718,1744],[10,11,13],"h1",{"id":12},"sdk-与代码示例","SDK 与代码示例",[15,16,17],"p",{},"Seedance 2.0 API 使用标准 REST 接口。以下是主流编程语言的完整集成示例。",[19,20,22],"h2",{"id":21},"基础-url","基础 URL",[24,25,30],"pre",{"className":26,"code":28,"language":29},[27],"language-text","https://api.evolink.ai\n","text",[31,32,28],"code",{"__ignoreMap":33},"",[19,35,37],{"id":36},"python","Python",[24,39,42],{"className":40,"code":41,"language":36,"meta":33,"style":33},"language-python shiki shiki-themes github-dark","import requests\nimport time\n\nAPI_KEY = \"YOUR_API_KEY\"\nBASE_URL = \"https://api.evolink.ai\"\n\nheaders = {\n    \"Authorization\": f\"Bearer {API_KEY}\",\n    \"Content-Type\": \"application/json\"\n}\n\n# 1. 创建视频生成任务\nresponse = requests.post(\n    f\"{BASE_URL}/v1/videos/generations\",\n    headers=headers,\n    json={\n        \"model\": \"seedance-2.0\",\n        \"prompt\": \"A sunset over the ocean, cinematic wide shot\",\n        \"duration\": 5,\n        \"quality\": \"1080p\",\n        \"aspect_ratio\": \"16:9\"\n    }\n)\n\ntask = response.json()\ntask_id = task[\"id\"]\nprint(f\"Task created: {task_id}\")\n\n# 2. 轮询任务状态\nwhile True:\n    status = requests.get(\n        f\"{BASE_URL}/v1/tasks/{task_id}\",\n        headers=headers\n    )\n    result = status.json()\n\n    if result[\"status\"] == \"completed\":\n        print(f\"Video URL: {result['results'][0]}\")\n        break\n    elif result[\"status\"] == \"failed\":\n        print(\"Generation failed\")\n        break\n\n    print(f\"Progress: {result['progress']}%\")\n    time.sleep(5)\n",[31,43,44,57,65,72,86,97,102,114,138,149,155,160,167,178,194,206,217,230,243,256,269,280,286,292,297,308,325,352,357,363,375,386,409,420,426,437,442,465,501,507,526,538,543,548,577],{"__ignoreMap":33},[45,46,49,53],"span",{"class":47,"line":48},"line",1,[45,50,52],{"class":51},"snl16","import",[45,54,56],{"class":55},"s95oV"," requests\n",[45,58,60,62],{"class":47,"line":59},2,[45,61,52],{"class":51},[45,63,64],{"class":55}," time\n",[45,66,68],{"class":47,"line":67},3,[45,69,71],{"emptyLinePlaceholder":70},true,"\n",[45,73,75,79,82],{"class":47,"line":74},4,[45,76,78],{"class":77},"sDLfK","API_KEY",[45,80,81],{"class":51}," =",[45,83,85],{"class":84},"sU2Wk"," \"YOUR_API_KEY\"\n",[45,87,89,92,94],{"class":47,"line":88},5,[45,90,91],{"class":77},"BASE_URL",[45,93,81],{"class":51},[45,95,96],{"class":84}," \"https://api.evolink.ai\"\n",[45,98,100],{"class":47,"line":99},6,[45,101,71],{"emptyLinePlaceholder":70},[45,103,105,108,111],{"class":47,"line":104},7,[45,106,107],{"class":55},"headers ",[45,109,110],{"class":51},"=",[45,112,113],{"class":55}," {\n",[45,115,117,120,123,126,129,132,135],{"class":47,"line":116},8,[45,118,119],{"class":84},"    \"Authorization\"",[45,121,122],{"class":55},": ",[45,124,125],{"class":51},"f",[45,127,128],{"class":84},"\"Bearer ",[45,130,131],{"class":77},"{API_KEY}",[45,133,134],{"class":84},"\"",[45,136,137],{"class":55},",\n",[45,139,141,144,146],{"class":47,"line":140},9,[45,142,143],{"class":84},"    \"Content-Type\"",[45,145,122],{"class":55},[45,147,148],{"class":84},"\"application/json\"\n",[45,150,152],{"class":47,"line":151},10,[45,153,154],{"class":55},"}\n",[45,156,158],{"class":47,"line":157},11,[45,159,71],{"emptyLinePlaceholder":70},[45,161,163],{"class":47,"line":162},12,[45,164,166],{"class":165},"sAwPA","# 1. 创建视频生成任务\n",[45,168,170,173,175],{"class":47,"line":169},13,[45,171,172],{"class":55},"response ",[45,174,110],{"class":51},[45,176,177],{"class":55}," requests.post(\n",[45,179,181,184,186,189,192],{"class":47,"line":180},14,[45,182,183],{"class":51},"    f",[45,185,134],{"class":84},[45,187,188],{"class":77},"{BASE_URL}",[45,190,191],{"class":84},"/v1/videos/generations\"",[45,193,137],{"class":55},[45,195,197,201,203],{"class":47,"line":196},15,[45,198,200],{"class":199},"s9osk","    headers",[45,202,110],{"class":51},[45,204,205],{"class":55},"headers,\n",[45,207,209,212,214],{"class":47,"line":208},16,[45,210,211],{"class":199},"    json",[45,213,110],{"class":51},[45,215,216],{"class":55},"{\n",[45,218,220,223,225,228],{"class":47,"line":219},17,[45,221,222],{"class":84},"        \"model\"",[45,224,122],{"class":55},[45,226,227],{"class":84},"\"seedance-2.0\"",[45,229,137],{"class":55},[45,231,233,236,238,241],{"class":47,"line":232},18,[45,234,235],{"class":84},"        \"prompt\"",[45,237,122],{"class":55},[45,239,240],{"class":84},"\"A sunset over the ocean, cinematic wide shot\"",[45,242,137],{"class":55},[45,244,246,249,251,254],{"class":47,"line":245},19,[45,247,248],{"class":84},"        \"duration\"",[45,250,122],{"class":55},[45,252,253],{"class":77},"5",[45,255,137],{"class":55},[45,257,259,262,264,267],{"class":47,"line":258},20,[45,260,261],{"class":84},"        \"quality\"",[45,263,122],{"class":55},[45,265,266],{"class":84},"\"1080p\"",[45,268,137],{"class":55},[45,270,272,275,277],{"class":47,"line":271},21,[45,273,274],{"class":84},"        \"aspect_ratio\"",[45,276,122],{"class":55},[45,278,279],{"class":84},"\"16:9\"\n",[45,281,283],{"class":47,"line":282},22,[45,284,285],{"class":55},"    }\n",[45,287,289],{"class":47,"line":288},23,[45,290,291],{"class":55},")\n",[45,293,295],{"class":47,"line":294},24,[45,296,71],{"emptyLinePlaceholder":70},[45,298,300,303,305],{"class":47,"line":299},25,[45,301,302],{"class":55},"task ",[45,304,110],{"class":51},[45,306,307],{"class":55}," response.json()\n",[45,309,311,314,316,319,322],{"class":47,"line":310},26,[45,312,313],{"class":55},"task_id ",[45,315,110],{"class":51},[45,317,318],{"class":55}," task[",[45,320,321],{"class":84},"\"id\"",[45,323,324],{"class":55},"]\n",[45,326,328,331,334,336,339,342,345,348,350],{"class":47,"line":327},27,[45,329,330],{"class":77},"print",[45,332,333],{"class":55},"(",[45,335,125],{"class":51},[45,337,338],{"class":84},"\"Task created: ",[45,340,341],{"class":77},"{",[45,343,344],{"class":55},"task_id",[45,346,347],{"class":77},"}",[45,349,134],{"class":84},[45,351,291],{"class":55},[45,353,355],{"class":47,"line":354},28,[45,356,71],{"emptyLinePlaceholder":70},[45,358,360],{"class":47,"line":359},29,[45,361,362],{"class":165},"# 2. 轮询任务状态\n",[45,364,366,369,372],{"class":47,"line":365},30,[45,367,368],{"class":51},"while",[45,370,371],{"class":77}," True",[45,373,374],{"class":55},":\n",[45,376,378,381,383],{"class":47,"line":377},31,[45,379,380],{"class":55},"    status ",[45,382,110],{"class":51},[45,384,385],{"class":55}," requests.get(\n",[45,387,389,392,394,396,399,401,403,405,407],{"class":47,"line":388},32,[45,390,391],{"class":51},"        f",[45,393,134],{"class":84},[45,395,188],{"class":77},[45,397,398],{"class":84},"/v1/tasks/",[45,400,341],{"class":77},[45,402,344],{"class":55},[45,404,347],{"class":77},[45,406,134],{"class":84},[45,408,137],{"class":55},[45,410,412,415,417],{"class":47,"line":411},33,[45,413,414],{"class":199},"        headers",[45,416,110],{"class":51},[45,418,419],{"class":55},"headers\n",[45,421,423],{"class":47,"line":422},34,[45,424,425],{"class":55},"    )\n",[45,427,429,432,434],{"class":47,"line":428},35,[45,430,431],{"class":55},"    result ",[45,433,110],{"class":51},[45,435,436],{"class":55}," status.json()\n",[45,438,440],{"class":47,"line":439},36,[45,441,71],{"emptyLinePlaceholder":70},[45,443,445,448,451,454,457,460,463],{"class":47,"line":444},37,[45,446,447],{"class":51},"    if",[45,449,450],{"class":55}," result[",[45,452,453],{"class":84},"\"status\"",[45,455,456],{"class":55},"] ",[45,458,459],{"class":51},"==",[45,461,462],{"class":84}," \"completed\"",[45,464,374],{"class":55},[45,466,468,471,473,475,478,480,483,486,489,492,495,497,499],{"class":47,"line":467},38,[45,469,470],{"class":77},"        print",[45,472,333],{"class":55},[45,474,125],{"class":51},[45,476,477],{"class":84},"\"Video URL: ",[45,479,341],{"class":77},[45,481,482],{"class":55},"result[",[45,484,485],{"class":84},"'results'",[45,487,488],{"class":55},"][",[45,490,491],{"class":77},"0",[45,493,494],{"class":55},"]",[45,496,347],{"class":77},[45,498,134],{"class":84},[45,500,291],{"class":55},[45,502,504],{"class":47,"line":503},39,[45,505,506],{"class":51},"        break\n",[45,508,510,513,515,517,519,521,524],{"class":47,"line":509},40,[45,511,512],{"class":51},"    elif",[45,514,450],{"class":55},[45,516,453],{"class":84},[45,518,456],{"class":55},[45,520,459],{"class":51},[45,522,523],{"class":84}," \"failed\"",[45,525,374],{"class":55},[45,527,529,531,533,536],{"class":47,"line":528},41,[45,530,470],{"class":77},[45,532,333],{"class":55},[45,534,535],{"class":84},"\"Generation failed\"",[45,537,291],{"class":55},[45,539,541],{"class":47,"line":540},42,[45,542,506],{"class":51},[45,544,546],{"class":47,"line":545},43,[45,547,71],{"emptyLinePlaceholder":70},[45,549,551,554,556,558,561,563,565,568,570,572,575],{"class":47,"line":550},44,[45,552,553],{"class":77},"    print",[45,555,333],{"class":55},[45,557,125],{"class":51},[45,559,560],{"class":84},"\"Progress: ",[45,562,341],{"class":77},[45,564,482],{"class":55},[45,566,567],{"class":84},"'progress'",[45,569,494],{"class":55},[45,571,347],{"class":77},[45,573,574],{"class":84},"%\"",[45,576,291],{"class":55},[45,578,580,583,585],{"class":47,"line":579},45,[45,581,582],{"class":55},"    time.sleep(",[45,584,253],{"class":77},[45,586,291],{"class":55},[19,588,590],{"id":589},"nodejs","Node.js",[24,592,596],{"className":593,"code":594,"language":595,"meta":33,"style":33},"language-javascript shiki shiki-themes github-dark","const API_KEY = \"YOUR_API_KEY\";\nconst BASE_URL = \"https://api.evolink.ai\";\n\nconst headers = {\n    \"Authorization\": `Bearer ${API_KEY}`,\n    \"Content-Type\": \"application/json\"\n};\n\n// 1. 创建视频生成任务\nconst createRes = await fetch(`${BASE_URL}/v1/videos/generations`, {\n    method: \"POST\",\n    headers,\n    body: JSON.stringify({\n        model: \"seedance-2.0\",\n        prompt: \"A sunset over the ocean, cinematic wide shot\",\n        duration: 5,\n        quality: \"1080p\",\n        aspect_ratio: \"16:9\"\n    })\n});\n\nconst task = await createRes.json();\nconst taskId = task.id;\nconsole.log(`Task created: ${taskId}`);\n\n// 2. 轮询任务状态\nconst poll = async () => {\n    while (true) {\n        const statusRes = await fetch(`${BASE_URL}/v1/tasks/${taskId}`, { headers });\n        const result = await statusRes.json();\n\n        if (result.status === \"completed\") {\n            console.log(`Video URL: ${result.results[0]}`);\n            return;\n        }\n        if (result.status === \"failed\") {\n            console.log(\"Generation failed\");\n            return;\n        }\n\n        console.log(`Progress: ${result.progress}%`);\n        await new Promise(r => setTimeout(r, 5000));\n    }\n};\n\nawait poll();\n","javascript",[31,597,598,614,628,632,643,659,667,672,676,681,710,720,725,742,751,760,769,778,785,790,795,799,819,831,852,856,861,881,895,925,943,947,962,993,1000,1005,1017,1029,1035,1039,1043,1067,1098,1102,1106,1110],{"__ignoreMap":33},[45,599,600,603,606,608,611],{"class":47,"line":48},[45,601,602],{"class":51},"const",[45,604,605],{"class":77}," API_KEY",[45,607,81],{"class":51},[45,609,610],{"class":84}," \"YOUR_API_KEY\"",[45,612,613],{"class":55},";\n",[45,615,616,618,621,623,626],{"class":47,"line":59},[45,617,602],{"class":51},[45,619,620],{"class":77}," BASE_URL",[45,622,81],{"class":51},[45,624,625],{"class":84}," \"https://api.evolink.ai\"",[45,627,613],{"class":55},[45,629,630],{"class":47,"line":67},[45,631,71],{"emptyLinePlaceholder":70},[45,633,634,636,639,641],{"class":47,"line":74},[45,635,602],{"class":51},[45,637,638],{"class":77}," headers",[45,640,81],{"class":51},[45,642,113],{"class":55},[45,644,645,647,649,652,654,657],{"class":47,"line":88},[45,646,119],{"class":84},[45,648,122],{"class":55},[45,650,651],{"class":84},"`Bearer ${",[45,653,78],{"class":77},[45,655,656],{"class":84},"}`",[45,658,137],{"class":55},[45,660,661,663,665],{"class":47,"line":99},[45,662,143],{"class":84},[45,664,122],{"class":55},[45,666,148],{"class":84},[45,668,669],{"class":47,"line":104},[45,670,671],{"class":55},"};\n",[45,673,674],{"class":47,"line":116},[45,675,71],{"emptyLinePlaceholder":70},[45,677,678],{"class":47,"line":140},[45,679,680],{"class":165},"// 1. 创建视频生成任务\n",[45,682,683,685,688,690,693,697,699,702,704,707],{"class":47,"line":151},[45,684,602],{"class":51},[45,686,687],{"class":77}," createRes",[45,689,81],{"class":51},[45,691,692],{"class":51}," await",[45,694,696],{"class":695},"svObZ"," fetch",[45,698,333],{"class":55},[45,700,701],{"class":84},"`${",[45,703,91],{"class":77},[45,705,706],{"class":84},"}/v1/videos/generations`",[45,708,709],{"class":55},", {\n",[45,711,712,715,718],{"class":47,"line":157},[45,713,714],{"class":55},"    method: ",[45,716,717],{"class":84},"\"POST\"",[45,719,137],{"class":55},[45,721,722],{"class":47,"line":162},[45,723,724],{"class":55},"    headers,\n",[45,726,727,730,733,736,739],{"class":47,"line":169},[45,728,729],{"class":55},"    body: ",[45,731,732],{"class":77},"JSON",[45,734,735],{"class":55},".",[45,737,738],{"class":695},"stringify",[45,740,741],{"class":55},"({\n",[45,743,744,747,749],{"class":47,"line":180},[45,745,746],{"class":55},"        model: ",[45,748,227],{"class":84},[45,750,137],{"class":55},[45,752,753,756,758],{"class":47,"line":196},[45,754,755],{"class":55},"        prompt: ",[45,757,240],{"class":84},[45,759,137],{"class":55},[45,761,762,765,767],{"class":47,"line":208},[45,763,764],{"class":55},"        duration: ",[45,766,253],{"class":77},[45,768,137],{"class":55},[45,770,771,774,776],{"class":47,"line":219},[45,772,773],{"class":55},"        quality: ",[45,775,266],{"class":84},[45,777,137],{"class":55},[45,779,780,783],{"class":47,"line":232},[45,781,782],{"class":55},"        aspect_ratio: ",[45,784,279],{"class":84},[45,786,787],{"class":47,"line":245},[45,788,789],{"class":55},"    })\n",[45,791,792],{"class":47,"line":258},[45,793,794],{"class":55},"});\n",[45,796,797],{"class":47,"line":271},[45,798,71],{"emptyLinePlaceholder":70},[45,800,801,803,806,808,810,813,816],{"class":47,"line":282},[45,802,602],{"class":51},[45,804,805],{"class":77}," task",[45,807,81],{"class":51},[45,809,692],{"class":51},[45,811,812],{"class":55}," createRes.",[45,814,815],{"class":695},"json",[45,817,818],{"class":55},"();\n",[45,820,821,823,826,828],{"class":47,"line":288},[45,822,602],{"class":51},[45,824,825],{"class":77}," taskId",[45,827,81],{"class":51},[45,829,830],{"class":55}," task.id;\n",[45,832,833,836,839,841,844,847,849],{"class":47,"line":294},[45,834,835],{"class":55},"console.",[45,837,838],{"class":695},"log",[45,840,333],{"class":55},[45,842,843],{"class":84},"`Task created: ${",[45,845,846],{"class":55},"taskId",[45,848,656],{"class":84},[45,850,851],{"class":55},");\n",[45,853,854],{"class":47,"line":299},[45,855,71],{"emptyLinePlaceholder":70},[45,857,858],{"class":47,"line":310},[45,859,860],{"class":165},"// 2. 轮询任务状态\n",[45,862,863,865,868,870,873,876,879],{"class":47,"line":327},[45,864,602],{"class":51},[45,866,867],{"class":695}," poll",[45,869,81],{"class":51},[45,871,872],{"class":51}," async",[45,874,875],{"class":55}," () ",[45,877,878],{"class":51},"=>",[45,880,113],{"class":55},[45,882,883,886,889,892],{"class":47,"line":354},[45,884,885],{"class":51},"    while",[45,887,888],{"class":55}," (",[45,890,891],{"class":77},"true",[45,893,894],{"class":55},") {\n",[45,896,897,900,903,905,907,909,911,913,915,918,920,922],{"class":47,"line":359},[45,898,899],{"class":51},"        const",[45,901,902],{"class":77}," statusRes",[45,904,81],{"class":51},[45,906,692],{"class":51},[45,908,696],{"class":695},[45,910,333],{"class":55},[45,912,701],{"class":84},[45,914,91],{"class":77},[45,916,917],{"class":84},"}/v1/tasks/${",[45,919,846],{"class":55},[45,921,656],{"class":84},[45,923,924],{"class":55},", { headers });\n",[45,926,927,929,932,934,936,939,941],{"class":47,"line":365},[45,928,899],{"class":51},[45,930,931],{"class":77}," result",[45,933,81],{"class":51},[45,935,692],{"class":51},[45,937,938],{"class":55}," statusRes.",[45,940,815],{"class":695},[45,942,818],{"class":55},[45,944,945],{"class":47,"line":377},[45,946,71],{"emptyLinePlaceholder":70},[45,948,949,952,955,958,960],{"class":47,"line":388},[45,950,951],{"class":51},"        if",[45,953,954],{"class":55}," (result.status ",[45,956,957],{"class":51},"===",[45,959,462],{"class":84},[45,961,894],{"class":55},[45,963,964,967,969,971,974,977,979,982,985,987,989,991],{"class":47,"line":411},[45,965,966],{"class":55},"            console.",[45,968,838],{"class":695},[45,970,333],{"class":55},[45,972,973],{"class":84},"`Video URL: ${",[45,975,976],{"class":55},"result",[45,978,735],{"class":84},[45,980,981],{"class":55},"results",[45,983,984],{"class":84},"[",[45,986,491],{"class":77},[45,988,494],{"class":84},[45,990,656],{"class":84},[45,992,851],{"class":55},[45,994,995,998],{"class":47,"line":422},[45,996,997],{"class":51},"            return",[45,999,613],{"class":55},[45,1001,1002],{"class":47,"line":428},[45,1003,1004],{"class":55},"        }\n",[45,1006,1007,1009,1011,1013,1015],{"class":47,"line":439},[45,1008,951],{"class":51},[45,1010,954],{"class":55},[45,1012,957],{"class":51},[45,1014,523],{"class":84},[45,1016,894],{"class":55},[45,1018,1019,1021,1023,1025,1027],{"class":47,"line":444},[45,1020,966],{"class":55},[45,1022,838],{"class":695},[45,1024,333],{"class":55},[45,1026,535],{"class":84},[45,1028,851],{"class":55},[45,1030,1031,1033],{"class":47,"line":467},[45,1032,997],{"class":51},[45,1034,613],{"class":55},[45,1036,1037],{"class":47,"line":503},[45,1038,1004],{"class":55},[45,1040,1041],{"class":47,"line":509},[45,1042,71],{"emptyLinePlaceholder":70},[45,1044,1045,1048,1050,1052,1055,1057,1059,1062,1065],{"class":47,"line":528},[45,1046,1047],{"class":55},"        console.",[45,1049,838],{"class":695},[45,1051,333],{"class":55},[45,1053,1054],{"class":84},"`Progress: ${",[45,1056,976],{"class":55},[45,1058,735],{"class":84},[45,1060,1061],{"class":55},"progress",[45,1063,1064],{"class":84},"}%`",[45,1066,851],{"class":55},[45,1068,1069,1072,1075,1078,1080,1083,1086,1089,1092,1095],{"class":47,"line":540},[45,1070,1071],{"class":51},"        await",[45,1073,1074],{"class":51}," new",[45,1076,1077],{"class":77}," Promise",[45,1079,333],{"class":55},[45,1081,1082],{"class":199},"r",[45,1084,1085],{"class":51}," =>",[45,1087,1088],{"class":695}," setTimeout",[45,1090,1091],{"class":55},"(r, ",[45,1093,1094],{"class":77},"5000",[45,1096,1097],{"class":55},"));\n",[45,1099,1100],{"class":47,"line":545},[45,1101,285],{"class":55},[45,1103,1104],{"class":47,"line":550},[45,1105,671],{"class":55},[45,1107,1108],{"class":47,"line":579},[45,1109,71],{"emptyLinePlaceholder":70},[45,1111,1113,1116,1118],{"class":47,"line":1112},46,[45,1114,1115],{"class":51},"await",[45,1117,867],{"class":695},[45,1119,818],{"class":55},[19,1121,1123],{"id":1122},"curl","cURL",[24,1125,1129],{"className":1126,"code":1127,"language":1128,"meta":33,"style":33},"language-bash shiki shiki-themes github-dark","# 1. 创建视频生成任务\ncurl -X POST https://api.evolink.ai/v1/videos/generations \\\n  -H \"Authorization: Bearer YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"seedance-2.0\",\n    \"prompt\": \"A sunset over the ocean, cinematic wide shot\",\n    \"duration\": 5,\n    \"quality\": \"1080p\"\n  }'\n\n# 响应: {\"id\": \"task-unified-...\", \"status\": \"pending\", ...}\n\n# 2. 查询任务状态\ncurl https://api.evolink.ai/v1/tasks/TASK_ID \\\n  -H \"Authorization: Bearer YOUR_API_KEY\"\n\n# 完成时: {\"status\": \"completed\", \"results\": [\"https://...mp4\"], ...}\n","bash",[31,1130,1131,1135,1151,1161,1170,1178,1183,1188,1193,1198,1203,1207,1212,1216,1221,1230,1237,1241],{"__ignoreMap":33},[45,1132,1133],{"class":47,"line":48},[45,1134,166],{"class":165},[45,1136,1137,1139,1142,1145,1148],{"class":47,"line":59},[45,1138,1122],{"class":695},[45,1140,1141],{"class":77}," -X",[45,1143,1144],{"class":84}," POST",[45,1146,1147],{"class":84}," https://api.evolink.ai/v1/videos/generations",[45,1149,1150],{"class":77}," \\\n",[45,1152,1153,1156,1159],{"class":47,"line":67},[45,1154,1155],{"class":77},"  -H",[45,1157,1158],{"class":84}," \"Authorization: Bearer YOUR_API_KEY\"",[45,1160,1150],{"class":77},[45,1162,1163,1165,1168],{"class":47,"line":74},[45,1164,1155],{"class":77},[45,1166,1167],{"class":84}," \"Content-Type: application/json\"",[45,1169,1150],{"class":77},[45,1171,1172,1175],{"class":47,"line":88},[45,1173,1174],{"class":77},"  -d",[45,1176,1177],{"class":84}," '{\n",[45,1179,1180],{"class":47,"line":99},[45,1181,1182],{"class":84},"    \"model\": \"seedance-2.0\",\n",[45,1184,1185],{"class":47,"line":104},[45,1186,1187],{"class":84},"    \"prompt\": \"A sunset over the ocean, cinematic wide shot\",\n",[45,1189,1190],{"class":47,"line":116},[45,1191,1192],{"class":84},"    \"duration\": 5,\n",[45,1194,1195],{"class":47,"line":140},[45,1196,1197],{"class":84},"    \"quality\": \"1080p\"\n",[45,1199,1200],{"class":47,"line":151},[45,1201,1202],{"class":84},"  }'\n",[45,1204,1205],{"class":47,"line":157},[45,1206,71],{"emptyLinePlaceholder":70},[45,1208,1209],{"class":47,"line":162},[45,1210,1211],{"class":165},"# 响应: {\"id\": \"task-unified-...\", \"status\": \"pending\", ...}\n",[45,1213,1214],{"class":47,"line":169},[45,1215,71],{"emptyLinePlaceholder":70},[45,1217,1218],{"class":47,"line":180},[45,1219,1220],{"class":165},"# 2. 查询任务状态\n",[45,1222,1223,1225,1228],{"class":47,"line":196},[45,1224,1122],{"class":695},[45,1226,1227],{"class":84}," https://api.evolink.ai/v1/tasks/TASK_ID",[45,1229,1150],{"class":77},[45,1231,1232,1234],{"class":47,"line":208},[45,1233,1155],{"class":77},[45,1235,1236],{"class":84}," \"Authorization: Bearer YOUR_API_KEY\"\n",[45,1238,1239],{"class":47,"line":219},[45,1240,71],{"emptyLinePlaceholder":70},[45,1242,1243],{"class":47,"line":232},[45,1244,1245],{"class":165},"# 完成时: {\"status\": \"completed\", \"results\": [\"https://...mp4\"], ...}\n",[19,1247,1248],{"id":1248},"图生视频示例",[24,1250,1252],{"className":40,"code":1251,"language":36,"meta":33,"style":33},"# 将单张图像制作成动画\nresponse = requests.post(\n    f\"{BASE_URL}/v1/videos/generations\",\n    headers=headers,\n    json={\n        \"model\": \"seedance-2.0\",\n        \"prompt\": \"The woman turns her head slowly, hair flowing in the wind\",\n        \"image_urls\": [\"https://example.com/portrait.jpg\"],\n        \"duration\": 5,\n        \"quality\": \"1080p\"\n    }\n)\n",[31,1253,1254,1259,1267,1279,1287,1295,1305,1316,1330,1340,1349,1353],{"__ignoreMap":33},[45,1255,1256],{"class":47,"line":48},[45,1257,1258],{"class":165},"# 将单张图像制作成动画\n",[45,1260,1261,1263,1265],{"class":47,"line":59},[45,1262,172],{"class":55},[45,1264,110],{"class":51},[45,1266,177],{"class":55},[45,1268,1269,1271,1273,1275,1277],{"class":47,"line":67},[45,1270,183],{"class":51},[45,1272,134],{"class":84},[45,1274,188],{"class":77},[45,1276,191],{"class":84},[45,1278,137],{"class":55},[45,1280,1281,1283,1285],{"class":47,"line":74},[45,1282,200],{"class":199},[45,1284,110],{"class":51},[45,1286,205],{"class":55},[45,1288,1289,1291,1293],{"class":47,"line":88},[45,1290,211],{"class":199},[45,1292,110],{"class":51},[45,1294,216],{"class":55},[45,1296,1297,1299,1301,1303],{"class":47,"line":99},[45,1298,222],{"class":84},[45,1300,122],{"class":55},[45,1302,227],{"class":84},[45,1304,137],{"class":55},[45,1306,1307,1309,1311,1314],{"class":47,"line":104},[45,1308,235],{"class":84},[45,1310,122],{"class":55},[45,1312,1313],{"class":84},"\"The woman turns her head slowly, hair flowing in the wind\"",[45,1315,137],{"class":55},[45,1317,1318,1321,1324,1327],{"class":47,"line":116},[45,1319,1320],{"class":84},"        \"image_urls\"",[45,1322,1323],{"class":55},": [",[45,1325,1326],{"class":84},"\"https://example.com/portrait.jpg\"",[45,1328,1329],{"class":55},"],\n",[45,1331,1332,1334,1336,1338],{"class":47,"line":140},[45,1333,248],{"class":84},[45,1335,122],{"class":55},[45,1337,253],{"class":77},[45,1339,137],{"class":55},[45,1341,1342,1344,1346],{"class":47,"line":151},[45,1343,261],{"class":84},[45,1345,122],{"class":55},[45,1347,1348],{"class":84},"\"1080p\"\n",[45,1350,1351],{"class":47,"line":157},[45,1352,285],{"class":55},[45,1354,1355],{"class":47,"line":162},[45,1356,291],{"class":55},[19,1358,1359],{"id":1359},"首尾帧示例",[24,1361,1363],{"className":40,"code":1362,"language":36,"meta":33,"style":33},"# 在两个关键帧之间生成过渡\nresponse = requests.post(\n    f\"{BASE_URL}/v1/videos/generations\",\n    headers=headers,\n    json={\n        \"model\": \"seedance-2.0\",\n        \"prompt\": \"Smooth camera pan revealing the landscape\",\n        \"image_urls\": [\n            \"https://example.com/frame-start.jpg\",\n            \"https://example.com/frame-end.jpg\"\n        ],\n        \"duration\": 8,\n        \"quality\": \"1080p\"\n    }\n)\n",[31,1364,1365,1370,1378,1390,1398,1406,1416,1427,1434,1441,1446,1451,1462,1470,1474],{"__ignoreMap":33},[45,1366,1367],{"class":47,"line":48},[45,1368,1369],{"class":165},"# 在两个关键帧之间生成过渡\n",[45,1371,1372,1374,1376],{"class":47,"line":59},[45,1373,172],{"class":55},[45,1375,110],{"class":51},[45,1377,177],{"class":55},[45,1379,1380,1382,1384,1386,1388],{"class":47,"line":67},[45,1381,183],{"class":51},[45,1383,134],{"class":84},[45,1385,188],{"class":77},[45,1387,191],{"class":84},[45,1389,137],{"class":55},[45,1391,1392,1394,1396],{"class":47,"line":74},[45,1393,200],{"class":199},[45,1395,110],{"class":51},[45,1397,205],{"class":55},[45,1399,1400,1402,1404],{"class":47,"line":88},[45,1401,211],{"class":199},[45,1403,110],{"class":51},[45,1405,216],{"class":55},[45,1407,1408,1410,1412,1414],{"class":47,"line":99},[45,1409,222],{"class":84},[45,1411,122],{"class":55},[45,1413,227],{"class":84},[45,1415,137],{"class":55},[45,1417,1418,1420,1422,1425],{"class":47,"line":104},[45,1419,235],{"class":84},[45,1421,122],{"class":55},[45,1423,1424],{"class":84},"\"Smooth camera pan revealing the landscape\"",[45,1426,137],{"class":55},[45,1428,1429,1431],{"class":47,"line":116},[45,1430,1320],{"class":84},[45,1432,1433],{"class":55},": [\n",[45,1435,1436,1439],{"class":47,"line":140},[45,1437,1438],{"class":84},"            \"https://example.com/frame-start.jpg\"",[45,1440,137],{"class":55},[45,1442,1443],{"class":47,"line":151},[45,1444,1445],{"class":84},"            \"https://example.com/frame-end.jpg\"\n",[45,1447,1448],{"class":47,"line":157},[45,1449,1450],{"class":55},"        ],\n",[45,1452,1453,1455,1457,1460],{"class":47,"line":162},[45,1454,248],{"class":84},[45,1456,122],{"class":55},[45,1458,1459],{"class":77},"8",[45,1461,137],{"class":55},[45,1463,1464,1466,1468],{"class":47,"line":169},[45,1465,261],{"class":84},[45,1467,122],{"class":55},[45,1469,1348],{"class":84},[45,1471,1472],{"class":47,"line":180},[45,1473,285],{"class":55},[45,1475,1476],{"class":47,"line":196},[45,1477,291],{"class":55},[19,1479,1480],{"id":1480},"多模态示例",[24,1482,1484],{"className":40,"code":1483,"language":36,"meta":33,"style":33},"# 使用 @tag 组合图像、视频和音频引用\nresponse = requests.post(\n    f\"{BASE_URL}/v1/videos/generations\",\n    headers=headers,\n    json={\n        \"model\": \"seedance-2.0\",\n        \"prompt\": \"@Image1 as first frame, replicate @Video1 camera movement, @Audio1 for BGM rhythm. A cinematic night cityscape.\",\n        \"image_urls\": [\"https://example.com/scene.jpg\"],\n        \"video_urls\": [\"https://example.com/camera-ref.mp4\"],\n        \"audio_urls\": [\"https://example.com/bgm.mp3\"],\n        \"duration\": 10,\n        \"quality\": \"1080p\"\n    }\n)\n",[31,1485,1486,1491,1499,1511,1519,1527,1537,1548,1559,1571,1583,1594,1602,1606],{"__ignoreMap":33},[45,1487,1488],{"class":47,"line":48},[45,1489,1490],{"class":165},"# 使用 @tag 组合图像、视频和音频引用\n",[45,1492,1493,1495,1497],{"class":47,"line":59},[45,1494,172],{"class":55},[45,1496,110],{"class":51},[45,1498,177],{"class":55},[45,1500,1501,1503,1505,1507,1509],{"class":47,"line":67},[45,1502,183],{"class":51},[45,1504,134],{"class":84},[45,1506,188],{"class":77},[45,1508,191],{"class":84},[45,1510,137],{"class":55},[45,1512,1513,1515,1517],{"class":47,"line":74},[45,1514,200],{"class":199},[45,1516,110],{"class":51},[45,1518,205],{"class":55},[45,1520,1521,1523,1525],{"class":47,"line":88},[45,1522,211],{"class":199},[45,1524,110],{"class":51},[45,1526,216],{"class":55},[45,1528,1529,1531,1533,1535],{"class":47,"line":99},[45,1530,222],{"class":84},[45,1532,122],{"class":55},[45,1534,227],{"class":84},[45,1536,137],{"class":55},[45,1538,1539,1541,1543,1546],{"class":47,"line":104},[45,1540,235],{"class":84},[45,1542,122],{"class":55},[45,1544,1545],{"class":84},"\"@Image1 as first frame, replicate @Video1 camera movement, @Audio1 for BGM rhythm. A cinematic night cityscape.\"",[45,1547,137],{"class":55},[45,1549,1550,1552,1554,1557],{"class":47,"line":116},[45,1551,1320],{"class":84},[45,1553,1323],{"class":55},[45,1555,1556],{"class":84},"\"https://example.com/scene.jpg\"",[45,1558,1329],{"class":55},[45,1560,1561,1564,1566,1569],{"class":47,"line":140},[45,1562,1563],{"class":84},"        \"video_urls\"",[45,1565,1323],{"class":55},[45,1567,1568],{"class":84},"\"https://example.com/camera-ref.mp4\"",[45,1570,1329],{"class":55},[45,1572,1573,1576,1578,1581],{"class":47,"line":151},[45,1574,1575],{"class":84},"        \"audio_urls\"",[45,1577,1323],{"class":55},[45,1579,1580],{"class":84},"\"https://example.com/bgm.mp3\"",[45,1582,1329],{"class":55},[45,1584,1585,1587,1589,1592],{"class":47,"line":157},[45,1586,248],{"class":84},[45,1588,122],{"class":55},[45,1590,1591],{"class":77},"10",[45,1593,137],{"class":55},[45,1595,1596,1598,1600],{"class":47,"line":162},[45,1597,261],{"class":84},[45,1599,122],{"class":55},[45,1601,1348],{"class":84},[45,1603,1604],{"class":47,"line":169},[45,1605,285],{"class":55},[45,1607,1608],{"class":47,"line":180},[45,1609,291],{"class":55},[19,1611,1613],{"id":1612},"使用回调-url","使用回调 URL",[24,1615,1617],{"className":40,"code":1616,"language":36,"meta":33,"style":33},"# 使用 callback_url 代替轮询\nresponse = requests.post(\n    f\"{BASE_URL}/v1/videos/generations\",\n    headers=headers,\n    json={\n        \"model\": \"seedance-2.0\",\n        \"prompt\": \"A cat playing piano\",\n        \"callback_url\": \"https://yourapp.com/api/video-callback\"\n    }\n)\n# 任务完成后，你的回调端点将收到任务结果\n",[31,1618,1619,1624,1632,1644,1652,1660,1670,1681,1691,1695,1699],{"__ignoreMap":33},[45,1620,1621],{"class":47,"line":48},[45,1622,1623],{"class":165},"# 使用 callback_url 代替轮询\n",[45,1625,1626,1628,1630],{"class":47,"line":59},[45,1627,172],{"class":55},[45,1629,110],{"class":51},[45,1631,177],{"class":55},[45,1633,1634,1636,1638,1640,1642],{"class":47,"line":67},[45,1635,183],{"class":51},[45,1637,134],{"class":84},[45,1639,188],{"class":77},[45,1641,191],{"class":84},[45,1643,137],{"class":55},[45,1645,1646,1648,1650],{"class":47,"line":74},[45,1647,200],{"class":199},[45,1649,110],{"class":51},[45,1651,205],{"class":55},[45,1653,1654,1656,1658],{"class":47,"line":88},[45,1655,211],{"class":199},[45,1657,110],{"class":51},[45,1659,216],{"class":55},[45,1661,1662,1664,1666,1668],{"class":47,"line":99},[45,1663,222],{"class":84},[45,1665,122],{"class":55},[45,1667,227],{"class":84},[45,1669,137],{"class":55},[45,1671,1672,1674,1676,1679],{"class":47,"line":104},[45,1673,235],{"class":84},[45,1675,122],{"class":55},[45,1677,1678],{"class":84},"\"A cat playing piano\"",[45,1680,137],{"class":55},[45,1682,1683,1686,1688],{"class":47,"line":116},[45,1684,1685],{"class":84},"        \"callback_url\"",[45,1687,122],{"class":55},[45,1689,1690],{"class":84},"\"https://yourapp.com/api/video-callback\"\n",[45,1692,1693],{"class":47,"line":140},[45,1694,285],{"class":55},[45,1696,1697],{"class":47,"line":151},[45,1698,291],{"class":55},[45,1700,1701],{"class":47,"line":157},[45,1702,1703],{"class":165},"# 任务完成后，你的回调端点将收到任务结果\n",[19,1705,1707],{"id":1706},"兼容-openai","兼容 OpenAI",[15,1709,1710,1711,1714],{},"该 API 遵循 OpenAI 兼容规范。你可以使用现有的 HTTP 客户端库 — 只需将基础 URL 设置为 ",[31,1712,1713],{},"https://api.evolink.ai","。",[19,1716,1717],{"id":1717},"相关文档",[1719,1720,1721,1730,1737],"ul",{},[1722,1723,1724,1729],"li",{},[1725,1726,1728],"a",{"href":1727},"/docs/getting-started","快速开始"," — 快速上手",[1722,1731,1732,1736],{},[1725,1733,1735],{"href":1734},"/docs/authentication","身份认证"," — API 密钥设置",[1722,1738,1739,1743],{},[1725,1740,1742],{"href":1741},"/docs/video-generation","视频生成 API"," — 完整参数参考",[1745,1746,1747],"style",{},"html pre.shiki code .snl16, html code.shiki .snl16{--shiki-default:#F97583}html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html pre.shiki code .sDLfK, html code.shiki .sDLfK{--shiki-default:#79B8FF}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .s9osk, html code.shiki .s9osk{--shiki-default:#FFAB70}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .svObZ, html code.shiki .svObZ{--shiki-default:#B392F0}",{"title":33,"searchDepth":59,"depth":59,"links":1749},[1750,1751,1752,1753,1754,1755,1756,1757,1758,1759],{"id":21,"depth":59,"text":22},{"id":36,"depth":59,"text":37},{"id":589,"depth":59,"text":590},{"id":1122,"depth":59,"text":1123},{"id":1248,"depth":59,"text":1248},{"id":1359,"depth":59,"text":1359},{"id":1480,"depth":59,"text":1480},{"id":1612,"depth":59,"text":1613},{"id":1706,"depth":59,"text":1707},{"id":1717,"depth":59,"text":1717},"Seedance 2.0 API 官方 SDK 和客户端库。Python、Node.js 和 Go。","md",{},"/zh/docs/sdks",{"title":5,"description":1760},"zh/docs/sdks","7RO88kCVdZ2JFcdp--wjmSinn76Dwh07BH-ieyg9xuA",1775067579122]