简介
童锐网络是国内专注于家庭教育,为家长提供精选教育资源的互联网信息平台。作为国内首个关注可触控终端(安卓/苹果/智能TV/智能玩具)儿童教育软件需求、研发、推广生态链发展的平台,童锐网络已经与国内外众多儿童App开发企业和儿童出版企业形成良好合作,为数千万华人家庭提供精选的教育资源分发服务。
童锐网络儿童教育资源开放平台是童锐网络为第三方开发者量身定制的儿童教育资源再分发渠道。通过开放平台,第三方开发者可以很方便地利用童锐网络丰富的儿童教育资源提供个性化服务,提升产品质量与服务范围。
开放平台目前以儿童在线教育音频服务为主,今后将逐步开放童书、视频、社交等不同领域的资源。
账号体系
开放平台采用申请注册制,第三方开发者可以在开放平台上填写注册申请:免费试用,童锐网络审核通过后,帮您开通账户,您才可使用开放平台各项服务搭建自己的应用。
开放平台账号由邮件、密码、业务联系人等信息组成,您在申请注册时填入,童锐网络审核确认其信息的合法性。
开放服务
由童锐网络开发搭建的对外提供的服务业务,第三方可以选取一个或多个开放服务。每个服务视业务不同由童锐网络分别提供免费、有限、有偿或定制等服务。视业务领域、服务等级、服务质量需求不同,童锐网络有权对所提供的部分服务收取服务费用,具体可和业务人员洽谈。
接入规范
一、 一个设备对应一个 ID 原则
必须使用唯一的设备 ID,获取 Token。平台会识别多设备共用ID,以及进行ID行为审查来识别违规行为。设备ID是平台与内容商结算的重要依据。
二、 必须使用带 Token 的 CDN 地址调用音频
设备在播放音频时,需要先通过 API 获取 CDN 地址和Token ,然后将 CDN 地址和 Token 拼接在一起才能获取音频,所以在得到 CDN 地址后,去获取音频时必须带上 Token,平台会校验token。
三、 单一设备的API和CDN请求小于等于10次/秒
同一个设备 API 访问频率小于等于10次/秒,同一个设备 CDN 访问频率小于等于10次/秒。
四、 进行压力测试必须向平台报备
在压力测试进行前,需要提前告知,约定测试时间、测试设备 ID等,从而不影响服务器正常工作。
使用流程概述
open api注册使用流程
- 注册试用账号(目前需联系童锐网络注册:免费试用)
- 登陆open api 控制台
- 创建一个 App ID,获取相应的App Secret.
- 使用App ID和App Secret生成一次请求的授权信息。
- 对某api签名授权后,发起请求。
音频资源授权访问流程
我们生成的音频链接是设备无关的,这样,便于您缓存,但我方又需要知道您每次使用音频时的设备信息,以便于分析及业务结算,所以我方提供了一个设备token获取api,您应该在访问音频链接前,为设备获取相应的token,并拼装到音频链接上,为之进行资源访问授权,之后,再去访问改造后的音频链接。
- 用音频相关api获取音频url(可缓存),例如:
http://cdn.open.idaddy.cn/xxxxxxxxx.mp3
- 用
/audio/v2/refresh_device_token
api为device_id为X0001的设备换取其device_token : zzzzzzzzzzzzzzzzzzzzzzz - 对音频url拼接token参数 :
http://cdn.open.idaddy.cn/xxxxxxxxx.mp3?token=zzzzzzzzzzzzzzzzzzzzzzz
- 用拼接后的url播放音频资源
java-demo
界面
图1
图2
图3
运行java-demo
要运行demo程序,需要安装java 8 jre.
下载源码
请求及响应
open-api 授权
授权请求
# 定义公共请求参数
APP_ID=my-app-id-test00001
APP_SECRET=my-app-secret-test00001
TIMESTAMP=$(date +%s)
SIGNATURE=$(echo -n "${APP_ID}${APP_SECRET}${TIMESTAMP}" | openssl dgst -sha1 -hex | cut -d' ' -f2)
NONCE=$(openssl rand -base64 12)
# 使用上面定义的公共参数作为鉴权参数(每行结尾的“\”指明此为多行命令,便于阅读)
curl --request POST --data "app_id=${APP_ID}\
&device_id=x1000\
×tamp=${TIMESTAMP}\
&nonce=${NONCE}\
&signature=${SIGNATURE}\
&offset=0\
&limit=5\
&cat_ids=[]" http://open.idaddy.cn/audio/v2/list
# 或者用下面更推荐的命令格式
curl --request POST \
--data-urlencode "app_id=${APP_ID}" \
--data-urlencode "device_id=x1000" \
--data-urlencode "timestamp=${TIMESTAMP}" \
--data-urlencode "nonce=${NONCE}" \
--data-urlencode "signature=${SIGNATURE}" \
--data-urlencode "offset=0" \
--data-urlencode "limit=5" \
--data-urlencode 'cat_ids=[]' \
http://open.idaddy.cn/audio/v2/list
请把代码中的
my-app-id-test00001
和my-app-secret-test00001
替换为您自己的 API Key和API Secret。
服务授权基于App ID、Service Key,用户可以根据需要生成多个不同的App ID、Service Key对应于不同的应用。
- 生成timestamp。
- 用(app_id+app_secret+timestamp)生成signature。
- 用app_id,timestamp,signature等值作为公共参数请求开放服务。
公共参数:
名称 | 类型 | 是否必选 | 描述 |
---|---|---|---|
app_id | string | 必选 | app ID |
timestamp | int | 必选 | 调用时间戳,单位秒。例如: 1421234567 |
nonce | string | 必选 | 最长32位随机字符串,每次请求都不同,防止重放攻击 |
signature | string | 必选 | sha1(app_id+secret+timestamp) |
音频资源授权
获取play_url(请求或缓存)
# 原始音频链接,不能直接访问资源
http://cdn.open.idaddy.cn/xxxxxxxxxx.mp3
refresh_device_token-请求
curl --request POST \
--data-urlencode "app_id=${APP_ID}" \
--data-urlencode "timestamp=${TIMESTAMP}" \
--data-urlencode "nonce=${NONCE}" \
--data-urlencode "signature=${SIGNATURE}" \
--data-urlencode "device_id=x1000" \ # 用device_id换token
http://open.idaddy.cn/audio/v2/refresh_device_token
refresh_device_token-响应
{
"data": {
"device_token": "zzzzzzzzzzzzz",
"device_id": "x1000",
"created_at": "2017-06-18T00:07:08Z",
"expires_at": "2017-06-25T00:00:00Z"
},
"retcode": 0
}
拼接token,访问音频资源:
curl -o idaddy.mp3 http://cdn.open.idaddy.cn/xxxxxxxxxx.mp3?token=zzzzzzzzzzzzz
token规则:
- 用device_id从
/audio/v2/refresh_device_token
换取相应的device_token, - 按格式
http://cdn.open.idaddy.cn/a...001.mp3?token={有效的device_token}
为音频附加为名为“token”的查询参数。 - device_token过期后将不能使用音频资源,目前1周过期,过期前应重新获取。
- device_token已符合base64 URL安全编码格式(rfc3548#page-6),接入方无需对其进行url_encode,直接设置”token”参数即可。
响应及错误
response success : http code = 200 , retcode = 0
{
"audioinfos": {
"cats": [
{
"cat_count": 0,
"cat_icon_url": "http://img.idaddy.cn/f/h/0/161756jkqdhs00z30ri3ji.png",
"cat_name": "儿歌",
"cat_id": 6707,
"cat_group_age_scope": "-1-8",
"cat_parent": 0
}
]
},
"retcode": 0
}
{
"audioinfos": {
"contents": [
{
"status": 0,
"name": "不爱睡觉的小猴子",
"play_url": "http://cdn.open.idaddy.cn/apsmp3/f6d3/idaddy0000000001/201711210000/0/ADQGN1A9DTI.YS83L3BwaXJtNGNiLmF1ZGlv.mp3",
"price": 0,
"has_chapter": 0,
"play_url_with_token": "http://cdn.open.idaddy.cn/apsmp3/f6d3/idaddy0000000001/201711210000/0/ADQGN1A9DTI.YS83L3BwaXJtNGNiLmF1ZGlv.mp3?token=GOBhiXdgkIDR_N_wzWgFmA.Mg14MTAwMA0xNzEyMjE",
"taxonomys": "儿童阅读从听开始,2013年度精选集,故事旅行记,睡前故事",
"md5": "10b31fe543ffdb000fbf6950a2fe237d",
"id": "ADQGN1A9DTI=",
"icon": "http://img.idaddy.cn//b/7/hn4atvn7.jpg"
}
]
},
"retcode": 0
}
response error : http code = 200 , retcode > 0
{
"msg": "{'signature': u'Required'}",
"retcode": 2
}
api调用,除了404无服务外,不管成功失败,http status都等于200,响应体均为json格式,其中包含应用级响应码”retcode”:
retcode | success | Column C |
---|---|---|
0 | ok | 返回成功 |
1 | error | 系统错误 |
2 | error | 输出内容出错、缺失 |
失败时附带”msg”字段,包含出错信息
api - device_token
刷新device_token
refresh_device_token-请求
curl --request POST \
--data-urlencode "app_id=${APP_ID}" \
--data-urlencode "timestamp=${TIMESTAMP}" \
--data-urlencode "nonce=${NONCE}" \
--data-urlencode "signature=${SIGNATURE}" \
--data-urlencode "device_id=x1000" \
http://open.idaddy.cn/audio/v2/refresh_device_token
refresh_device_token-响应
{
"data": {
"device_token": "6P9ugZZ5KwCUxovLknBr2Q.Mw14MTAwMA0xODAyMTY",
"device_id": "x1000",
"created_at": "2018-01-17T03:55:14Z",
"expires_at": "2018-02-16T00:00:00Z"
},
"retcode": 0
}
HTTP Request
POST http://open.idaddy.cn/audio/v2/refresh_device_token
POST参数(application/x-www-form-urlencoded)
name | type | required | description |
---|---|---|---|
app_id | string | 必选 | app ID |
device_id | string | 必选 | 设备ID,不能包含回车换行等特殊字符,建议长度不要超过40字节 |
app_uid | string | 可选 | 客户端用户名 |
timestamp | int | 必选 | 调用时间戳,单位秒。例如: 1421234567 |
nonce | string | 必选 | 最长32位随机字符串,每次请求都不同,防止重放攻击 |
signature | string | 必选 | sha1(app_id+secret+timestamp) |
response
name | type | description |
---|---|---|
data.device_id | string | 设备ID |
data.device_token | string | device_token |
data.created_at | string | token创建时间,utc 零时区时间 |
data.expires_at | string | token截止时间,utc 零时区时间 |
api - 音频分类
音频故事是按分类树组织的,分类树参考如下:
- 儿歌(6707)
- 经典儿歌(8118)
- 好习惯(10719)
- 粤语童谣(11311)
- 幼儿园童谣(11423)
- 北京童谣(12521)
- 绕口令(12912)
- 韵律童谣(13945)
- 幼小衔接(14655)
- 儿童谜语a(14691)
- 流行儿歌a(15908)
- 故事(6708)
- 睡前故事(6709)
- 历史故事(6711)
- 故事成语(7672)
- 智慧故事(10046)
- 故事生活(10756)
- 动物故事(11268)
- 女孩故事(11549)
- 男孩故事(11893)
- 经典童话(12029)
- 经典寓言(12030)
- 音乐(6948)
- 起床音乐(10670)
- 古典音乐(10717)
- 睡前音乐(10743)
- 音乐启蒙(10912)
- 民族音乐(10929)
- 小提琴曲(13729)
- 小学音乐(14228)
- 英语(7156)
- 英语儿歌(10715)
- 英语故事(10716)
- 英语童谣(11043)
- 英语启蒙(11678)
- 趣味单词(11948)
- 国学(7716)
- 古诗精选(7983)
- 国学启蒙(8119)
- 国学诵读(10510)
- 传统经典(11837)
- 宋词精选(12192)
- 胎教(17176)
- 胎教音乐(7822)
- 名著(17164)
- 中国名著(8120)
- 外国名著(16924)
开放平台的分类树,目前有2级:
- 查询时,不指定分类id,将返回一级分类列表
- 查询时,指定分类id,将返回其子类列表。
- 查询时,如果指定depth参数,将返回分类及其子类列表。
分类字段如下:
name | description |
---|---|
cat_name | 分类名称 |
cat_id | 分类id |
cat_icon_url | 分类图标 |
cat_count | 下属数量 |
cat_parent | 父分类id |
cat_group_age_scope | 适合年龄 |
cats | 子类列表, depth>1时有值 |
获取分类列表
查询一级分类-请求
curl -v --request POST \
--data-urlencode "app_id=${APP_ID}" \
--data-urlencode "device_id=x1000" \
--data-urlencode "timestamp=${TIMESTAMP}" \
--data-urlencode "nonce=${NONCE}" \
--data-urlencode "signature=${SIGNATURE}" \
--data-urlencode "offset=0" \
--data-urlencode "limit=5" \
--data-urlencode "cat_ids=[]" \
http://open.idaddy.cn/audio/v2/list
查询一级分类-响应
{
"audioinfos": {
"cats": [
{
"cat_count": 0,
"cat_icon_url": "http://img.idaddy.cn/f/h/0/161756jkqdhs00z30ri3ji.png",
"cat_name": "儿歌",
"cat_id": 6707,
"cat_group_age_scope": "-1-8",
"cat_parent": 0
},
{
"cat_count": 0,
"cat_icon_url": "http://img.idaddy.cn/f/h/0/161810d2n0b0sgtsgmr6gr.png",
"cat_name": "故事",
"cat_id": 6708,
"cat_group_age_scope": "1+",
"cat_parent": 0
},
{
"cat_count": 0,
"cat_icon_url": "http://img.idaddy.cn/f/h/6/iqak33f4.png",
"cat_name": "音乐",
"cat_id": 6948,
"cat_group_age_scope": "0+",
"cat_parent": 0
},
{
"cat_count": 0,
"cat_icon_url": "http://img.idaddy.cn/f/h/9/8ujigxlg.png",
"cat_name": "英语",
"cat_id": 7156,
"cat_group_age_scope": "1+",
"cat_parent": 0
},
{
"cat_count": 0,
"cat_icon_url": "http://img.idaddy.cn/f/h/1/181829t8qe5g4z2m9uxhp6.png",
"cat_name": "国学",
"cat_id": 7716,
"cat_group_age_scope": "0+",
"cat_parent": 0
}
]
},
"retcode": 0
}
查询子分类-请求
curl --request POST \
--data-urlencode "app_id=${APP_ID}" \
--data-urlencode "device_id=x1000" \
--data-urlencode "timestamp=${TIMESTAMP}" \
--data-urlencode "nonce=${NONCE}" \
--data-urlencode "signature=${SIGNATURE}" \
--data-urlencode "offset=0" \
--data-urlencode "limit=5" \
--data-urlencode "cat_ids=[6707,6708]" \
http://open.idaddy.cn/audio/v2/list
查询子分类-响应
{
"audioinfos": {
"cats": [
{
"cat_count": 243,
"cat_icon_url": "http://img.idaddy.cn/f/h/4/ee76icrb.jpg",
"cat_name": "睡前故事",
"cat_id": 6709,
"cat_group_age_scope": "1+",
"cat_parent": 6708
},
{
"cat_count": 19,
"cat_icon_url": "http://img.idaddy.cn/f/h/4/2emvlhmi.jpg",
"cat_name": "历史故事",
"cat_id": 6711,
"cat_group_age_scope": "4+",
"cat_parent": 6708
},
{
"cat_count": 4,
"cat_icon_url": "http://img.idaddy.cn/f/h/4/oj5ty56b.jpg",
"cat_name": "成语故事",
"cat_id": 7672,
"cat_group_age_scope": "3+",
"cat_parent": 6708
},
{
"cat_count": 230,
"cat_icon_url": "http://img.idaddy.cn/f/h/4/xs4ozwyc.jpg",
"cat_name": "热门儿歌",
"cat_id": 8118,
"cat_group_age_scope": "-1-6",
"cat_parent": 6707
},
{
"cat_count": 176,
"cat_icon_url": "http://img.idaddy.cn/f/h/4/nemc7qvb.jpg",
"cat_name": "科普故事",
"cat_id": 10047,
"cat_group_age_scope": "3+",
"cat_parent": 6708
}
]
},
"retcode": 0
}
HTTP Request
POST http://open.idaddy.cn/audio/v2/list
POST参数(application/x-www-form-urlencoded)
name | type | required | description |
---|---|---|---|
app_id | string | 必选 | app ID |
device_id | string | 必选 | 设备ID号 |
app_uid | string | 可选 | 客户端用户名 |
timestamp | int | 必选 | 调用时间戳,单位秒。例如: 1421234567 |
nonce | string | 必选 | 最长32位随机字符串,每次请求都不同,防止重放攻击 |
signature | string | 必选 | sha1(app_id+secret+timestamp) |
offset | int | 可选 | 起始位置 默认:0 |
limit | int | 可选 | 分页记录限制 默认:30 最大:100 |
cat_ids | string | 可选 | 欲查询的cat id,JSON格式,为空时输出所有一级分类 |
depth | int | 可选 | 分类树查询深度 默认:1 |
api - 音频
按是否有章节划分为:
- has_chapter=0, 独立音频/单章节音频
- has_chapter=1, 多章节音频
可设置详情选项调整输出内容:
- verbose=0, 输出简版内容,以减少传输数据量
- verbose=1, 输出完整版内容
音频字段如下:
name | verbose | has_chapter | description |
---|---|---|---|
id | 0/1 | 0/1 | 音频ID编号 |
name | 0/1 | 0/1 | 音频名 |
icon | 0/1 | 0/1 | 音频图标 |
price | 0/1 | 0/1 | 价格 |
has_chapter | 0/1 | 0/1 | 是否带章节 |
taxonomys | 0/1 | 0/1 | 标签、分类、专题 |
performer | 1 | 0/1 | 演播 |
age_to | 1 | 0/1 | 适合年龄上限 |
age_from | 1 | 0/1 | 适合年龄下限 |
author | 1 | 0/1 | 作者 |
editor_comment | 1 | 0/1 | 编辑推荐 |
description | 1 | 0/1 | 简介 |
rank | 1 | 0/1 | 评分 |
play_url | 0/1 | 0 | 音频链接 |
play_url_with_token | 0/1 | 0 | 带Token的音频链接 |
md5 | 0/1 | 0 | 音频MD5 |
lyrics | 1 | 0 | 歌词 |
filesize | 1 | 0 | 文件大小(字节) |
bitrate | 1 | 0 | 音频比特率 |
duration | 1 | 0 | 时长(秒) |
status | 0/1 | 0/1 | 状态(0正常 4停用) |
cats | 0/1 | 0/1 | 所属分类数组 |
cats.cat_id | 0/1 | 0/1 | 分类id |
cats.cat_name | 0/1 | 0/1 | 分类名 |
chapter_count | 0/1 | 1 | 章节数量(配置值,与实际有出入) |
chapters | 0/1 | 1 | 章节列表(仅限多章节音频) |
chapters.chapter_id | 0/1 | 1 | 章节id |
chapters.name | 0/1 | 1 | 章节名 |
chapters.type | 0/1 | 1 | 章节类型(0内容 1花絮 2预告片) |
chapters.play_url | 0/1 | 1 | 章节音频链接 |
chapters.play_url_with_token | 0/1 | 1 | 带Token的章节音频链接 |
chapters.free | 0/1 | 1 | 章节是否免费(0不免费 1免费) |
chapters.md5 | 0/1 | 1 | 章节md5 |
chapters.order_no | 0/1 | 1 | 章节序号 |
chapters.lyrics | 1 | 1 | 章节歌词 |
chapters.filesize | 1 | 1 | 章节文件大小(字节) |
chapters.duration | 1 | 1 | 章节时长(秒) |
chapters.status | 0/1 | 1 | 状态(0正常 4停用) |
hit_chapters | * | * | 章节复合搜索时匹配的章节列表,格式同chapters |
获取音频列表
获取音频列表-请求
curl --request POST \
--data-urlencode "app_id=${APP_ID}" \
--data-urlencode "device_id=x1000" \
--data-urlencode "timestamp=${TIMESTAMP}" \
--data-urlencode "nonce=${NONCE}" \
--data-urlencode "signature=${SIGNATURE}" \
--data-urlencode "offset=0" \
--data-urlencode "limit=5" \
--data-urlencode "cat_ids=[8120]" \
--data-urlencode "chapter=2" \
--data-urlencode "verbose=1" \
http://open.idaddy.cn/audio/v2/list
获取音频列表-响应
{
"audioinfos": {
"contents": [
{
"performer": "曹灿",
"rank": 9.5,
"id": "ADcGMFAwDTM=",
"age_to": 12,
"age_from": 7,
"author": "冯梦龙",
"has_chapter": 1,
"taxonomys": "中国历史,东周列国故事,中国名著,历史故事,教育部推荐书目",
"editor_comment": "曹灿,著名老一辈演播艺术家,中国国家话剧院国家一级演员。演播代表作有少儿版四大名著之《红楼梦的故事》。",
"status": 0,
"description": "在东周这个动荡的乱世中,春秋五霸、战国七雄等历史人物轮番登场推动着东周历史车轮的前进,上演了一出出精彩的历史剧目。",
"price": 0,
"chapter_count": 30,
"chapters": [
{
"status": 0,
"lyrics": "",
"order_no": 1,
"play_url": "http://cdn.open.idaddy.cn/apsmp3/a1f5/idaddy0000000001/201711210000/0_adidaddy/ADcGMFAwDTM.ADQGN1A3.YS8xL244cTFuYjhzLmF1ZGlv.mp3",
"chapter_id": "ADQGN1A3",
"free": 1,
"filesize": 1598539,
"play_url_with_token": "http://cdn.open.idaddy.cn/apsmp3/a1f5/idaddy0000000001/201711210000/0_adidaddy/ADcGMFAwDTM.ADQGN1A3.YS8xL244cTFuYjhzLmF1ZGlv.mp3?token=GOBhiXdgkIDR_N_wzWgFmA.Mg14MTAwMA0xNzEyMjE",
"duration": 798,
"md5": "371c73e1fdab845de14f706a7806603b",
"name": "第1集"
},
{
"status": 0,
"lyrics": "",
"order_no": 2,
"play_url": "http://cdn.open.idaddy.cn/apsmp3/9a16/idaddy0000000001/201711210000/1/ADcGMFAwDTM.ADQGN1Aw.YS8yL2lkZGxvd3o0LmF1ZGlv.mp3",
"chapter_id": "ADQGN1Aw",
"free": 1,
"filesize": 1551519,
"play_url_with_token": "http://cdn.open.idaddy.cn/apsmp3/9a16/idaddy0000000001/201711210000/1/ADcGMFAwDTM.ADQGN1Aw.YS8yL2lkZGxvd3o0LmF1ZGlv.mp3?token=GOBhiXdgkIDR_N_wzWgFmA.Mg14MTAwMA0xNzEyMjE",
"duration": 774,
"md5": "9805286ac0b1da40ac619280c92db5a4",
"name": "第2集"
},
......
],
"name": "东周列国故事",
"icon": "http://img.idaddy.cn/b/6/o4yaclbl.jpg"
},
......
]
},
"retcode": 0
}
HTTP Request
POST http://open.idaddy.cn/audio/v2/list
POST参数(application/x-www-form-urlencoded)
name | type | required | description |
---|---|---|---|
app_id | string | 必选 | app ID |
device_id | string | 必选 | 设备ID号 |
app_uid | string | 可选 | 客户端用户名 |
timestamp | int | 必选 | 调用时间戳,单位秒。例如: 1421234567 |
nonce | string | 必选 | 最长32位随机字符串,每次请求都不同,防止重放攻击 |
signature | string | 必选 | sha1(app_id+secret+timestamp) |
offset | int | 可选 | 起始位置(只对故事列表有效) 默认:0 |
limit | int | 可选 | 分页记录限制 默认:30 最大:100 |
cat_ids | string | 必选 | 分类id,JSON格式,查询指定分类下的音频 |
chapter | int | 可选 | 章节输出选项: 0 不输出带章节的音频 1 输出带章节的音频但不输出章节细节 2 输出带章节的音频且输出章节细节(较慢) 默认:0 |
verbose | int | 可选 | 详情选项:0 输出简版内容,以减少传输数据量 1 输出完整版内容 默认:0 |
获取指定音频
获取指定音频-请求
curl --request POST \
--data-urlencode "app_id=${APP_ID}" \
--data-urlencode "device_id=x1000" \
--data-urlencode "timestamp=${TIMESTAMP}" \
--data-urlencode "nonce=${NONCE}" \
--data-urlencode "signature=${SIGNATURE}" \
--data-urlencode "offset=0" \
--data-urlencode "limit=10" \
--data-urlencode 'content_ids=["ADQGM1AxDTw=","ADIGM1A1DTw="]' \
--data-urlencode "verbose=0" \
http://open.idaddy.cn/audio/v2/query
获取指定音频-响应,注意结果:第一个为单章节音频(独立音频),第二个为多章节音频
{
"audioinfos": {
"contents": [
{
"status": 0,
"name": "我要刷牙",
"play_url": "http://cdn.open.idaddy.cn/apsmp3/aaf3/idaddy0000000001/201711210000/0/ADQGM1AxDTw.YS85L2F6NnRjaHhiLmF1ZGlv.mp3",
"price": 0,
"has_chapter": 0,
"cats": [
{
"cat_id": 10719,
"cat_name": "早教儿歌"
}
],
"play_url_with_token": "http://cdn.open.idaddy.cn/apsmp3/aaf3/idaddy0000000001/201711210000/0/ADQGM1AxDTw.YS85L2F6NnRjaHhiLmF1ZGlv.mp3?token=GOBhiXdgkIDR_N_wzWgFmA.Mg14MTAwMA0xNzEyMjE",
"taxonomys": "早教儿歌",
"md5": "51c51f64f279e5b7bddc53aea4738c8d",
"id": "ADQGM1AxDTw=",
"icon": "http://img.idaddy.cn/b/9/az6tchxb.jpg"
},
{
"status": 0,
"name": "白雪公主(卉卉阿姨)",
"price": 0,
"chapters": [
{
"status": 0,
"name": "第1集",
"order_no": 1,
"play_url": "http://cdn.open.idaddy.cn/apsmp3/a261/idaddy0000000001/201711210000/0_adidaddy/ADIGM1A1DTw.ADcGMFA3DTNRYA.YTY0LzAvOW55MGxyd2guYXVkaW8.mp3",
"chapter_id": "ADcGMFA3DTNRYA==",
"free": 1,
"play_url_with_token": "http://cdn.open.idaddy.cn/apsmp3/a261/idaddy0000000001/201711210000/0_adidaddy/ADIGM1A1DTw.ADcGMFA3DTNRYA.YTY0LzAvOW55MGxyd2guYXVkaW8.mp3?token=GOBhiXdgkIDR_N_wzWgFmA.Mg14MTAwMA0xNzEyMjE",
"md5": "a9acc6b2a5df4ec66bb1327f2f38fcf2"
},
{
"status": 0,
"name": "第2集",
"order_no": 2,
"play_url": "http://cdn.open.idaddy.cn/apsmp3/20a8/idaddy0000000001/201711210000/1/ADIGM1A1DTw.ADcGMFAxDT1RZQ.YTY0LzkvanRueG95dy5hdWRpbw.mp3",
"chapter_id": "ADcGMFAxDT1RZQ==",
"free": 1,
"play_url_with_token": "http://cdn.open.idaddy.cn/apsmp3/20a8/idaddy0000000001/201711210000/1/ADIGM1A1DTw.ADcGMFAxDT1RZQ.YTY0LzkvanRueG95dy5hdWRpbw.mp3?token=GOBhiXdgkIDR_N_wzWgFmA.Mg14MTAwMA0xNzEyMjE",
"md5": "aa5b5a068962f75428771193e0fddede"
},
......
],
"has_chapter": 1,
"chapter_count": 6,
"cats": [
{
"cat_id": 6709,
"cat_name": "睡前故事"
},
{
"cat_id": 11549,
"cat_name": "女孩故事"
},
{
"cat_id": 12029,
"cat_name": "经典童话"
}
],
"taxonomys": "女孩故事,睡前故事,经典童话",
"id": "ADIGM1A1DTw=",
"icon": "http://img.idaddy.cn/b/9/d3vrh48k.jpg"
}
]
},
"retcode": 0
}
HTTP Request
POST http://open.idaddy.cn/audio/v2/query
POST参数(application/x-www-form-urlencoded)
name | type | required | description |
---|---|---|---|
app_id | string | 必选 | app ID |
device_id | string | 必选 | 设备ID号 |
app_uid | string | 可选 | 客户端用户名 |
timestamp | int | 必选 | 调用时间戳,单位秒。例如: 1421234567 |
nonce | string | 必选 | 最长32位随机字符串,每次请求都不同,防止重放攻击 |
signature | string | 必选 | sha1(app_id+secret+timestamp) |
offset | int | 可选 | 起始位置(只对故事列表有效) 默认:0 |
limit | int | 可选 | 分页记录限制,默认:30 最大:100 |
content_ids | string | 必选 | 欲查询的音频id,JSON格式 |
is_chapter | int | 可选 | 是否查询章节,标志content_ids是音频ID还是章节ID,命中章节将在单独的字段hit_chapters中返回:0 音频ID(默认) 1 章节ID |
verbose | int | 可选 | 详情选项:0 输出简版内容,以减少传输数据量 1 输出完整版内容 默认:0 |
free_only | string | 可选 | 是否只为免费章节提供播放链接(影响章节返回值的play_url字段),请求中包含此字段,则只为免费章节提供播放链接,请求中不包含此字段,则为所有内容提供播放链接 |
valid_only | int | 可选 | 是否只包含上架音频,0 否 1 是 默认:1 |
获取热门音频列表
获取热门音频列表-请求
curl --request POST \
--data-urlencode "app_id=${APP_ID}" \
--data-urlencode "device_id=x1000" \
--data-urlencode "timestamp=${TIMESTAMP}" \
--data-urlencode "nonce=${NONCE}" \
--data-urlencode "signature=${SIGNATURE}" \
--data-urlencode "offset=0" \
--data-urlencode "limit=5" \
--data-urlencode "listtype=hot" \
--data-urlencode "verbose=0" \
http://open.idaddy.cn/audio/v2/list
获取热门音频列表-响应
{
"audioinfos": {
"contents": [
{
"status": 0,
"name": "不爱睡觉的小猴子",
"play_url": "http://cdn.open.idaddy.cn/apsmp3/f6d3/idaddy0000000001/201711210000/0/ADQGN1A9DTI.YS83L3BwaXJtNGNiLmF1ZGlv.mp3",
"price": 0,
"has_chapter": 0,
"play_url_with_token": "http://cdn.open.idaddy.cn/apsmp3/f6d3/idaddy0000000001/201711210000/0/ADQGN1A9DTI.YS83L3BwaXJtNGNiLmF1ZGlv.mp3?token=GOBhiXdgkIDR_N_wzWgFmA.Mg14MTAwMA0xNzEyMjE",
"taxonomys": "儿童阅读从听开始,2013年度精选集,故事旅行记,睡前故事",
"md5": "10b31fe543ffdb000fbf6950a2fe237d",
"id": "ADQGN1A9DTI=",
"icon": "http://img.idaddy.cn//b/7/hn4atvn7.jpg"
},
{
"status": 0,
"name": "森林狂想曲",
"play_url": "http://cdn.open.idaddy.cn/apsmp3/140a/idaddy0000000001/201711210000/0/AD0GMVAy.YS82L3kzZG1xOXhlLmF1ZGlv.mp3",
"price": 0,
"has_chapter": 0,
"play_url_with_token": "http://cdn.open.idaddy.cn/apsmp3/140a/idaddy0000000001/201711210000/0/AD0GMVAy.YS82L3kzZG1xOXhlLmF1ZGlv.mp3?token=GOBhiXdgkIDR_N_wzWgFmA.Mg14MTAwMA0xNzEyMjE",
"taxonomys": "胎教音乐,睡前音乐,胎教系列大全",
"md5": "52b5cfb347f5e27badf2fcc5499d8c07",
"id": "AD0GMVAy",
"icon": "http://img.idaddy.cn/b/6/iu5ke6zg.jpg"
},
......
]
},
"retcode": 0
}
HTTP Request
POST http://open.idaddy.cn/audio/v2/list
POST参数(application/x-www-form-urlencoded)
name | type | required | description |
---|---|---|---|
app_id | string | 必选 | app ID |
device_id | string | 必选 | 设备ID号 |
app_uid | string | 可选 | 客户端用户名 |
timestamp | int | 必选 | 调用时间戳,单位秒。例如: 1421234567 |
nonce | string | 必选 | 最长32位随机字符串,每次请求都不同,防止重放攻击 |
signature | string | 必选 | sha1(app_id+secret+timestamp) |
offset | int | 可选 | 起始位置,默认:0 |
limit | int | 可选 | 分页记录限制,默认:30 最大:100 |
listtype | string | 必选 | 列表类型, 目前支持 hot、hot_week、hot_month、hot_year |
chapter | int | 可选 | 章节输出选项: 0 不输出带章节的音频 1 输出带章节的音频但不输出章节细节 2 输出带章节的音频且输出章节细节(较慢) 默认:0 |
verbose | int | 可选 | 详情选项:0 输出简版内容,以减少传输数据量 1 输出完整版内容 默认:0 |
搜索音频
搜索音频(普通)-请求
curl --request POST \
--data-urlencode "app_id=${APP_ID}" \
--data-urlencode "device_id=x1000" \
--data-urlencode "timestamp=${TIMESTAMP}" \
--data-urlencode "nonce=${NONCE}" \
--data-urlencode "signature=${SIGNATURE}" \
--data-urlencode "offset=0" \
--data-urlencode "limit=2" \
--data-urlencode "content=世上只有妈妈好" \
--data-urlencode "verbose=0" \
http://open.idaddy.cn/audio/v2/query
搜索音频(普通)-响应
{
"audioinfos": {
"total": 128,
"contents": [
{
"status": 0,
"name": "世上只有妈妈好",
"play_url": "http://cdn.open.idaddy.cn/apsmp3/ab89/idaddy0000000001/201711210000/0/ADcGM1Aw.YTY0LzQvMzBjZ3J4MmguYXVkaW8.mp3",
"price": 0,
"has_chapter": 0,
"cats": [],
"play_url_with_token": "http://cdn.open.idaddy.cn/apsmp3/ab89/idaddy0000000001/201711210000/0/ADcGM1Aw.YTY0LzQvMzBjZ3J4MmguYXVkaW8.mp3?token=GOBhiXdgkIDR_N_wzWgFmA.Mg14MTAwMA0xNzEyMjE",
"taxonomys": "2013年度精选集,感恩节专辑,母亲节专辑",
"md5": "51685536c9af920c0d44b90c717c8da5",
"id": "ADcGM1Aw",
"icon": "http://img.idaddy.cn/b/4/3bexb022.jpg"
},
{
"status": 0,
"name": "世上只有妈妈好(粤)",
"play_url": "http://cdn.open.idaddy.cn/apsmp3/3d61/idaddy0000000001/201711210000/0/ADYGNFA3DTw.YTY0LzkvZ3Jlc20xNXEuYXVkaW8.mp3",
"price": 0,
"has_chapter": 0,
"cats": [
{
"cat_id": 19589,
"cat_name": "地方童谣"
}
],
"play_url_with_token": "http://cdn.open.idaddy.cn/apsmp3/3d61/idaddy0000000001/201711210000/0/ADYGNFA3DTw.YTY0LzkvZ3Jlc20xNXEuYXVkaW8.mp3?token=GOBhiXdgkIDR_N_wzWgFmA.Mg14MTAwMA0xNzEyMjE",
"taxonomys": "地方童谣",
"md5": "81e2a8e8532c5381d4a07dd2a357ac08",
"id": "ADYGNFA3DTw=",
"icon": "http://img.idaddy.cn/b/9/d4n8ecp7.jpg"
}
]
},
"retcode": 0
}
搜索音频(拼音)-请求
curl --request POST \
--data-urlencode "app_id=${APP_ID}" \
--data-urlencode "device_id=x1000" \
--data-urlencode "timestamp=${TIMESTAMP}" \
--data-urlencode "nonce=${NONCE}" \
--data-urlencode "signature=${SIGNATURE}" \
--data-urlencode "offset=0" \
--data-urlencode "limit=2" \
--data-urlencode "content=xiaozhu" \
--data-urlencode "content_lang=1" \
http://open.idaddy.cn/audio/v2/query
搜索音频(拼音)-响应
{
"audioinfos": {
"total": 69,
"contents": [
{
"status": 0,
"name": "三只小猪",
"play_url": "http://cdn.open.idaddy.cn/apsmp3/eb93/idaddy0000000001/201711210000/0/ADYGNFAx.YS81L3V5d3FtOGQ0LmF1ZGlv.mp3",
"price": 0,
"has_chapter": 0,
"cats": [
{
"cat_id": 8118,
"cat_name": "热门儿歌"
}
],
"play_url_with_token": "http://cdn.open.idaddy.cn/apsmp3/eb93/idaddy0000000001/201711210000/0/ADYGNFAx.YS81L3V5d3FtOGQ0LmF1ZGlv.mp3?token=GOBhiXdgkIDR_N_wzWgFmA.Mg14MTAwMA0xNzEyMjE",
"taxonomys": "热门儿歌",
"md5": "e763822ce4cb4b318351f2e40ee06821",
"id": "ADYGNFAx",
"icon": "http://img.idaddy.cn/b/5/syr9s7sf.jpg"
},
{
"status": 0,
"name": "小猪数数",
"play_url": "http://cdn.open.idaddy.cn/apsmp3/3e23/idaddy0000000001/201711210000/0/ADYGMFA0DTQ.YTY0LzEvYzlxMWFrYWsuYXVkaW8.mp3",
"price": 0,
"has_chapter": 0,
"cats": [
{
"cat_id": 8118,
"cat_name": "热门儿歌"
}
],
"play_url_with_token": "http://cdn.open.idaddy.cn/apsmp3/3e23/idaddy0000000001/201711210000/0/ADYGMFA0DTQ.YTY0LzEvYzlxMWFrYWsuYXVkaW8.mp3?token=GOBhiXdgkIDR_N_wzWgFmA.Mg14MTAwMA0xNzEyMjE",
"taxonomys": "热门儿歌",
"md5": "c8063b2203590d7ecb3e76a17818c9a4",
"id": "ADYGMFA0DTQ=",
"icon": "http://img.idaddy.cn/b/1/quocno26.jpg"
}
]
},
"retcode": 0
}
搜索音频(自定义联合搜索)-请求
curl --request POST \
--data-urlencode "app_id=${APP_ID}" \
--data-urlencode "device_id=x1000" \
--data-urlencode "timestamp=${TIMESTAMP}" \
--data-urlencode "nonce=${NONCE}" \
--data-urlencode "signature=${SIGNATURE}" \
--data-urlencode "offset=2" \
--data-urlencode "limit=2" \
--data-urlencode "content=白雪公主" \
--data-urlencode 'content_fields={"audio_name":2, "chapter_name":1}' \
http://open.idaddy.cn/audio/v2/query
搜索音频(自定义联合搜索)-响应
{
"audioinfos": {
"total": 77,
"contents": [
{
"status": 0,
"name": "白雪公主(卉卉阿姨)",
"price": 0,
"chapters": [
{
"status": 0,
"name": "第1集",
"order_no": 1,
"play_url": "http://cdn.open.idaddy.cn/apsmp3/a261/idaddy0000000001/201711210000/0_adidaddy/ADIGM1A1DTw.ADcGMFA3DTNRYA.YTY0LzAvOW55MGxyd2guYXVkaW8.mp3",
"chapter_id": "ADcGMFA3DTNRYA==",
"free": 1,
"play_url_with_token": "http://cdn.open.idaddy.cn/apsmp3/a261/idaddy0000000001/201711210000/0_adidaddy/ADIGM1A1DTw.ADcGMFA3DTNRYA.YTY0LzAvOW55MGxyd2guYXVkaW8.mp3?token=GOBhiXdgkIDR_N_wzWgFmA.Mg14MTAwMA0xNzEyMjE",
"md5": "a9acc6b2a5df4ec66bb1327f2f38fcf2"
},
{
"status": 0,
"name": "第2集",
"order_no": 2,
"play_url": "http://cdn.open.idaddy.cn/apsmp3/20a8/idaddy0000000001/201711210000/1/ADIGM1A1DTw.ADcGMFAxDT1RZQ.YTY0LzkvanRueG95dy5hdWRpbw.mp3",
"chapter_id": "ADcGMFAxDT1RZQ==",
"free": 1,
"play_url_with_token": "http://cdn.open.idaddy.cn/apsmp3/20a8/idaddy0000000001/201711210000/1/ADIGM1A1DTw.ADcGMFAxDT1RZQ.YTY0LzkvanRueG95dy5hdWRpbw.mp3?token=GOBhiXdgkIDR_N_wzWgFmA.Mg14MTAwMA0xNzEyMjE",
"md5": "aa5b5a068962f75428771193e0fddede"
},
......
],
"has_chapter": 1,
"chapter_count": 6,
"cats": [
{
"cat_id": 6709,
"cat_name": "睡前故事"
},
{
"cat_id": 11549,
"cat_name": "女孩故事"
},
{
"cat_id": 12029,
"cat_name": "经典童话"
}
],
"taxonomys": "女孩故事,睡前故事,经典童话",
"id": "ADIGM1A1DTw=",
"icon": "http://img.idaddy.cn/b/9/d3vrh48k.jpg"
},
{
"status": 0,
"name": "【经典】格林童话(第一季)",
"price": 699,
"chapters": [
{
"status": 0,
"name": "白雪公主(一)",
"order_no": 1,
"play_url": "http://cdn.open.idaddy.cn/apsmp3/51bf/idaddy0000000001/201711210000/0_adidaddy/ADYGP1A0DTU.ADMGN1A2.YTk2LzAva3FkODVvNWYuYXVkaW8.mp3",
"chapter_id": "ADMGN1A2",
"free": 1,
"play_url_with_token": "http://cdn.open.idaddy.cn/apsmp3/51bf/idaddy0000000001/201711210000/0_adidaddy/ADYGP1A0DTU.ADMGN1A2.YTk2LzAva3FkODVvNWYuYXVkaW8.mp3?token=GOBhiXdgkIDR_N_wzWgFmA.Mg14MTAwMA0xNzEyMjE",
"md5": "12cb4ef0a4760d609f922f70128d465e"
}
],
"has_chapter": 1,
"chapter_count": 20,
"cats": [
{
"cat_id": 12029,
"cat_name": "经典童话"
},
{
"cat_id": 15016,
"cat_name": "精品故事"
}
],
"taxonomys": "儿童阅读从听开始,央视少儿主播作品,教育部推荐书目,教育部推荐(VIP),精品故事,经典童话,老师推荐故事单,董浩讲格林童话",
"id": "ADYGP1A0DTU=",
"icon": "http://img.idaddy.cn/b/0/849jvv89.jpg"
}
]
},
"retcode": 0
}
搜索音频(自定义组合搜索)-请求
curl --request POST \
--data-urlencode "app_id=${APP_ID}" \
--data-urlencode "device_id=x1000" \
--data-urlencode "timestamp=${TIMESTAMP}" \
--data-urlencode "nonce=${NONCE}" \
--data-urlencode "signature=${SIGNATURE}" \
--data-urlencode "offset=0" \
--data-urlencode "limit=2" \
--data-urlencode 'contents={"cat_name":"睡前故事", "performer":"狄菲菲"}' \
http://open.idaddy.cn/audio/v2/query
搜索音频(自定义组合搜索)-响应
{
"audioinfos": {
"total": 5,
"contents": [
{
"status": 0,
"name": "【领声·好声音】白雪公主",
"play_url": "http://cdn.open.idaddy.cn/apsmp3/0c87/idaddy0000000001/201711210000/0/ADEGP1AxDTw.YTY0LzkvM3BienVhanAuYXVkaW8.mp3",
"price": 0,
"has_chapter": 0,
"cats": [
{
"cat_id": 6709,
"cat_name": "睡前故事"
},
{
"cat_id": 11549,
"cat_name": "女孩故事"
},
{
"cat_id": 12029,
"cat_name": "经典童话"
}
],
"play_url_with_token": "http://cdn.open.idaddy.cn/apsmp3/0c87/idaddy0000000001/201711210000/0/ADEGP1AxDTw.YTY0LzkvM3BienVhanAuYXVkaW8.mp3?token=GOBhiXdgkIDR_N_wzWgFmA.Mg14MTAwMA0xNzEyMjE",
"taxonomys": "女孩故事,新年畅听攻略,睡前故事,经典童话",
"md5": "b68756f2d4f82fc18d90ef781b4bf576",
"id": "ADEGP1AxDTw=",
"icon": "http://img.idaddy.cn/b/9/urgrufyi.jpg"
},
{
"status": 0,
"name": "【领声·好声音】小红帽",
"play_url": "http://cdn.open.idaddy.cn/apsmp3/aa8d/idaddy0000000001/201711210000/0/ADEGP1AyDTw.YTY0LzkvOHR2dmc3bzguYXVkaW8.mp3",
"price": 0,
"has_chapter": 0,
"cats": [
{
"cat_id": 6708,
"cat_name": "故事"
},
{
"cat_id": 6709,
"cat_name": "睡前故事"
},
{
"cat_id": 11549,
"cat_name": "女孩故事"
},
{
"cat_id": 12029,
"cat_name": "经典童话"
}
],
"play_url_with_token": "http://cdn.open.idaddy.cn/apsmp3/aa8d/idaddy0000000001/201711210000/0/ADEGP1AyDTw.YTY0LzkvOHR2dmc3bzguYXVkaW8.mp3?token=GOBhiXdgkIDR_N_wzWgFmA.Mg14MTAwMA0xNzEyMjE",
"taxonomys": "儿童阅读从听开始,女孩故事,故事,新年畅听攻略,睡前故事,经典童话",
"md5": "423cc74633825df09562605c59e29049",
"id": "ADEGP1AyDTw=",
"icon": "http://img.idaddy.cn//b/9/vkf39wqv.jpg"
}
]
},
"retcode": 0
}
搜索音频(章节复合搜索)-请求
curl --request POST \
--data-urlencode "app_id=${APP_ID}" \
--data-urlencode "device_id=x1000" \
--data-urlencode "timestamp=${TIMESTAMP}" \
--data-urlencode "nonce=${NONCE}" \
--data-urlencode "signature=${SIGNATURE}" \
--data-urlencode "offset=0" \
--data-urlencode "limit=2" \
--data-urlencode "content=摇篮曲" \
--data-urlencode "chapter_name=小星星" \
http://open.idaddy.cn/audio/v2/query
搜索音频(章节复合搜索)-响应
{
"audioinfos": {
"total": 56,
"contents": [
{
"status": 0,
"hit_chapters": [
{
"status": 0,
"name": "小星星",
"order_no": 4,
"play_url": "http://cdn.open.idaddy.cn/apsmp3/cd42/idaddy0000000001/201711210000/1/ADAGMVAzDTQ.ADQGNVA3DTVRZw.YTY0LzEvbzBwZnFjZWcuYXVkaW8.mp3",
"chapter_id": "ADQGNVA3DTVRZw==",
"free": 1,
"play_url_with_token": "http://cdn.open.idaddy.cn/apsmp3/cd42/idaddy0000000001/201711210000/1/ADAGMVAzDTQ.ADQGNVA3DTVRZw.YTY0LzEvbzBwZnFjZWcuYXVkaW8.mp3?token=GOBhiXdgkIDR_N_wzWgFmA|Mg14MTAwMA0xNzEyMjE",
"md5": "ccf7ada2504eb7a90a29c6151141cec7"
}
],
"name": "宝宝的摇篮曲",
"price": 0,
"chapters": [
{
"status": 0,
"name": "宝宝的睡袍",
"order_no": 1,
"play_url": "http://cdn.open.idaddy.cn/apsmp3/dadb/idaddy0000000001/201711210000/0_adidaddy/ADAGMVAzDTQ.ADQGNVA2DTxRYA.YTY0LzEvcWFnNXQ1bDMuYXVkaW8.mp3",
"chapter_id": "ADQGNVA2DTxRYA==",
"free": 1,
"play_url_with_token": "http://cdn.open.idaddy.cn/apsmp3/dadb/idaddy0000000001/201711210000/0_adidaddy/ADAGMVAzDTQ.ADQGNVA2DTxRYA.YTY0LzEvcWFnNXQ1bDMuYXVkaW8.mp3?token=GOBhiXdgkIDR_N_wzWgFmA.Mg14MTAwMA0xNzEyMjE",
"md5": "4ba64975596254a96afbc603fc70bfd7"
},
{
"status": 0,
"name": "威利眨眼",
"order_no": 2,
"play_url": "http://cdn.open.idaddy.cn/apsmp3/3dab/idaddy0000000001/201711210000/1/ADAGMVAzDTQ.ADQGNVA2DTxRbw.YTY0LzEvYnkxOTVhdWMuYXVkaW8.mp3",
"chapter_id": "ADQGNVA2DTxRbw==",
"free": 1,
"play_url_with_token": "http://cdn.open.idaddy.cn/apsmp3/3dab/idaddy0000000001/201711210000/1/ADAGMVAzDTQ.ADQGNVA2DTxRbw.YTY0LzEvYnkxOTVhdWMuYXVkaW8.mp3?token=GOBhiXdgkIDR_N_wzWgFmA.Mg14MTAwMA0xNzEyMjE",
"md5": "8ad029e45f7435bd49871bd4b2a67428"
},
......
],
"has_chapter": 1,
"chapter_count": 21,
"cats": [
{
"cat_id": 7822,
"cat_name": "胎教音乐"
},
{
"cat_id": 10715,
"cat_name": "英语儿歌"
},
{
"cat_id": 19587,
"cat_name": "英文磨耳"
}
],
"taxonomys": "Sleepytime 宝宝的摇篮曲,胎教系列大全,胎教音乐,英语儿歌,英文磨耳",
"id": "ADAGMVAzDTQ=",
"icon": "http://img.idaddy.cn/b/1/v2v9co31.jpg"
},
{
"status": 0,
"hit_chapters": [],
"name": "摇篮曲",
"play_url": "http://cdn.open.idaddy.cn/apsmp3/4068/idaddy0000000001/201711210000/0/ADAGNFAz.YTY0LzcvcGozdXMxcWMuYXVkaW8.mp3",
"price": 0,
"has_chapter": 0,
"cats": [
{
"cat_id": 8118,
"cat_name": "热门儿歌"
}
],
"play_url_with_token": "http://cdn.open.idaddy.cn/apsmp3/4068/idaddy0000000001/201711210000/0/ADAGNFAz.YTY0LzcvcGozdXMxcWMuYXVkaW8.mp3?token=GOBhiXdgkIDR_N_wzWgFmA.Mg14MTAwMA0xNzEyMjE",
"taxonomys": "2013年度精选集,热门儿歌",
"md5": "c730e42c3b567680c453afc1521bd4e3",
"id": "ADAGNFAz",
"icon": "http://img.idaddy.cn/b/7/pj3us1qc.jpg"
}
]
},
"retcode": 0
}
此查询可以通过不同参数的自定义组合,达到以下搜索效果:
- 联合搜索,用相同关键字在不同属性中联合搜索音频(类似全文检索),搜索结果按匹配度+智能因子排序,不同属性可以设定不同的匹配权重
- 组合搜索,用不同关键字在不同属性中搜索音频,搜索结果按匹配度+智能因子排序,不同属性可以设定不同的匹配权重
- 复合搜索,在音频搜索(联合或组合搜索)得到的结果中,再对各音频的章节做子搜索。子搜索结果在单独的字段hit_chapters中返回
HTTP Request
POST http://open.idaddy.cn/audio/v2/query
POST参数(application/x-www-form-urlencoded)
name | type | required | description |
---|---|---|---|
app_id | string | 必选 | app ID |
device_id | string | 必选 | 设备ID号 |
app_uid | string | 可选 | 客户端用户名 |
timestamp | int | 必选 | 调用时间戳,单位秒。例如: 1421234567 |
nonce | string | 必选 | 最长32位随机字符串,每次请求都不同,防止重放攻击 |
signature | string | 必选 | sha1(app_id+secret+timestamp) |
offset | int | 可选 | 起始位置(只对故事列表有效) 默认:0 |
limit | int | 可选 | 分页记录限制,默认:30 最大:100 |
content | string | 必选 | 欲查询的关键字 |
verbose | int | 可选 | 详情选项:0 输出简版内容,以减少传输数据量 1 输出完整版内容 默认:0 |
cat_ids | string | 可选 | 分类id列表,JSON格式,查询指定分类下的音频 |
matching | int | 可选 | 最低匹配度百分比 默认:0 |
content_lang | int | 可选 | 关键字语言,0汉字(默认),1拼音 |
content_fields | string | 可选 | 自定义搜索域字段,JSON格式字典 {“FIELD” : BOOST} FIELD string 字段名,支持 – audio_name 故事名 – chapter_name 章节名 – tag_name 标签名 – cat_name 分类名 – author 作者名 – performer 演播名 BOOST number 提权系数 |
contents | string | 可选 | 自定义组合搜索,JSON格式字典 {“FIELD”:”VALUE”} 或 {“FIELD”:{ ”content”:”VALUE”, ”boost”:BOOST, ”lang”:LANG, ”matching”:MATCHING }} FIELD string 字段名 VALUE string 搜索关键字 BOOST number 提权系数 LANG int 关键字语言 MATCHING int 关键字匹配度 |
chapter_name | string | 可选 | 复合搜索章节名关键字 |
chapter_no | int | 可选 | 复合搜索章节序号值 |
has_chapter | int | 可选 | 是否包含章节: 0 独立音频/单章节音频 1 多章节音频 默认:所有 |
获取音频的词汇信息
获取音频的词汇信息-请求
curl --request POST \
--data-urlencode "app_id=${APP_ID}" \
--data-urlencode "device_id=x1000" \
--data-urlencode "timestamp=${TIMESTAMP}" \
--data-urlencode "nonce=${NONCE}" \
--data-urlencode "signature=${SIGNATURE}" \
http://open.idaddy.cn/audio/v2/glossary?format=json
获取音频的词汇信息-响应,会返回所有音频,以下有省略
{
"audioinfos": {
"contents": [
{
"performer": "佚名",
"name": "天鹅湖",
"tags": "古典音乐,钢琴,天鹅湖 ",
"author": "柴可夫斯",
"paid": "否",
"taxonomys": "钢琴曲,古典音乐,器乐欣赏",
"id": "ADcGMlA0"
},
{
"performer": "佚名",
"name": "小毛驴",
"tags": "儿歌,毛驴",
"author": "佚名",
"paid": "否",
"taxonomys": "热门儿歌,2013年度精选集",
"id": "ADcGMlAx"
},
{
"performer": "汉声中文",
"name": "三字经",
"tags": "国学,三字经,汉声,童声跟读 ",
"author": "王伯厚",
"paid": "否",
"chapters": [
{
"type": "内容",
"name": "第1集",
"id": "ADYGM1A8DTJRYA=="
},
{
"type": "内容",
"name": "第2集",
"id": "ADYGM1A8DTJRbw=="
},
{
"type": "内容",
"name": "第3集",
"id": "ADYGM1A8DTJRbg=="
},
{
"type": "内容",
"name": "第4集",
"id": "ADYGM1A8DT1RZw=="
},
{
"type": "内容",
"name": "第5集",
"id": "ADYGM1A8DT1RZg=="
},
{
"type": "内容",
"name": "第6集",
"id": "ADYGM1A8DT1RZQ=="
},
{
"type": "内容",
"name": "第7集",
"id": "ADYGM1A8DT1RZA=="
},
{
"type": "内容",
"name": "第8集",
"id": "ADYGM1A8DT1RYw=="
},
{
"type": "内容",
"name": "第9集",
"id": "ADYGM1A8DT1RYg=="
},
{
"type": "内容",
"name": "第10集",
"id": "ADYGM1A8DT1RYQ=="
},
{
"type": "内容",
"name": "第11集",
"id": "ADYGM1A8DT1RYA=="
}
],
"taxonomys": "国学启蒙",
"id": "AD0GNlA0DTY="
}
]
},
"retcode": 0
}
此查询一次性输出全部有效音频的关键词汇信息,方便合作伙伴下载为本地词汇缓存,目前包括:编号、名字、分类、标签、作者、演播、是否付费内容、章节等信息。
HTTP Request
POST http://open.idaddy.cn/audio/v2/glossary?format=json
POST参数(application/x-www-form-urlencoded)
name | type | required | description |
---|---|---|---|
app_id | string | 必选 | app ID |
device_id | string | 必选 | 设备ID号 |
app_uid | string | 可选 | 客户端用户名 |
timestamp | int | 必选 | 调用时间戳,单位秒。例如: 1421234567 |
nonce | string | 必选 | 最长32位随机字符串,每次请求都不同,防止重放攻击 |
signature | string | 必选 | sha1(app_id+secret+timestamp) |
is_paid | int | 可选 | 付费状态过滤: 0免费 1付费 缺省全部 |
api - 其他
获取每日播放限制
获取每日播放限制-请求
curl --request POST \
--data-urlencode "app_id=${APP_ID}" \
--data-urlencode "device_id=x1000" \
--data-urlencode "timestamp=${TIMESTAMP}" \
--data-urlencode "nonce=${NONCE}" \
--data-urlencode "signature=${SIGNATURE}" \
--data-urlencode "method=get_day_play" \
http://open.idaddy.cn/audio/v2/pricing
获取每日播放限制-响应
{
"data": {
"day_play": 10
},
"retcode": 0
}
HTTP Request
POST http://open.idaddy.cn/audio/v2/pricing
POST参数(application/x-www-form-urlencoded)
name | type | required | description |
---|---|---|---|
app_id | string | 必选 | app ID |
device_id | string | 必选 | 设备ID号 |
app_uid | string | 可选 | 客户端用户名 |
timestamp | int | 必选 | 调用时间戳,单位秒。例如: 1421234567 |
nonce | string | 必选 | 最长32位随机字符串,每次请求都不同,防止重放攻击 |
signature | string | 必选 | sha1(app_id+secret+timestamp) |
method | string | 可选 | 目前只支持get_day_play |
事件反馈
事件反馈-请求
curl --request POST \
--data-urlencode "app_id=${APP_ID}" \
--data-urlencode "device_id=x1000" \
--data-urlencode "timestamp=${TIMESTAMP}" \
--data-urlencode "nonce=${NONCE}" \
--data-urlencode "signature=${SIGNATURE}" \
--data-urlencode 'events=[
{
"event_name": "chen",
"object_id": "ADgGYgU8VTU=",
"event_start": 1439194001,
"event_time": 234
},
{
"event_name": "delete",
"object_id": "ADgGYgU8VTU=",
"event_start": 1439194001
}
]
' \
http://open.idaddy.cn/audio/v2/event
事件反馈-响应
{
"retcode": 0
}
事件反馈接口用于接收各设备回传的播放事件,该事件用于判断下载的音频时候确实已经播放。该接口可以一次接收多条事件。
HTTP Request
POST http://open.idaddy.cn/audio/v2/event
POST参数(application/x-www-form-urlencoded)
name | type | required | description |
---|---|---|---|
app_id | string | 必选 | app ID |
device_id | string | 必选 | 设备ID号 |
app_uid | string | 可选 | 客户端用户名 |
timestamp | int | 必选 | 调用时间戳,单位秒。例如: 1421234567 |
nonce | string | 必选 | 最长32位随机字符串,每次请求都不同,防止重放攻击 |
signature | string | 必选 | sha1(app_id+secret+timestamp) |
events | string | 必选 | 事件集,json数组格式 |
回传检测数据
回传检测数据-请求
curl --request POST \
--data-urlencode "app_id=${APP_ID}" \
--data-urlencode "device_id=x1000" \
--data-urlencode "timestamp=${TIMESTAMP}" \
--data-urlencode "nonce=${NONCE}" \
--data-urlencode "signature=${SIGNATURE}" \
--data-urlencode 'data=[{"my_field1":"1"},{"my_field":"2"}]' \
http://open.idaddy.cn/audio/v2/checklog
回传检测数据-请求
{
"msg": "log added",
"retcode": 0
}
HTTP Request
POST http://open.idaddy.cn/audio/v2/checklog
POST参数(application/x-www-form-urlencoded)
name | type | required | description |
---|---|---|---|
app_id | string | 必选 | app ID |
device_id | string | 必选 | 设备ID号 |
app_uid | string | 可选 | 客户端用户名 |
timestamp | int | 必选 | 调用时间戳,单位秒。例如: 1421234567 |
nonce | string | 必选 | 最长32位随机字符串,每次请求都不同,防止重放攻击 |
signature | string | 必选 | sha1(app_id+secret+timestamp) |
data | string | 可选 | 回传的数据,json格式 |
其他技术说明
URL超时说明
基于对版权和流量保护的考虑,开放平台输出的音频URL有防盗链设计,有效时间为1周,请定时刷新来避免失效。
device token超时说明
基于对版权和流量保护的考虑,开放平台输出的音频URL,需使用device token授权才能访问,token有效时间为1周,请定时刷新token来避免失效。
架构
童锐网络儿童教育资源开放平台以音频、书籍、应用等儿童在线教育资源作为基础库,通过开放平台形成统一的H5、API输出,并辅以日志、统计、计费、安全等基础应用组件形成一个专门针对儿童在线教育资源的开放平台。
流量限制
免费用户每天URL调用次数上限为10000,每分钟调用次数上限为100次;流量输出上限为每天5G。开发人员可以根据实际需要申请更多资源。
CDN支持
所有输出均由CDN网络输出,CDN回源时间为24小时。如果使用过程中有内容变更,可能需要24小时才能看到变更结果。
服务
定制接入
如果第三方有更多接入需求,如变更页面布局,去除童锐网络Logo,口袋故事下载链接等内容,请与童锐网络协商洽谈。
付费接入
频道输出将分别提供免费、付费内容输出,如果需要付费内容输出请与童锐网络协商洽谈。
频道输出
频道输出是内容提供的最基本方式。通过HTML5技术,内容提供方可以快速在各个平台上分享相应其优秀内容的输出。
频道输出
频道输出可以输出所有可用分类,也可以选定部分分类输出,甚至可以选定单个音频进行输出。
短链接
所有输出内容均以短链接方式提供。在用户选取分类、音频、模板、样式之后,可以一键生成短链接,并可以设置短链接有效期。
HTML5适配
频道输出可以根据所在设备的不同提供自适配,系统提供iPhone,iPad,Android,WEB等不同设备的视频页面输出。
模板与样式
为了使频道输出的界面风格更贴合第三方需要,开放平台提供多种模板以及播放样式选择,开发人员可以在平台上自由切换。