快速上传音频至 AIOZ Stream API。支持默认或自定义编码配置创建音频对象,上传文件并完成处理后返回音频链接。
AIOZ Stream Audio上传是一项面向实际任务的技能,主要用于用 API 密钥认证快速将音频上传到 AIOZ Stream API;完整上传流程需要 3 API 呼叫: 创建 → 上传 Part → 完成;
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
使用 API 密钥认证,快速将音频上传至 AIOZ Stream API。完整上传流程需调用 3 个 API:创建 → 上传分片 → 完成。
本技能采用 API 密钥认证。用户必须提供以下两项:
stream-public-key:用户的 AIOZ Stream 公钥stream-secret-key:用户的 AIOZ Stream 密钥若用户未提供上述密钥,请主动向其索取。这些密钥将在所有 API 请求中作为 HTTP Header 发送。
当用户希望上传音频时,请引导其选择以下任一方式:
以最小化配置创建音频对象——仅需指定标题,随后上传文件。
示例用户输入:
“上传音频文件 /path/to/audio.mp3,标题为 My Podcast”
以完整编码配置创建音频对象,支持质量预设、码率、采样率、标签、元数据等参数,随后上传文件。
示例用户输入:
“上传音频并应用自定义配置:标题 My Podcast,最高质量 HLS,320kbps,48000Hz,标签 podcast,tech”
默认配置:
curl -s -X POST 'https://api-w3stream.attoaioz.cyou/api/videos/create'
-H 'stream-public-key: PUBLIC_KEY'
-H 'stream-secret-key: SECRET_KEY'
-H 'Content-Type: application/json'
-d '{
"title": "AUDIO_TITLE",
"type": "audio"
}'
自定义配置(含编码参数):
curl -s -X POST 'https://api-w3stream.attoaioz.cyou/api/videos/create'
-H 'stream-public-key: PUBLIC_KEY'
-H 'stream-secret-key: SECRET_KEY'
-H 'Content-Type: application/json'
-d '{
"title": "AUDIO_TITLE",
"type": "audio",
"description": "DESCRIPTION",
"is_public": true,
"tags": ["tag1", "tag2"],
"metadata": [
{"key": "KEY", "value": "VALUE"}
],
"qualities": [
{
"resolution": "highest",
"type": "hls",
"container_type": "mpegts",
"audio_config": {
"codec": "aac",
"bitrate": 320000,
"channels": "2",
"sample_rate": 48000,
"language": "en",
"index": 0
}
},
{
"resolution": "standard",
"type": "hls",
"container_type": "mpegts",
"audio_config": {
"codec": "aac",
"bitrate": 128000,
"channels": "2",
"sample_rate": 44100,
"language": "en",
"index": 0
}
}
]
}'
响应处理:提取 data.id 字段值——该值即为后续步骤中使用的 AUDIO_ID。
将实际音频文件的二进制内容上传至已创建的音频对象。
首先,获取文件大小并计算 MD5 哈希值:
# 获取文件大小(跨平台兼容)
FILE_SIZE=$(stat -f%z /path/to/audio.mp3 2>/dev/null || stat -c%s /path/to/audio.mp3)
END_POS=$((FILE_SIZE - 1))
# 计算 MD5 哈希值
HASH=$(md5sum /path/to/audio.mp3 | awk '{print $1}')
然后通过 multipart form-data 方式上传,并携带 Content-Range Header:
curl -s -X POST "https://api-w3stream.attoaioz.cyou/api/videos/AUDIO_ID/part"
-H 'stream-public-key: PUBLIC_KEY'
-H 'stream-secret-key: SECRET_KEY'
-H "Content-Range: bytes 0-$END_POS/$FILE_SIZE"
-F "file=@/path/to/audio.mp3"
-F "index=0"
-F "hash=$HASH"
重要说明:Content-Range Header 是上传成功的必要条件。格式为:bytes {start}-{end}/{total_size},其中:
start=0,end=file_size-1,total_size=file_sizestart 与 end 值form-data 字段说明:
file:音频文件二进制内容(使用 @/path/to/file 语法)index:0(单分片上传时固定为 0;多分片上传时按顺序递增)hash:该分片文件的 MD5 哈希值文件分片上传成功后,调用完成接口以最终确认上传:
curl -s -X GET "https://api-w3stream.attoaioz.cyou/api/videos/AUDIO_ID/complete"
-H 'accept: application/json'
-H 'stream-public-key: PUBLIC_KEY'
-H 'stream-secret-key: SECRET_KEY'
此操作将触发转码任务。此时上传流程即视为成功。
完成上传后,调用详情接口获取流媒体 URL:
curl -s 'https://api-w3stream.attoaioz.cyou/api/videos/AUDIO_ID'
-H 'stream-public-key: PUBLIC_KEY'
-H 'stream-secret-key: SECRET_KEY'
解析响应体,在 assets 或 hls 字段中提取 HLS URL 并返回给用户。
重要说明:音频输出不包含 mp4_url 字段,仅提供 HLS/DASH 流媒体链接。
resolution 字段):standard — 标准质量good — 良好质量highest — 最高质量lossless — 无损质量type 字段):hls — HTTP Live Streaming(容器格式:mpegts 或 mp4)dash — Dynamic Adaptive Streaming(容器格式:fmp4)codec:aac(唯一支持的编码器)bitrate:整型数值,单位为 bit/sec(例如:128000、256000、320000)channels:"2"(立体声)sample_rate:8000、11025、16000、22050、32000、44100、48000、88200、96000language:BCP 47 语言代码(例如:en、vi)index:0data.idAUDIO_ID相关专题
热门下载
相关下载
精品课程
共0课时 | 0人学习
共17课时 | 4.2万人学习
最新文章