创建并初始化频道
更新时间:2026-06-26 11:01:41
旧版接口地址创建单个频道(旧版)
接口描述
1、根据请求参数与默认模板创建频道
2、(timestamp, appId)参与sign签名,并和sign一起通过url传递,请求体参数不参与签名,通过post请求体传递【请设置请求头contentType:application/json】
3、接口支持https协议
接口URL
http://api.polyv.net/live/v4/channel/create-init
请求方式
POST
接口约束
1、接口同时支持HTTP 、HTTPS ,建议使用HTTPS 确保接口安全,接口调用有频率限制,详细请查看
2、直播场景为双师课、研讨会时,不支持转播类型设置;直播延迟为无延迟时,不支持转播类型设置;
3、直播场景为研讨会时,不支持直播延迟、转播、连麦人数设置;
4、研讨会场景下主持人密码和参会人密码不能相同;
请求参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| appId | true | String | 账号appId【详见获取密钥】 |
| timestamp | true | Long | 当前13位毫秒级时间戳,3分钟内有效 |
| sign | true | String | 签名,为32位大写的MD5值,生成签名的appSecret密钥作为通信数据安全的关键信息,严禁保存在客户端直接使用,所有API都必须通过客户自己服务器中转调用POLYV服务器获取响应数据【详见签名生成规则】 |
请求体参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| basicSetting | true | Object | 频道基础信息【详见basicSetting字段说明】 |
| masterAuthSetting | false | Object | 主要观看条件【详见masterAuthSetting字段说明】 不传该字段,将按照默认模板设值。 |
| playbackSetting | false | Object | 回放设置【详见playbackSetting字段说明】 不传该字段,将按照默认模板设值。 |
| roles | false | Array | 角色设置,包括讲师、助教、嘉宾。 不传该字段,将按照默认模板设置角色信息。 传入该字段,不设置讲师,将按照默认模板设置讲师信息。 传入该字段,不设置助教、嘉宾将不创建。最多设置10个角色【详见roles字段说明】 |
basicSetting参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| name | true | String | 直播名称,最大长度50 |
| newScene | true | String | 直播场景 topclass(大班课) double(双师课,该场景需开通) train(企业培训) alone(活动营销) seminar(研讨会) smallclass(小班课) |
| template | true | String | 直播模板 ppt(三分屏-横屏) portrait_ppt(三分屏-竖屏) alone(纯视频-横屏) portrait_alone(纯视频-竖屏) topclass(纯视频极速-横屏) portrait_topclass(纯视频极速-竖屏) seminar(研讨会) 字段约束: 直播场景(newScene字段)为 topclass(大班课)时,字段支持ppt(三分屏-横屏)、portrait_ppt(三分屏-竖屏)、alone(纯视频-横屏)、portrait_alone(纯视频-竖屏)、topclass(纯视频极速-横屏)、portrait_topclass(纯视频极速-竖屏) 直播场景(newScene字段)为 train(企业培训)或 alone(活动营销)时,该字段支持ppt(三分屏-横屏)、portrait_ppt(三分屏-竖屏)、alone(纯视频-横屏)、portrait_alone(纯视频-竖屏) 直播场景(newScene字段)为 double(双师课)时,该字段支持ppt(三分屏-横屏)、alone(纯视频-横屏) 直播场景(newScene字段)为 seminar(研讨会)时,该字段支持seminar(研讨会) 直播场景(newScene字段)为 guide(导播)时,该字段支持alone(纯视频-横屏)、portrait_alone(纯视频-竖屏) |
| streamType | false | String | 直播方式 client: 普通直播(默认值) disk: 伪直播 |
| channelPasswd | false | String | 讲师登录密码,直播场景不是研讨会时有效,长度6-16位,必须同时包含字母和数字,不传则由系统随机生成 |
| seminarHostPassword | false | String | 研讨会主持人密码,仅直播场景是研讨会时有效,长度6-16位,必须同时包含字母和数字,不传则由系统随机生成 |
| seminarAttendeePassword | false | String | 研讨会参会人密码,仅直播场景是研讨会时有效,长度6-16位,必须同时包含字母和数字,不传则由系统随机生成 |
| categoryId | false | Integer | 分类ID |
| startTime | false | Long | 直播开始时间,13位毫秒级时间戳【注:仅做直播前倒计时显示,不对讲师开播操作产生影响】 |
| endTime | false | Long | 结束时间,时间戳,如:1629845600000,需大于当前时间【注:仅做未开播时直播状态判断显示,不对讲师开播操作产生影响】 |
| pureRtcEnabled | false | String | 无延迟直播开关,Y:开启,N:关闭 |
| type | false | String | 频道类型 发起转播:transmit 接收转播:receive 普通频道:normal |
| createReceiveChannelCount | false | Integer | 创建接收转播频道数量(仅当创建频道类型为发起转播,即type值为transmit时生效;最多支持同时创建100个转播频道) |
| doubleTeacherType | false | String | 线上双师房间类型 transmit大房间、receive小房间 |
| cnAndEnLiveEnabled | false | String | 中英双语直播开关Y开、N关 |
| linkMicLimit | false | Integer | 连麦人数限制,最多16人。为0表示关闭连麦。 该值为空时,则默认使用账号的最大连麦人数(可联系商务修改) |
| description | false | String | 直播介绍,最多1024字符长度(不支持富文本,建议用menuDesc代替) |
| menuDesc | false | String | 菜单管理,直播介绍(支持富文本,代替description) |
| logoImg | false | String | 直播间图标地址,如果为空则使用默认模板设置 |
| splashImg | false | String | 引导页图片地址,非保利威域名下的图片需先调用上传频道所有装修图片素材上传,如果为空则使用默认模板设置 |
| coverImg | false | String | 播放器封面图片,没有直播和回放的时候显示,不传使用默认模板设置 |
| subAccount | false | String | 子账号邮箱,填写时频道会创建在该子账号下(子账号不能被删除或者禁用),暂无法通过接口获取 |
| customTeacherId | false | String | 自定义讲师ID,32个以内ASCII码可见字符 |
| watchLangType | false | String | 观看页语言(zh_CN:中文/en:英文 /ja:日文 /ko:韩文 /zh_TW:繁体中文 /follow_browser:跟随浏览器) |
| allowSwitchLangEnabled | false | String | 允许观众切换语言开关br/>Y:允许 N:不允许 |
| smallClassSizeLimit | false | Integer | 小班课班型,仅直播场景是小班课时必填,可选值:1,6,12 |
| isRecord | false | String | 小班课录制开关,仅直播场景是小班课时有效,Y:开启,N:关闭,不传则默认关闭 |
| h5LowLatencyFlvEnabled | false | String | 手机H5观看页低延迟开关,Y表示开启,N表示关闭 |
masterAuthSetting参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| enabled | true | String | 是否开启观看条件 Y:开启 N:关闭 |
| authType | false | String | 观看条件类型 code:验证码观看 pay:付费观看 custom:自定义授权观看 external:外部授权观看 direct:独立授权观看 |
| authCode | false | String | authType为code时,设置参数,必填。观看验证码,长度不超过8位 |
| codeAuthTips | false | String | authType为code时,设置参数,非必填。欢迎标题,长度不超过20位,默认:欢迎观看本次直播 |
| qCodeTips | false | String | authType为code时,设置参数,非必填。验证码提示文案,长度不超过30位,默认:扫描二维码获得验证码 |
| qCodeImg | false | String | authType为code时,设置参数,非必填。二维码图片地址 |
| payAuthTips | true | String | 当authType为pay时,设置参数,必填。欢迎语标题,长度不超过20位 |
| price | true | Float | 当authType为pay时,设置参数,必填。价格,单位为元 |
| watchEndTime | false | Long | 当authType为pay时,设置参数,非必填。付费有效截止日期,十三位毫秒级时间戳, |
| validTimePeriod | false | Integer | 当authType为pay时,设置参数,非必填。付费有效时长,单位天。当watchEndTime和validTimePeriod都为空时,表示付费永久有效 |
| customKey | true | String | 当authType为custom时,设置参数,必填。SecretKey,长度不超过10位 |
| customUri | true | String | 当authType为custom时,设置参数,必填。自定义url |
| externalKey | true | String | 当authType为external时,设置参数,必填。SecretKey,长度不超过10位 |
| externalUri | true | String | 当authType为external时,设置参数,必填。自定义url |
| externalRedirectUri | false | String | 当authType为external时,设置参数,非必填。失败跳转地址 |
| externalEntryText | false | String | 当authType为external时,设置参数,非必填。入口文本,默认为:登录观看 |
| directKey | true | String | 当authType为direct时,设置参数,必填。独立授权SecretKey,长度不超过10位 |
playbackSetting参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| playbackEnabled | false | String | 回放开关 Y:开启 N:关闭 |
| sectionEnabled | false | string | 回放设置,章节开关,Y:开启,N:关闭 |
| type | false | String | 回放方式 single:单个回放 list:列表回放 |
| origin | false | String | 回放来源 record:暂存 playback:回放列表 vod:点播列表 注:type为single时,该值只能为record;type为list时,该值只能为playback或vod; |
roles参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| role | true | String | 角色类型 Teacher:讲师 Assistant:助教 Guest:嘉宾 |
| nickName | false | String | 角色昵称,长度限制为30位 |
| actor | false | String | 角色头衔,长度限制为10位 |
| passwd | false | String | 角色密码,密码长度6-16位,必须包含数字和英文 |
| avatar | false | String | 角色头像图片地址,需包含协议 |
示例
http://api.polyv.net/live/v4/channel/create-init?appId=frlr1zazn3&sign=4424EF1F6C767FC0E2FB4A912E566879×tamp=1653879013148
请求体json参数:
{
"basicSetting": {
"template": "ppt",
"newScene": "topclass",
"type": "normal",
"cnAndEnLiveEnabled": "N",
"linkMicLimit": "5",
"doubleTeacherType": "normal",
"name": "polyv公开课",
"startTime": "1747718040000",
"pureRtcEnabled": "Y",
"description": "通过游戏的带入课程<br/>让课堂生动有趣",
"channelPasswd": "1a2b3c4d5e",
"logoImg": "https://liveimages.videocc.net/uploaded/images/2021/09/g2bta2pjbw.jpg",
"splashImg": "https://liveimages.videocc.net/uploaded/images/2021/09/g2bta2pjbw.jpg"
},
"masterAuthSetting": {
"enabled": "Y",
"authType": "code",
"authCode": "123456"
},
"playbackSetting":{
"playbackEnabled":"Y",
"sectionEnabled":"Y",
"type":"list",
"origin":"vod"
},
"roles": [
{
"role": "Teacher"
},
{
"role": "Assistant",
"actor": "助教",
"nickName": "勋助教"
},
{
"role": "Guest",
"passwd": "aSzqyd13qz",
"actor": "嘉宾",
"avatar": "https://s1.videocc.net/default-img/avatar/guest.png",
"nickName": "王嘉宾"
}
]
}
响应参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | Integer | 状态码,与 http 状态码相同,用于确定基本的响应状态 |
| status | String | 响应结果,由业务决定,成功返回success,失败返回error |
| success | Boolean | 是否成功响应 |
| requestId | String | 请求ID,每次请求生成的唯一的 UUID,仅可用于排查、调试,不应该和业务挂上钩 |
| error | Object | 状态码非200时的错误信息【详见Error字段描述】 |
| data | Object | 【详见data字段说明】 |
Error参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | Integer | 错误代码,用于确定具体的错误原因 |
| desc | String | 错误描述,与 error.code 对应 |
data字段说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| channelId | String | 频道ID |
| name | String | 频道名称 |
| userId | String | POLYV用户ID,和保利威官网一致,获取路径:官网->登录->直播(开发设置) |
| channelPasswd | String | 讲师登录密码,非研讨会场景使用,长度6-16位 |
| seminarHostPassword | String | 研讨会主持人密码,仅直播场景是研讨会时返回,长度6-16位 |
| seminarAttendeePassword | String | 研讨会参会人密码,仅直播场景是研讨会时返回,长度6-16位 |
| publisher | String | 主持人名称 |
| description | String | 直播介绍 |
| newScene | String | 直播场景 (topclass-大班课 、 double-双师课(该场景需开通) 、 train-企业培训 、 seminar-研讨会 、 alone-活动营销) |
| template | String | 直播模板 (ppt-三分屏(横屏) 、 portrait_ppt-三分屏(竖屏) 、 alone-纯视频(横屏) 、portrait_alone-纯视频(竖屏) 、 topclass-纯视频-极速(横屏) 、 portrait_topclass-纯视频-极速(竖屏) 、 seminar-研讨会) 直播场景为topclass时,该字段支持ppt、portrait_ppt、alone、portrait_alone、topclass、portrait_topclass 直播场景为train或alone时,该字段支持ppt、portrait_ppt、alone、portrait_alone 直播场景为double时,该字段支持ppt、alone 直播场景为seminar时,该字段支持seminar |
| linkMicLimit | Integer | 连麦人数 |
| pureRtcEnabled | String | 直播延迟 Y:无延时迟 N:普通延迟 |
| type | String | 频道类型 发起转播:transmit 接收转播:receive 普通频道:normal |
| currentTimeMillis | Long | 当前13位毫秒级时间戳 |
Java请求示例
快速接入基础代码请下载相关依赖源码, 点击下载源代码 ,下载后加入到自己的源码工程中即可。测试用例中的HttpUtil.java 和 LiveSignUtil.java 都包含在下载文件中。
强烈建议您使用直播Java SDK完成API的功能对接,直播Java SDK 对API调用逻辑、异常处理、数据签名、HTTP请求线程池进行了统一封装和优化。
private static final Logger log = LoggerFactory.getLogger(ChannelOperateTest.class);
/**
* 创建单个频道
* @throws IOException
* @throws NoSuchAlgorithmException
*/
@Test
public void testCreateInit() throws IOException, NoSuchAlgorithmException {
//公共参数,填写自己的实际参数
String appId = super.appId;
String appSecret = super.appSecret;
String timestamp = String.valueOf(System.currentTimeMillis());
//业务参数
String url = "http://api.polyv.net/live/v4/channel/create-init";
//http 调用逻辑
Map<String, String> requestMap = new HashMap<>();
requestMap.put("appId", appId);
requestMap.put("timestamp", timestamp);
requestMap.put("sign", LiveSignUtil.getSign(requestMap, appSecret));
url = HttpUtil.appendUrl(url, requestMap);
String json = "{\"basicSetting\":{\"template\":\"ppt\",\"newScene\":\"topclass\",\"type\":\"normal\"," +
"\"cnAndEnLiveEnabled\":\"N\",\"linkMicLimit\":\"5\",\"doubleTeacherType\":\"normal\"," +
"\"name\":\"polyv公开课\",\"startTime\":\"1747718040000\",\"pureRtcEnabled\":\"Y\"," +
"\"description\":\"通过游戏的带入课程,让课堂生动有趣\",\"channelPasswd\":\"1a2b3c4d5e\"," +
"\"logoImg\":\"https://liveimages.videocc.net/uploaded/images/2021/09/g2bta2pjbw.jpg\"," +
"\"splashImg\":\"https://liveimages.videocc.net/uploaded/images/2021/09/g2bta2pjbw.jpg\"}," +
"\"masterAuthSetting\":{\"enabled\":\"Y\",\"authType\":\"code\",\"authCode\":\"123456\"}," +
"\"roles\":[{\"role\":\"Teacher\"},{\"role\":\"Assistant\",\"actor\":\"助教\",\"nickName\":\"勋助教\"}," +
"{\"role\":\"Guest\",\"passwd\":\"aSzqyd13qz\",\"actor\":\"嘉宾\",\"avatar\":\"https://s1.videocc" +
".net/default-img/avatar/guest.png\",\"nickName\":\"王嘉宾\"}]}";
String response = HttpUtil.postJsonBody(url, json, null);
log.info("测试创建单个频道成功:{}", response);
//do somethings
}
响应示例
系统全局错误说明详见全局错误说明
成功示例(测试示例频道号已隐藏)
{
"code": 200,
"status": "success",
"requestId": "14138a5004b1412fbe109f854fec0b52.59.16538790171742883",
"data": {
"channelId": ******,
"name": "polyv公开课",
"userId": "1b448be323",
"channelPasswd": "t2IIefL6toqoBAA",
"seminarHostPassword": null,
"seminarAttendeePassword": null,
"publisher": null,
"description": "通过游戏的带入课程,让课堂生动有趣",
"newScene": "topclass",
"template": "ppt",
"linkMicLimit": 5,
"pureRtcEnabled": "Y",
"type": "normal",
"currentTimeMillis": 1653879017848
},
"success": true
}
异常示例
{
"code": 400,
"status": "error",
"requestId": "4081dbac03e6441e8bdd301d8feee5a2.124.16360831818611581",
"error": {
"code": 20001,
"desc": "application not found."
},
"success": false
}
