建立並初始化頻道
更新時間: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 | 是 | String | 帳號 appId【詳見取得金鑰】 |
| timestamp | 是 | Long | 目前13位毫秒級時間戳記,3分鐘內有效 |
| sign | 是 | 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 | 允許觀眾切換語言開關 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 位,預設:掃描 QR Code 獲得驗證碼 |
| qCodeImg | false | String | authType 為 code 時,設定參數,非必填。QR 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
}
