调用Vidu API生成1080P视频时,地域、密钥、认证头、请求体这四个环节必须全部正确配置,缺一不可。很多开发者以为拿到Key就能直接调用,结果一请求就报403——跨地域错误;或者报401——Authorization头中空格多了一个或少了一个,导致鉴权失败,请求被拦截。

要让自己的应用顺利调通Vidu API并成功生成1080P视频,必须先完成地域绑定、获取合法的API Key、构造带时间戳的认证头,再提交符合字段规范的JSON请求体。跨地域调用直接返回403,Authorization头多一个空格或少一个空格都会触发401错误,没有商量余地。
开通服务并获取北京地域API Key
Vidu API目前仅支持中国内地(北京)地域调用。模型、Endpoint和API Key三者必须严格同属该地域,否则所有请求都会被拦截,没有任何例外。
第一步:登录阿里云百炼控制台,进入“大模型服务平台百炼”。
第二步:在搜索栏输入vidu,找到Vidu模型卡片,点击“立即开通”,勾选协议并完成授权。
第三步:进入“API密钥管理”,【务必手动切换地域为中国内地(北京)】,然后点击“创建密钥”,复制生成的以sk-开头的API Key。这个Key只能用于北京地域的Endpoint,拿到上海或新加坡去调用,直接失败。
配置认证请求头与时间戳
Bearer Token认证对格式极其敏感,空格、大小写偏差、时间偏移超过20分钟,都会导致鉴权失败。这不是危言耸听,这是最容易踩的坑。
方法一:直接使用Bearer认证(适用于基础调用)
设置请求头Authorization的值为Bearer sk-xxxxx。注意,Bearer后面【有且仅有一个英文半角空格】,紧跟着API Key,中间不能换行、不能加引号、不能有任何中文空格。少一个空格或多一个空格,都会收到401错误。
方法二:启用HMAC签名(适用于高安全要求场景)
拼接待签名字符串:method + access_key + timestamp + v,其中timestamp必须是毫秒级整数;用密钥计算HMAC-SHA256,将结果Base64编码后填入sign参数;同时在请求头中添加X-Vidu-Timestamp和X-Vidu-Signature字段。这套签名机制比Bearer更严谨,但配置也更复杂一些。
发起图生视频异步任务
图生视频接口不会直接返回视频文件,而是返回一个task_id,你需要拿着这个ID去轮询结果。另外,同一组参数重复提交时,接口会复用已有的task_id,不会新建任务,算是节省了资源。
1. 向北京Endpoint发送POST请求:
https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
2. 请求体必须是JSON格式,包含三个核心字段:
• model:固定填"vidu-v1"
• input:对象里包含image_url(必须是公网可直访的PNG/JPG URL,一定要用HTTPS)和prompt(中文提示词,建议控制在50字以内)
• parameters:至少指定aspect_ratio(比如"16:9"或"9:16")和seed(建议用随机整数,避免重复生成)
3. 成功响应状态码为200,从返回体中提取task_id字段。这个ID有效期为24小时,后续轮询全靠它。
轮询获取生成结果
任务状态不是瞬间完成的,需要主动轮询。轮询间隔建议至少2秒,太频繁会触发429限流,得不偿失。
向https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}发起GET请求,携带相同的Authorization头。
当返回JSON中status字段变为"succeeded"时,从output.video_url字段提取直链URL。这个链接7天内有效,下载后直接得到无水印的MP4文件,记得及时保存。
