Install
openclaw skills install @thcjp/audio-stream-upload-freeopenclaw skills install @thcjp/audio-stream-upload-free音频流上传免费版是一款面向个人创作者的轻量级音频上传工具。通过简洁的三步API流程(创建 → 上传 → 完成),帮助用户将本地音频文件快速上传至流媒体平台,并获取HLS流媒体播放链接。无需复杂配置,开箱即用.
| 能力 | 说明 |
|---|---|
| 快速创建 | 仅需标题即可创建音频对象,自动使用默认编码配置 |
| 文件上传 | 支持单文件上传,自动计算MD5哈希进行完整性校验 |
| 流链接获取 | 上传完成后获取HLS流媒体播放地址 |
| 格式兼容 | 支持MP3、WAV、AAC、FLAC等主流音频格式 |
技术实现要点:核心能力基于input_params参数与output_format配置实现,支持创建/查询/修改/删除等操作模式,通过config_options进行运行时配置. |
用input_params参数进行配置.
处理: 解析核心功能执行的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回核心功能执行的响应数据,包含状态码、结果和日志.
input_params参数,支持创建/查询/导出操作用config_options参数进行配置.
处理: 解析参数配置与调用的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回参数配置与调用的响应数据,包含状态码、结果和日志.
config_options参数,支持修改/重置/导入操作用output_format参数进行配置.
处理: 解析结果处理与输出的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回结果处理与输出的响应数据,包含状态码、结果和日志.
output_format参数,支持导出/保存/转换操作
能力覆盖范围:本skill的核心能力覆盖以下场景关键词:快速上传音频至流、媒体平台、支持基础创建、上传与完成三步流、流媒体链接、音频流上传免费版、面向个人创作者的、轻量级音频上传工、通过三步、API、调用完成音频上传、创建对象、上传文件、完成处理、支持默认快速上传、自动计算文件、哈希值、确保上传完整性校、流媒体播放链接、兼容主流音频格式等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持.个人播客创作者需要将录制好的MP3文件上传至流媒体平台,获取播放链接分享给听众.
# 领先步:创建音频对象(默认配置)
curl -s -X POST 'https://api-w3stream.attoaioz.cyou/api/videos/create' \
-H 'stream-public-key: $PUBKEY' \
-H 'stream-secret-key: $AUTH_KEY' \
-H 'Content-Type: application/json' \
-d '{
"title": "我的播客领先期",
"type": "audio"
}'
# ...
# 返回结果中提取 data.id 作为 AUDIO_ID
# 第二步:上传音频文件
FILE_SIZE=$(stat -c%s /path/to/podcast.mp3)
END_POS=$((FILE_SIZE - 1))
HASH=$(md5sum /path/to/podcast.mp3 | awk '{print $1}')
# ...
curl -s -X POST "https://api-w3stream.attoaioz.cyou/api/videos/AUDIO_ID/part" \
-H 'stream-public-key: $PUBKEY' \
-H 'stream-secret-key: $AUTH_KEY' \
-H "Content-Range: bytes 0-$END_POS/$FILE_SIZE" \
-F "file=@/path/to/podcast.mp3" \
-F "index=0" \
-F "hash=$HASH"
# 第三步:完成上传
curl -s -X GET "https://api-w3stream.attoaioz.cyou/api/videos/AUDIO_ID/complete" \
-H 'accept: application/json' \
-H 'stream-public-key: $PUBKEY' \
-H 'stream-secret-key: $AUTH_KEY'
语音教程或有声书创作者上传音频内容,获取流媒体链接嵌入到个人网站或博客.
# 上传完成后获取流媒体链接
curl -s 'https://api-w3stream.attoaioz.cyou/api/videos/AUDIO_ID' \
-H 'stream-public-key: $PUBKEY' \
-H 'stream-secret-key: $AUTH_KEY'
# ...
# 从返回的 assets 或 hls 字段中提取播放地址
独立音乐人上传原创音乐作品,获取HLS链接用于在线试听和分享.
# 完整上传流程的Python封装
python3 -c "
import requests, hashlib, os
# ...
PUBLIC_KEY = '$PUBKEY'
SECRET_KEY=${SECRET_KEY:?请设置环境变量}
BASE_URL = 'https://api-w3stream.attoaioz.cyou/api'
HEADERS = {
'stream-public-key': PUBLIC_KEY,
'stream-secret-key': SECRET_KEY
}
# ...
# 步骤1:创建音频对象
create_resp = requests.post(f'{BASE_URL}/videos/create', headers=HEADERS, json={
'title': '我的原创音乐',
'type': 'audio'
})
audio_id = create_resp.json()['data']['id']
# ...
# 步骤2:上传文件
file_path = '/path/to/music.mp3'
file_size = os.path.getsize(file_path)
with open(file_path, 'rb') as f:
file_hash = hashlib.md5(f.read()).hexdigest()
# ...
with open(file_path, 'rb') as f:
requests.post(f'{BASE_URL}/videos/{audio_id}/part', headers={
**HEADERS,
'Content-Range': f'bytes 0-{file_size-1}/{file_size}'
}, files={'file': f}, data={'index': 0, 'hash': file_hash})
# ...
# 步骤3:完成上传
requests.get(f'{BASE_URL}/videos/{audio_id}/complete', headers=HEADERS)
print(f'上传完成!音频ID: {audio_id}')
"
以下场景音频流上传免费版不适合处理:
需要视频处理、音频编辑、媒体转换、配音生成时使用。不适用于非本工具能力范围的需求.
在使用本工具前,需要准备以下凭证:
stream-public-key:流媒体平台的公钥stream-secret-key:流媒体平台的密钥# 定义变量
PUBLIC_KEY="your_public_key"
SECRET_KEY=${SECRET_KEY:?请设置环境变量}
AUDIO_FILE="/path/to/audio.mp3"
TITLE="我的音频标题"
# ...
# 领先步:创建
AUDIO_ID=$(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\": \"$TITLE\", \"type\": \"audio\"}" | python3 -c "import sys,json; print(json.load(sys.stdin)['data']['id'])")
# ...
echo "音频对象已创建,ID: $AUDIO_ID"
# ...
# 第二步:上传
FILE_SIZE=$(stat -c%s "$AUDIO_FILE")
HASH=$(md5sum "$AUDIO_FILE" | awk '{print $1}')
# ...
attoaioz.cyou/api/videos/$AUDIO_ID/part" \
-H "stream-public-key: $PUBLIC_KEY" \
-H "stream-secret-key: $SECRET_KEY" \
-H "Content-Range: bytes 0-$((FILE_SIZE-1))/$FILE_SIZE" \
-F "file=@$AUDIO_FILE" \
-F "index=0" \
-F "hash=$HASH"
# ...
# 第三步:完成
attoaioz.cyou/api/videos/$AUDIO_ID/complete" \
-H "accept: application/json" \
-H "stream-public-key: $PUBLIC_KEY" \
-H "stream-secret-key: $SECRET_KEY"
# ...
echo "上传完成!"
响应解析: 完成完成后,查看输出响应确认任务状态。成功时输出包含解析摘要和响应数据;失败时根据错误信息排查问题,查阅错误解析章节获取恢复步骤.
# 环境变量配置(推荐)
export STREAM_PUBLIC_KEY="your_public_key"
export STREAM_SECRET_KEY=${SECRET_KEY:?请设置环境变量}
| 上传方式 | 格式 | 说明 |
|---|---|---|
| 单文件上传 | bytes 0-{size-1}/{size} | 整个文件一次上传 |
| 分片上传 | bytes {start}-{end}/{total} | 大文件分段上传 |
401错误表示API密钥无效。请检查 stream-public-key 和 stream-secret-key 是否正确,确认密钥未过期.
音频上传完成后需要经过转码处理。如果返回状态为 transcoding,请等待几分钟后再次查询.
确保格式为 bytes {起始位置}-{结束位置}/{总大小}。单文件上传时,起始位置为0,结束位置为文件大小减1.
支持MP3、WAV、AAC、FLAC、OGG等主流音频格式。建议使用MP3格式以获得优秀兼容性.
免费版建议单个文件不超过500MB。如需上传更大文件,建议升级至PRO版本使用分片上传功能.
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| curl | 系统工具 | 必需 | 系统自带或包管理器安装 |
| 流媒体平台API | 外部API | 必需 | 在平台注册获取 |
| Python 3 | 运行时 | 可选 | python.org 下载安装 |
| requests | Python库 | 可选 | pip install requests |
stream-public-key:流媒体平台公钥,通过HTTP头发送stream-secret-key:流媒体平台密钥,通过HTTP头发送| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
{
"success": true,
"data": {
"result": "音频流上传免费版处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "audio stream upload"
}
},
"execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
"error": null
}