场景十: 上传续写
本场景演示“上传本地音频 → 续写/二次创作”的完整链路,共 6 步。除第 2 步外,所有请求都发往 Base URL https://api.allyang.cn,并携带请求头 Authorization: Bearer <令牌>。
API 有 6 个步骤
1.上传请求
post https://api.allyang.cn/suno/uploads/audio
请求体
json
{ "extension": "mp3" }
返回示例
json
{
"id": "<audio_id>",
"url": "<预签名上传地址>",
"fields": {
"Content-Type": "audio/mpeg",
"key": "<对象存储 key>",
"AWSAccessKeyId": "<临时凭证>",
"policy": "<策略串>",
"signature": "<签名>"
}
}
返回中的 id 即下文使用的 audio_id,url 为第 2 步的上传地址。
2.上传文件
post <第 1 步返回的 url>
请求体由第 1 步返回的 fields 各字段加音频文件本体组成(multipart/form-data):
shell
curl --request POST \
--url '<第 1 步返回的 url>' \
--header 'content-type: multipart/form-data' \
--form Content-Type=audio/mpeg \
--form key=<fields.key> \
--form AWSAccessKeyId=<fields.AWSAccessKeyId> \
--form policy=<fields.policy> \
--form signature=<fields.signature> \
--form file=@/path/to/your.mp3
返回 20x 即表示上传成功。
3.报告上传完毕
post https://api.allyang.cn/suno/uploads/audio/{id}/upload-finish
请求体
json
{ "upload_type": "file_upload", "upload_filename": "your.mp3" }
4.查询上传处理状态
get https://api.allyang.cn/suno/uploads/audio/{id}
返回示例
json
{
"id": "<audio_id>",
"status": "complete",
"error_message": null,
"s3_id": "<clip_id>",
"title": "<标题>",
"image_url": "<封面地址>"
}
status 为 complete 时表示处理完成。
5.初始化音频文件
post https://api.allyang.cn/suno/uploads/audio/{id}/initialize-clip
请求体
json
{}
返回示例
json
{ "clip_id": "<clip_id>" }
6.获取与进行二次创作
把上一步的 clip_id 填入「获取歌曲」接口的 id 参数即可取回作品。
旧版上传扩展方式(mv 为 chirp-v3-5-upload / chirp-v4-upload)已弃用;现推荐通过创建歌曲任务接口续写——continue_clip_id 填上一步的 clip_id,task 填 upload_extend,mv 填目标版本:
json
{
"prompt": "<歌词>",
"tags": "",
"negative_tags": "",
"mv": "chirp-v4",
"title": "<标题>",
"continue_clip_id": "<clip_id>",
"continue_at": 10,
"task": "upload_extend"
}