[{"data":1,"prerenderedAt":996},["ShallowReactive",2],{"guide-\u002Fguides-zh\u002Fquick-start":3,"developer-code-eb0qrl":982,"developer-code-34eaj7":983,"developer-code-1w80f9x":984,"developer-code-1wjk1yk":985,"developer-code-1obeumo":986,"developer-code-1ag7cua":987,"developer-code-1nifr77":988,"developer-code-1tp71zs":989,"developer-code-1xdn30c":990,"developer-code-yoowr8":991,"developer-code-1xbw2pz":992,"developer-code-1sctawa":993,"developer-code-1m51tx2":994,"developer-code-1cqt0k1":995},{"id":4,"title":5,"body":6,"description":973,"extension":974,"meta":975,"navigation":976,"path":978,"seo":979,"stem":980,"__hash__":981},"guidesZh\u002Fguides-zh\u002Fquick-start.md","数字人视频 API 快速开始",{"type":7,"value":8,"toc":959},"minimark",[9,13,18,34,45,48,75,82,85,121,137,141,148,222,226,229,245,287,290,293,314,317,344,351,354,361,386,389,447,450,459,463,470,586,627,650,654,657,687,744,747,751,764,785,789,792,926,930,955],[10,11,12],"p",{},"本指南用五个步骤完成一个数字人视频：配置 VisionStory API 认证、提交文本脚本、轮询异步任务，并将生成的 MP4 保存到本地。",[14,15,17],"h2",{"id":16},"_1-create-a-visionstory-api-key","1. 创建 VisionStory API Key",[10,19,20,21,28,29,33],{},"注册后，在 ",[22,23,27],"a",{"href":24,"rel":25},"https:\u002F\u002Fdevelopers.visionstory.ai\u002Fapi-keys",[26],"nofollow","VisionStory API Key 页面","创建密钥。每次请求都通过 ",[30,31,32],"code",{},"X-API-Key"," 请求头传入：",[35,36,43],"pre",{"className":37,"code":39,"filename":40,"language":41,"meta":42},[38],"language-text","X-API-Key: $VISIONSTORY_API_KEY\n","Request header","text","",[30,44,39],{"__ignoreMap":42},[10,46,47],{},"密钥应保存在服务端，不要暴露在浏览器代码或公开仓库中。以下示例从环境变量读取密钥：",[35,49,53],{"className":50,"code":51,"language":52,"meta":42,"style":42},"language-bash shiki shiki-themes github-light github-dark","export VISIONSTORY_API_KEY=\"sk-vs-xxxxxxxxxxxxxxxxxxx\"\n","bash",[30,54,55],{"__ignoreMap":42},[56,57,60,64,68,71],"span",{"class":58,"line":59},"line",1,[56,61,63],{"class":62},"szBVR","export",[56,65,67],{"class":66},"sVt8B"," VISIONSTORY_API_KEY",[56,69,70],{"class":62},"=",[56,72,74],{"class":73},"sZZnC","\"sk-vs-xxxxxxxxxxxxxxxxxxx\"\n",[10,76,77,78,81],{},"使用 VisionStory CLI 时，也可以在安装后运行 ",[30,79,80],{},"visionstory login","。它会隐藏输入并验证密钥，\n然后保存供后续 CLI 会话使用，不会将密钥写入 Shell 历史记录。",[10,83,84],{},"开始付费生成前，先通过只读请求验证密钥：",[35,86,88],{"className":50,"code":87,"language":52,"meta":42,"style":42},"curl -s -H \"X-API-Key: $VISIONSTORY_API_KEY\" \\\n  https:\u002F\u002Fopenapi.visionstory.ai\u002Fapi\u002Fv1\u002Fbilling\u002Fcredits\n",[30,89,90,115],{"__ignoreMap":42},[56,91,92,96,100,103,106,109,112],{"class":58,"line":59},[56,93,95],{"class":94},"sScJk","curl",[56,97,99],{"class":98},"sj4cs"," -s",[56,101,102],{"class":98}," -H",[56,104,105],{"class":73}," \"X-API-Key: ",[56,107,108],{"class":66},"$VISIONSTORY_API_KEY",[56,110,111],{"class":73},"\"",[56,113,114],{"class":98}," \\\n",[56,116,118],{"class":58,"line":117},2,[56,119,120],{"class":73},"  https:\u002F\u002Fopenapi.visionstory.ai\u002Fapi\u002Fv1\u002Fbilling\u002Fcredits\n",[10,122,123,124,127,128,131,132,136],{},"成功响应包含订阅方案和剩余点数；",[30,125,126],{},"remaining"," 是当前 VisionStory 点数余额。\n返回 ",[30,129,130],{},"401"," 表示密钥缺失、过期或已失效。请先前往\n",[22,133,135],{"href":24,"rel":134},[26],"API Key 页面","创建或更换密钥，再继续。",[14,138,140],{"id":139},"_2-choose-an-api-client","2. 选择 API 客户端",[10,142,143,144,147],{},"按任务选择接入方式即可，之后可以随时切换，因为所有接入方式都使用同一个 VisionStory API 和 ",[30,145,146],{},"VISIONSTORY_API_KEY","。",[149,150,151,164],"table",{},[152,153,154],"thead",{},[155,156,157,161],"tr",{},[158,159,160],"th",{},"目标",[158,162,163],{},"推荐方式",[165,166,167,179,189,202,212],"tbody",{},[155,168,169,173],{},[170,171,172],"td",{},"将 VisionStory 接入 Python 应用",[170,174,175],{},[176,177,178],"strong",{},"Python SDK",[155,180,181,184],{},[170,182,183],{},"执行临时命令、Shell 脚本或 CI 任务",[170,185,186],{},[176,187,188],{},"VisionStory CLI",[155,190,191,194],{},[170,192,193],{},"让 AI Agent 将完整 API 作为工具使用",[170,195,196],{},[176,197,198],{},[22,199,201],{"href":200},"\u002Fguides\u002Ffor-agents#connect-the-visionstory-mcp-server","MCP Server",[155,203,204,207],{},[170,205,206],{},"为编码 Agent 提供专注于数字人视频的工作流",[170,208,209],{},[176,210,211],{},"Agent Skill",[155,213,214,217],{},[170,215,216],{},"使用其他后端语言接入",[170,218,219],{},[176,220,221],{},"REST API",[223,224,178],"h3",{"id":225},"python-sdk",[10,227,228],{},"安装带类型定义、无运行时依赖的 Python 客户端：",[35,230,232],{"className":50,"code":231,"language":52,"meta":42,"style":42},"pip install visionstory\n",[30,233,234],{"__ignoreMap":42},[56,235,236,239,242],{"class":58,"line":59},[56,237,238],{"class":94},"pip",[56,240,241],{"class":73}," install",[56,243,244],{"class":73}," visionstory\n",[35,246,250],{"className":247,"code":248,"language":249,"meta":42,"style":42},"language-python shiki shiki-themes github-light github-dark","from visionstory import VisionStoryClient\n\nclient = VisionStoryClient.from_env()  # reads VISIONSTORY_API_KEY\n","python",[30,251,252,266,272],{"__ignoreMap":42},[56,253,254,257,260,263],{"class":58,"line":59},[56,255,256],{"class":62},"from",[56,258,259],{"class":66}," visionstory ",[56,261,262],{"class":62},"import",[56,264,265],{"class":66}," VisionStoryClient\n",[56,267,268],{"class":58,"line":117},[56,269,271],{"emptyLinePlaceholder":270},true,"\n",[56,273,275,278,280,283],{"class":58,"line":274},3,[56,276,277],{"class":66},"client ",[56,279,70],{"class":62},[56,281,282],{"class":66}," VisionStoryClient.from_env()  ",[56,284,286],{"class":285},"sJ8bj","# reads VISIONSTORY_API_KEY\n",[223,288,188],{"id":289},"visionstory-cli",[10,291,292],{},"在隔离环境中安装 CLI，或升级到最新版本：",[35,294,296],{"className":50,"code":295,"language":52,"meta":42,"style":42},"curl -fsSL https:\u002F\u002Fdevelopers.visionstory.ai\u002Fcli | bash\n",[30,297,298],{"__ignoreMap":42},[56,299,300,302,305,308,311],{"class":58,"line":59},[56,301,95],{"class":94},[56,303,304],{"class":98}," -fsSL",[56,306,307],{"class":73}," https:\u002F\u002Fdevelopers.visionstory.ai\u002Fcli",[56,309,310],{"class":62}," |",[56,312,313],{"class":94}," bash\n",[10,315,316],{},"如有提示，先重启终端，再验证认证并查询有效的资源 ID：",[35,318,320],{"className":50,"code":319,"language":52,"meta":42,"style":42},"visionstory credits\nvisionstory avatars\nvisionstory voices\n",[30,321,322,330,337],{"__ignoreMap":42},[56,323,324,327],{"class":58,"line":59},[56,325,326],{"class":94},"visionstory",[56,328,329],{"class":73}," credits\n",[56,331,332,334],{"class":58,"line":117},[56,333,326],{"class":94},[56,335,336],{"class":73}," avatars\n",[56,338,339,341],{"class":58,"line":274},[56,340,326],{"class":94},[56,342,343],{"class":73}," voices\n",[10,345,346,347,147],{},"完整命令见 ",[22,348,350],{"href":349},"\u002Fguides\u002Fcli","CLI 指南",[223,352,211],{"id":353},"agent-skill",[10,355,356,357,360],{},"面向数字人视频的 Agent Skill 包含 ",[30,358,359],{},"SKILL.md"," 和无依赖的 Python 辅助程序，可处理认证、Base64 编码、轮询和下载。安装时会自动检测支持的编码 Agent：",[35,362,364],{"className":50,"code":363,"language":52,"meta":42,"style":42},"npx skills add visionstory-ai\u002Fskills --skill visionstory-api\n",[30,365,366],{"__ignoreMap":42},[56,367,368,371,374,377,380,383],{"class":58,"line":59},[56,369,370],{"class":94},"npx",[56,372,373],{"class":73}," skills",[56,375,376],{"class":73}," add",[56,378,379],{"class":73}," visionstory-ai\u002Fskills",[56,381,382],{"class":98}," --skill",[56,384,385],{"class":73}," visionstory-api\n",[10,387,388],{},"然后用一条命令创建视频：",[35,390,392],{"className":50,"code":391,"language":52,"meta":42,"style":42},"python3 .agents\u002Fskills\u002Fvisionstory-api\u002Fscripts\u002Fvisionstory_api.py create-video \\\n  --avatar-id YOUR_AVATAR_ID \\\n  --text \"Hello from VisionStory.\" \\\n  --voice-id YOUR_VOICE_ID \\\n  --output result.mp4\n",[30,393,394,407,417,427,438],{"__ignoreMap":42},[56,395,396,399,402,405],{"class":58,"line":59},[56,397,398],{"class":94},"python3",[56,400,401],{"class":73}," .agents\u002Fskills\u002Fvisionstory-api\u002Fscripts\u002Fvisionstory_api.py",[56,403,404],{"class":73}," create-video",[56,406,114],{"class":98},[56,408,409,412,415],{"class":58,"line":117},[56,410,411],{"class":98},"  --avatar-id",[56,413,414],{"class":73}," YOUR_AVATAR_ID",[56,416,114],{"class":98},[56,418,419,422,425],{"class":58,"line":274},[56,420,421],{"class":98},"  --text",[56,423,424],{"class":73}," \"Hello from VisionStory.\"",[56,426,114],{"class":98},[56,428,430,433,436],{"class":58,"line":429},4,[56,431,432],{"class":98},"  --voice-id",[56,434,435],{"class":73}," YOUR_VOICE_ID",[56,437,114],{"class":98},[56,439,441,444],{"class":58,"line":440},5,[56,442,443],{"class":98},"  --output",[56,445,446],{"class":73}," result.mp4\n",[223,448,221],{"id":449},"rest-api",[10,451,452,453,455,456,147],{},"使用 ",[30,454,95],{}," 或任意 HTTP 客户端直接调用 API。本指南末尾的完整 Python 示例仅需 ",[30,457,458],{},"requests",[14,460,462],{"id":461},"_3-generate-a-talking-avatar-video","3. 生成数字人视频",[10,464,465,466,469],{},"使用公共形象和声音提交文本脚本。请求会立即返回 ",[30,467,468],{},"video_id","，生成过程在后台异步继续：",[35,471,473],{"className":50,"code":472,"language":52,"meta":42,"style":42},"curl -s \\\n  -H \"X-API-Key: $VISIONSTORY_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model_id\": \"vs_character_v4\",\n    \"avatar_id\": \"YOUR_AVATAR_ID\",\n    \"client_request_id\": \"YOUR_UNIQUE_REQUEST_ID\",\n    \"text_script\": {\n      \"text\": \"Hello World, this is my first test video.\",\n      \"voice_id\": \"YOUR_VOICE_ID\",\n      \"speech_rate\": \"normal\"\n    },\n    \"aspect_ratio\": \"9:16\",\n    \"resolution\": \"720p\"\n  }' \\\n  https:\u002F\u002Fopenapi.visionstory.ai\u002Fapi\u002Fv1\u002Fvideo\n",[30,474,475,483,496,505,513,518,524,530,536,542,548,554,560,566,572,580],{"__ignoreMap":42},[56,476,477,479,481],{"class":58,"line":59},[56,478,95],{"class":94},[56,480,99],{"class":98},[56,482,114],{"class":98},[56,484,485,488,490,492,494],{"class":58,"line":117},[56,486,487],{"class":98},"  -H",[56,489,105],{"class":73},[56,491,108],{"class":66},[56,493,111],{"class":73},[56,495,114],{"class":98},[56,497,498,500,503],{"class":58,"line":274},[56,499,487],{"class":98},[56,501,502],{"class":73}," \"Content-Type: application\u002Fjson\"",[56,504,114],{"class":98},[56,506,507,510],{"class":58,"line":429},[56,508,509],{"class":98},"  -d",[56,511,512],{"class":73}," '{\n",[56,514,515],{"class":58,"line":440},[56,516,517],{"class":73},"    \"model_id\": \"vs_character_v4\",\n",[56,519,521],{"class":58,"line":520},6,[56,522,523],{"class":73},"    \"avatar_id\": \"YOUR_AVATAR_ID\",\n",[56,525,527],{"class":58,"line":526},7,[56,528,529],{"class":73},"    \"client_request_id\": \"YOUR_UNIQUE_REQUEST_ID\",\n",[56,531,533],{"class":58,"line":532},8,[56,534,535],{"class":73},"    \"text_script\": {\n",[56,537,539],{"class":58,"line":538},9,[56,540,541],{"class":73},"      \"text\": \"Hello World, this is my first test video.\",\n",[56,543,545],{"class":58,"line":544},10,[56,546,547],{"class":73},"      \"voice_id\": \"YOUR_VOICE_ID\",\n",[56,549,551],{"class":58,"line":550},11,[56,552,553],{"class":73},"      \"speech_rate\": \"normal\"\n",[56,555,557],{"class":58,"line":556},12,[56,558,559],{"class":73},"    },\n",[56,561,563],{"class":58,"line":562},13,[56,564,565],{"class":73},"    \"aspect_ratio\": \"9:16\",\n",[56,567,569],{"class":58,"line":568},14,[56,570,571],{"class":73},"    \"resolution\": \"720p\"\n",[56,573,575,578],{"class":58,"line":574},15,[56,576,577],{"class":73},"  }'",[56,579,114],{"class":98},[56,581,583],{"class":58,"line":582},16,[56,584,585],{"class":73},"  https:\u002F\u002Fopenapi.visionstory.ai\u002Fapi\u002Fv1\u002Fvideo\n",[35,587,591],{"className":588,"code":589,"language":590,"meta":42,"style":42},"language-json shiki shiki-themes github-light github-dark","{\n  \"data\": {\n    \"video_id\": \"YOUR_VIDEO_ID\"\n  }\n}\n","json",[30,592,593,598,606,617,622],{"__ignoreMap":42},[56,594,595],{"class":58,"line":59},[56,596,597],{"class":66},"{\n",[56,599,600,603],{"class":58,"line":117},[56,601,602],{"class":98},"  \"data\"",[56,604,605],{"class":66},": {\n",[56,607,608,611,614],{"class":58,"line":274},[56,609,610],{"class":98},"    \"video_id\"",[56,612,613],{"class":66},": ",[56,615,616],{"class":73},"\"YOUR_VIDEO_ID\"\n",[56,618,619],{"class":58,"line":429},[56,620,621],{"class":66},"  }\n",[56,623,624],{"class":58,"line":440},[56,625,626],{"class":66},"}\n",[10,628,629,630,633,634,637,638,641,642,645,646,649],{},"正式接入前，请通过 ",[30,631,632],{},"GET \u002Fapi\u002Fv1\u002Fmodels","、",[30,635,636],{},"GET \u002Fapi\u002Fv1\u002Favatars"," 和 ",[30,639,640],{},"GET \u002Fapi\u002Fv1\u002Fvoices"," 查询当前有效 ID，不要写死。要使用自己的音频，请用 ",[30,643,644],{},"audio_script"," 替代 ",[30,647,648],{},"text_script","，两者不能同时传入。",[14,651,653],{"id":652},"_4-poll-the-video-generation-job","4. 轮询视频任务",[10,655,656],{},"每 5 秒查询一次任务，直到进入最终状态：",[35,658,660],{"className":50,"code":659,"language":52,"meta":42,"style":42},"curl -s \\\n  -H \"X-API-Key: $VISIONSTORY_API_KEY\" \\\n  \"https:\u002F\u002Fopenapi.visionstory.ai\u002Fapi\u002Fv1\u002Fvideo?video_id=YOUR_VIDEO_ID\"\n",[30,661,662,670,682],{"__ignoreMap":42},[56,663,664,666,668],{"class":58,"line":59},[56,665,95],{"class":94},[56,667,99],{"class":98},[56,669,114],{"class":98},[56,671,672,674,676,678,680],{"class":58,"line":117},[56,673,487],{"class":98},[56,675,105],{"class":73},[56,677,108],{"class":66},[56,679,111],{"class":73},[56,681,114],{"class":98},[56,683,684],{"class":58,"line":274},[56,685,686],{"class":73},"  \"https:\u002F\u002Fopenapi.visionstory.ai\u002Fapi\u002Fv1\u002Fvideo?video_id=YOUR_VIDEO_ID\"\n",[149,688,689,699],{},[152,690,691],{},[155,692,693,696],{},[158,694,695],{},"status",[158,697,698],{},"含义",[165,700,701,711,721,734],{},[155,702,703,708],{},[170,704,705],{},[30,706,707],{},"queued",[170,709,710],{},"已接收，等待处理",[155,712,713,718],{},[170,714,715],{},[30,716,717],{},"creating",[170,719,720],{},"生成中",[155,722,723,728],{},[170,724,725],{},[30,726,727],{},"created",[170,729,730,731],{},"已完成，可以使用 ",[30,732,733],{},"video_url",[155,735,736,741],{},[170,737,738],{},[30,739,740],{},"failed",[170,742,743],{},"生成失败，停止轮询并检查错误",[10,745,746],{},"轮询间隔不要短于 5 秒，等待约 10 分钟后应停止。",[14,748,750],{"id":749},"_5-download-the-generated-mp4","5. 下载生成的 MP4",[10,752,753,754,756,757,759,760,763],{},"状态为 ",[30,755,727],{}," 时，响应包含 ",[30,758,733],{},"。已完成的视频保留 ",[176,761,762],{},"7 天","；如需永久保存，请下载文件：",[35,765,767],{"className":50,"code":766,"language":52,"meta":42,"style":42},"curl -sL -o result.mp4 \"\u003Cvideo_url from the response>\"\n",[30,768,769],{"__ignoreMap":42},[56,770,771,773,776,779,782],{"class":58,"line":59},[56,772,95],{"class":94},[56,774,775],{"class":98}," -sL",[56,777,778],{"class":98}," -o",[56,780,781],{"class":73}," result.mp4",[56,783,784],{"class":73}," \"\u003Cvideo_url from the response>\"\n",[14,786,788],{"id":787},"complete-python-sdk-example","完整 Python SDK 示例",[10,790,791],{},"使用 SDK，只需几行代码即可完成整个流程：",[35,793,795],{"className":247,"code":794,"language":249,"meta":42,"style":42},"from pathlib import Path\nfrom visionstory import VisionStoryClient, build_video_payload\n\nclient = VisionStoryClient.from_env()\npayload = build_video_payload(\n    avatar_id=\"YOUR_AVATAR_ID\",\n    text=\"Hello World, this is my first test video.\",\n    voice_id=\"YOUR_VOICE_ID\",\n)\nvideo = client.generate_video(payload)\nclient.download(video[\"video_url\"], Path(\"result.mp4\"))\nprint(\"saved result.mp4\")\n",[30,796,797,809,820,824,833,843,857,869,881,886,896,913],{"__ignoreMap":42},[56,798,799,801,804,806],{"class":58,"line":59},[56,800,256],{"class":62},[56,802,803],{"class":66}," pathlib ",[56,805,262],{"class":62},[56,807,808],{"class":66}," Path\n",[56,810,811,813,815,817],{"class":58,"line":117},[56,812,256],{"class":62},[56,814,259],{"class":66},[56,816,262],{"class":62},[56,818,819],{"class":66}," VisionStoryClient, build_video_payload\n",[56,821,822],{"class":58,"line":274},[56,823,271],{"emptyLinePlaceholder":270},[56,825,826,828,830],{"class":58,"line":429},[56,827,277],{"class":66},[56,829,70],{"class":62},[56,831,832],{"class":66}," VisionStoryClient.from_env()\n",[56,834,835,838,840],{"class":58,"line":440},[56,836,837],{"class":66},"payload ",[56,839,70],{"class":62},[56,841,842],{"class":66}," build_video_payload(\n",[56,844,845,849,851,854],{"class":58,"line":520},[56,846,848],{"class":847},"s4XuR","    avatar_id",[56,850,70],{"class":62},[56,852,853],{"class":73},"\"YOUR_AVATAR_ID\"",[56,855,856],{"class":66},",\n",[56,858,859,862,864,867],{"class":58,"line":526},[56,860,861],{"class":847},"    text",[56,863,70],{"class":62},[56,865,866],{"class":73},"\"Hello World, this is my first test video.\"",[56,868,856],{"class":66},[56,870,871,874,876,879],{"class":58,"line":532},[56,872,873],{"class":847},"    voice_id",[56,875,70],{"class":62},[56,877,878],{"class":73},"\"YOUR_VOICE_ID\"",[56,880,856],{"class":66},[56,882,883],{"class":58,"line":538},[56,884,885],{"class":66},")\n",[56,887,888,891,893],{"class":58,"line":544},[56,889,890],{"class":66},"video ",[56,892,70],{"class":62},[56,894,895],{"class":66}," client.generate_video(payload)\n",[56,897,898,901,904,907,910],{"class":58,"line":550},[56,899,900],{"class":66},"client.download(video[",[56,902,903],{"class":73},"\"video_url\"",[56,905,906],{"class":66},"], Path(",[56,908,909],{"class":73},"\"result.mp4\"",[56,911,912],{"class":66},"))\n",[56,914,915,918,921,924],{"class":58,"line":556},[56,916,917],{"class":98},"print",[56,919,920],{"class":66},"(",[56,922,923],{"class":73},"\"saved result.mp4\"",[56,925,885],{"class":66},[14,927,929],{"id":928},"related-visionstory-api-guides","相关 VisionStory API 指南",[931,932,933,941,948],"ul",{},[934,935,936,940],"li",{},[22,937,939],{"href":938},"\u002Fguides\u002Foverview","阅读概览","，了解核心资源、响应结构和模型选择。",[934,942,943,947],{},[22,944,946],{"href":945},"\u002Freference","浏览 API 参考","，查看请求结构、参数和响应。",[934,949,950,951,147],{},"准备执行真实请求时，先",[22,952,954],{"href":24,"rel":953},[26],"获取 API Key",[956,957,958],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":42,"searchDepth":117,"depth":117,"links":960},[961,962,968,969,970,971,972],{"id":16,"depth":117,"text":17},{"id":139,"depth":117,"text":140,"children":963},[964,965,966,967],{"id":225,"depth":274,"text":178},{"id":289,"depth":274,"text":188},{"id":353,"depth":274,"text":211},{"id":449,"depth":274,"text":221},{"id":461,"depth":117,"text":462},{"id":652,"depth":117,"text":653},{"id":749,"depth":117,"text":750},{"id":787,"depth":117,"text":788},{"id":928,"depth":117,"text":929},"使用 VisionStory REST API 或 Python SDK 生成并下载第一个数字人视频，完成认证、异步任务轮询和本地保存。","md",{},{"title":977,"order":117},"快速开始","\u002Fguides-zh\u002Fquick-start",{"title":5,"description":973},"guides-zh\u002Fquick-start","rtCs7l9dB9nP-JvmiaF_3Ye-YYoXnXohbZz8CdmnYsc","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>X-API-Key: $VISIONSTORY_API_KEY\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#FF7B72\">export\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> VISIONSTORY_API_KEY\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"sk-vs-xxxxxxxxxxxxxxxxxxx\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">curl\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> -s\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> -H\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> \"X-API-Key: \u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">$VISIONSTORY_API_KEY\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#A5D6FF\">  https:\u002F\u002Fopenapi.visionstory.ai\u002Fapi\u002Fv1\u002Fbilling\u002Fcredits\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">pip\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> install\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> visionstory\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#FF7B72\">from\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> visionstory \u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">import\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> VisionStoryClient\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">client \u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> VisionStoryClient.from_env()  \u003C\u002Fspan>\u003Cspan style=\"color:#8B949E\"># reads VISIONSTORY_API_KEY\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">curl\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> -fsSL\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> https:\u002F\u002Fdevelopers.visionstory.ai\u002Fcli\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\"> |\u003C\u002Fspan>\u003Cspan style=\"color:#FFA657\"> bash\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">visionstory\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> credits\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">visionstory\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> avatars\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">visionstory\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> voices\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">npx\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> skills\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> add\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> visionstory-ai\u002Fskills\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> --skill\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> visionstory-api\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">python3\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> .agents\u002Fskills\u002Fvisionstory-api\u002Fscripts\u002Fvisionstory_api.py\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> create-video\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79C0FF\">  --avatar-id\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> YOUR_AVATAR_ID\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79C0FF\">  --text\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> \"Hello from VisionStory.\"\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79C0FF\">  --voice-id\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> YOUR_VOICE_ID\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79C0FF\">  --output\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> result.mp4\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">curl\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> -s\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79C0FF\">  -H\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> \"X-API-Key: \u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">$VISIONSTORY_API_KEY\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79C0FF\">  -H\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> \"Content-Type: application\u002Fjson\"\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79C0FF\">  -d\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> '{\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#A5D6FF\">    \"model_id\": \"vs_character_v4\",\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#A5D6FF\">    \"avatar_id\": \"YOUR_AVATAR_ID\",\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#A5D6FF\">    \"client_request_id\": \"YOUR_UNIQUE_REQUEST_ID\",\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#A5D6FF\">    \"text_script\": {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#A5D6FF\">      \"text\": \"Hello World, this is my first test video.\",\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#A5D6FF\">      \"voice_id\": \"YOUR_VOICE_ID\",\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#A5D6FF\">      \"speech_rate\": \"normal\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#A5D6FF\">    },\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#A5D6FF\">    \"aspect_ratio\": \"9:16\",\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#A5D6FF\">    \"resolution\": \"720p\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#A5D6FF\">  }'\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#A5D6FF\">  https:\u002F\u002Fopenapi.visionstory.ai\u002Fapi\u002Fv1\u002Fvideo\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">{\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">  \"data\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">    \"video_id\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"YOUR_VIDEO_ID\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">  }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">curl\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> -s\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79C0FF\">  -H\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> \"X-API-Key: \u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">$VISIONSTORY_API_KEY\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#A5D6FF\">  \"https:\u002F\u002Fopenapi.visionstory.ai\u002Fapi\u002Fv1\u002Fvideo?video_id=YOUR_VIDEO_ID\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">curl\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> -sL\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> -o\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> result.mp4\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> \"&#x3C;video_url from the response>\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#FF7B72\">from\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> pathlib \u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">import\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> Path\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#FF7B72\">from\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> visionstory \u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">import\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> VisionStoryClient, build_video_payload\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">client \u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> VisionStoryClient.from_env()\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">payload \u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> build_video_payload(\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">    avatar_id\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"YOUR_AVATAR_ID\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">    text\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"Hello World, this is my first test video.\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">    voice_id\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"YOUR_VOICE_ID\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">video \u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> client.generate_video(payload)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">client.download(video[\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"video_url\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">], Path(\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"result.mp4\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">))\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79C0FF\">print\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">(\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"saved result.mp4\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",1788547143924]