创建并初始化频道

旧版接口地址创建单个频道(旧版)

接口描述

1、根据请求参数与默认模板创建频道
2、(timestamp, appId)参与sign签名,并和sign一起通过url传递,请求体参数不参与签名,通过post请求体传递【请设置请求头contentType:application/json】
3、接口支持https协议

接口URL

http://api.polyv.net/live/v4/channel/create-init

在线API调用

请求方式

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(研讨会)

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(纯视频-竖屏)

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

doubleTeacherType

false

String

线上双师房间类型 transmit大房间、receive小房间

cnAndEnLiveEnabled

false

String

中英双语直播开关Y开、N关

linkMicLimit

false

Integer

连麦人数限制,最多16人

description

false

String

直播介绍,最多1024字符长度

logoImg

false

String

直播logo图片,如果为空则使用默认模板设置

splashImg

false

String

引导页图片地址,非保利威域名下的图片需先调用上传频道所有装修图片素材上传,如果为空则使用默认模板设置

coverImg

false

String

播放器封面图片,没有直播和回放的时候显示,不传使用默认模板设置

subAccount

false

String

子账号邮箱,填写时频道会创建在该子账号下(子账号不能被删除或者禁用),暂无法通过接口获取

customTeacherId

false

String

自定义讲师ID,32个以内ASCII码可见字符

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

角色昵称,长度限制为15位

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&timestamp=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
}

Last updated