跳到主要内容

上传并扩展音乐

POST 

https://kieai.erweima.ai/api/v1/generate/upload-extend

此 API 在保留音频轨道原始样式的同时扩展了音轨。它包括 Suno 的上传功能,允许用户上传音频文件进行处理。预期的结果是更长的音轨,无缝地延续输入的风格。

参数使用指南

  • 当 defaultParamFlag 为 true(自定义参数)时:

    • 如果 instrumental 为 true:需要提供 style 、 title和uploadUrl
    • 如果 instrumental 为 false:需要提供 style、prompt 、 title和uploadUrl
    • prompt 长度限制:3000字符
    • style 长度限制:200字符
    • title 长度限制:80字符
    • continueAt 音频开始扩展的秒数(该参数需大于0,且小于所上传视频的时长)
    • uploadUrl 用于指定音频文件的上传位置;确保上传的音频长度不超过 2 分钟。
  • 当 defaultParamFlag 为 false(使用默认参数)时:

    • 无论 instrumental 设置如何,仅需提供 uploadUrl和prompt
    • 其他参数将使用原音频的参数

开发者注意事项

  1. 生成的文件将保留14天
  2. 模型版本必须与源音乐保持一致
  3. 此功能非常适合通过延长现有音乐创作更长的作品
  4. uploadUrl 参数用于指定音频文件的上传位置;请提供有效的 URL。

Request

Bodyrequired

    uploadUrlurirequired

    用于上传音频文件的 URL,无论 defaultParamFlag 是 true 还是 false,都是必需的。确保上传的音频长度不超过 2 分钟。

    Example: https://api.example.com/upload
    defaultParamFlagbooleanrequired

    启用自定义模式进行高级音频生成设置。

    • 设为 true 使用自定义参数模式(需要提供 styletitleuploadUrl;如果 instrumentalfalse,则需要提供 uploadUrlprompt)。如果 instrumentalfalse,提示词将严格用作歌词。
    • 设为 false 使用非自定义模式(只需要提供 uploadUrl)。歌词将根据提示词自动生成。
    Example: true
    instrumentalboolean

    决定音频是否为纯音乐(无歌词)。

    • 在自定义参数模式下(defaultParamFlag: true):
      • 如果为 true:只需提供 styletitleuploadUrl
      • 如果为 false:需要提供 styletitlepromptprompt 将作为精确歌词使用)和uploadUrl
    • 在非自定义参数模式下(defaultParamFlag: false):不影响必填字段(只需 uploadUrl)。如果为 false,将自动生成歌词。
    Example: true
    promptstring

    描述音乐应如何延长。当 defaultParamFlag 为 true 时必填。

    Example: 用更多舒缓的音符延长音乐
    stylestring

    音乐风格,例如爵士、古典、电子等

    Example: 古典
    titlestring

    音乐标题

    Example: 宁静钢琴延长版
    continueAtnumber

    音频开始扩展的时间点(以秒为单位)。

    • defaultParamFlagtrue 时必填。
    • 取值范围:大于0且小于上传音频的总时长。
    • 指定从原始音频的哪个时间点开始进行扩展。
    Example: 60
    modelstringrequired

    使用的模型版本,必须与源音频保持一致

    Possible values: [V3_5, V4, V4_5]

    Example: V3_5
    negativeTagsstring

    需要在生成中排除的音乐风格

    Example: 舒缓钢琴
    callBackUrlurirequired

    在音乐延长完成时接收任务完成通知的URL。

    Example: https://api.example.com/callback

Responses

请求成功

Schema
    codeStatusCode (integer)

    响应状态码

    Enum ValueDescription
    200成功 - 请求已成功处理
    401未授权 - 缺少身份验证凭据或凭据无效
    402积分不足 - 账户没有足够的积分执行此操作
    404未找到 - 请求的资源或端点不存在
    409冲突 - WAV记录已存在
    422参数错误 - 请求参数未通过验证检查
    429超出限制 - 已超过对此资源的请求限制
    455服务不可用 - 系统当前正在进行维护
    500服务器错误 - 在处理请求时发生意外错误
    505功能已禁用 - 请求的功能当前已禁用

    Possible values: [200, 401, 402, 404, 409, 422, 429, 455, 500, 505]

    msgstring

    当 code != 200 时的错误信息

    Example: success
    data object

    响应数据。当 code 为 200 时,包含新生成的任务ID。当 code 为 409(WAV记录已存在)时,包含之前已生成的WAV记录的任务ID。

    taskIdstring

    任务ID,用于后续查询任务状态

    Example: 5c79****be8e

Callbacks

POST 

{$request.body#/callBackUrl}

当音频生成完成时,系统会调用此回调通知结果。

回调示例

{
"code": 200,
"msg": "All generated successfully.",
"data": {
"callbackType": "complete",
"task_id": "2fac****9f72",
"data": [
{
"id": "8551****662c",
"audio_url": "https://example.cn/****.mp3",
"source_audio_url": "https://example.cn/****.mp3",
"stream_audio_url": "https://example.cn/****",
"source_stream_audio_url": "https://example.cn/****",
"image_url": "https://example.cn/****.jpeg",
"source_image_url": "https://example.cn/****.jpeg",
"prompt": "[Verse] 夜晚城市 灯火辉煌",
"model_name": "chirp-v3-5",
"title": "钢铁侠",
"tags": "electrifying, rock",
"createTime": "2025-01-01 00:00:00",
"duration": 198.44
}
]
}
}

Body

    codeinteger

    状态码

    Example: 200
    msgstring

    返回消息

    Example: All generated successfully
    data object
    callbackTypestring

    回调类型:text(文本生成完成)、first(第一首生成完成)、complete(全部生成完成)

    Possible values: [text, first, complete]

    task_idstring

    任务ID

    data object[]
  • Array [
  • idstring

    音频唯一标识

    audio_urlstring

    音频文件URL

    source_audio_urlstring

    原始音频文件URL

    stream_audio_urlstring

    流式音频URL

    source_stream_audio_urlstring

    原始流式音频URL

    image_urlstring

    封面图片URL

    source_image_urlstring

    原始封面图片URL

    promptstring

    生成提示词/歌词

    model_namestring

    使用的模型名称

    titlestring

    音乐标题

    tagsstring

    音乐标签

    createTimedate-time

    创建时间

    durationnumber

    音频时长(秒)

  • ]

Callbacks Responses

回调接收成功

Authorization: http

name: BearerAuthtype: httpscheme: bearerbearerFormat: API Keydescription: 所有接口都需要通过 Bearer Token 方式进行认证。

获取 API Key:
1. 访问 [API Key 管理页面](https://kie.ai/api-key) 获取您的 API Key

使用方式:
在请求头中添加:
Authorization: Bearer YOUR_API_KEY

注意事项:
- 请妥善保管您的 API Key,不要泄露给他人
- 如果怀疑 API Key 泄露,请立即在管理页面重置
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://kieai.erweima.ai/api/v1/generate/upload-extend");
request.Headers.Add("Accept", "application/json");
request.Headers.Add("Authorization", "Bearer <token>");
var content = new StringContent("{\n \"uploadUrl\": \"https://api.example.com/upload\",\n \"defaultParamFlag\": true,\n \"instrumental\": true,\n \"prompt\": \"用更多舒缓的音符延长音乐\",\n \"style\": \"古典\",\n \"title\": \"宁静钢琴延长版\",\n \"continueAt\": 60,\n \"model\": \"V3_5\",\n \"negativeTags\": \"舒缓钢琴\",\n \"callBackUrl\": \"https://api.example.com/callback\"\n}", null, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
Request Collapse all
Base URL
https://kieai.erweima.ai
Auth
Body required
{
  "uploadUrl": "https://api.example.com/upload",
  "defaultParamFlag": true,
  "instrumental": true,
  "prompt": "用更多舒缓的音符延长音乐",
  "style": "古典",
  "title": "宁静钢琴延长版",
  "continueAt": 60,
  "model": "V3_5",
  "negativeTags": "舒缓钢琴",
  "callBackUrl": "https://api.example.com/callback"
}
ResponseClear

Click the Send API Request button above and see the response here!