建立頻道
更新時間:2026-08-06 23:48:06
舊版介面位址建立單一頻道(舊版)
舊版介面升級新版注意事項
- 舊版介面建立頻道時,能直接設定頻道基本資訊、觀看條件、回放設定、講師設定、角色設定;
- 新版介面建立頻道時,只能設定頻道基本資訊,觀看條件、回放設定、講師設定、角色設定來源於預設模板設定,在建立頻道前需設定好預設模板;
- 預設模板的修改不會對已建立的頻道產生影響,已建立頻道資訊的修改與舊版介面一致;
- 舊版介面直播場景(scene)對應本介面直播模板(template),由於舊版介面無場景(newScene欄位)概念,舊版升級新版後,使用舊版介面建立的頻道,在新版直播後台的場景會顯示未定義,對資料無影響
介面描述
1、根据直播默认模板创建频道
2、(timestamp, appId)参与sign签名,并和sign一起通过url传递,请求体参数不参与签名,通过post请求体传递【请设置请求头contentType:application/json】
3、接口支持https协议
接口URL
http://api.polyv.net/live/v4/channel/create
請求方式
POST
介面限制
1、介面同時支援 HTTP 與 HTTPS,建議使用 HTTPS 以確保介面安全,介面呼叫有頻率限制,詳細請參閱
2、直播場景為雙師課、研討會時,不支援轉播類型設定;直播延遲為無延遲時,不支援轉播類型設定;
3、直播場景為研討會時,不支援直播延遲、轉播、連麥人數設定;
4、研討會場景下主持人密碼與參與者密碼不能相同;
請求參數說明
| 參數名 | 必填 | 類型 | 說明 |
|---|---|---|---|
| appId | 是 | String | 帳號 appId【詳見取得金鑰】 |
| timestamp | 是 | Long | 目前13位毫秒級時間戳記,3分鐘內有效 |
| sign | 是 | String | 簽名,為32位大寫的MD5值,產生簽名的 appSecret 金鑰作為通訊資料安全的關鍵資訊,嚴禁儲存在用戶端直接使用,所有API都必須透過客戶自己的伺服器中轉呼叫 POLYV 伺服器以取得回應資料【詳見簽名產生規則】 |
請求體參數說明
| 參數名 | 必填 | 類型 | 說明 |
|---|---|---|---|
| name | true | String | 直播名稱,最大長度100 |
| newScene | true | String | 直播場景 topclass(大班課) double(雙師課,該場景需開通) train(企業培訓) alone(活動行銷) seminar(研討會) guide(導播,該場景需開通) smallclass(小班課) |
| smallClassSizeLimit | false | Integer | 小班課班型,可選值:1,6,12 |
| isRecord | false | String | 小班課錄製開關(Y/N,預設值:N) |
| newSessionEnabled | false | String | 系列直播開關,Y:系列直播,N:普通直播。預設值:N |
| 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位,不傳則由系統隨機生成。研討會主持人密碼和與會人密碼不能相同。 (介面允許設定純數字或純字母,若需要在直播後台編輯,建議同時包含數字和字母) |
| pureRtcEnabled | false | String | 直播延遲 Y無延遲 N普通延遲 |
| type | false | String | 轉播類型 normal不開啟、transmit發起轉播、receive接收轉播(該功能需開通),部分直播場景不支援轉播設定,具體請閱讀介面限制 |
| doubleTeacherType | false | String | 線上雙師 transmit大房間、receive小房間 |
| cnAndEnLiveEnabled | false | String | 中英雙語直播開關 Y開、N關。設定Y時,僅在newScene為train/alone,template為alone,pureRtcEnabled為N時生效 |
| splashImg | false | String | 引導頁圖片位址,非保利威域名下的圖片需先呼叫上傳頻道所有裝修圖片素材上傳 |
| linkMicLimit | false | Integer | 連麥人數限制,最多16人。為0表示關閉連麥。 該值為空時,則預設使用帳號的最大連麥人數(可聯繫商務修改) |
| categoryId | false | Integer | 分類ID,可透過「查詢直播分類」介面取得 |
| startTime | false | Long | 開始時間,時間戳,如:1629734400000【註:僅做直播前倒數計時顯示,不對講師開播操作產生影響】 |
| endTime | false | Long | 結束時間,時間戳,如:1629845600000【註:僅做未開播時直播狀態判斷顯示,不對講師開播操作產生影響】 |
| subAccount | false | String | 子帳號信箱,填寫時頻道會建立在該子帳號下(子帳號不能被刪除或停用),暫無法透過介面取得 |
| customTeacherId | false | String | 自訂講師ID,32個以內ASCII碼可見字元 |
| labelData | false | Array | 標籤id陣列 |
| clientAloneTemplateBackgroundUrl | false | String | 客戶端模板背景圖URL |
| liveCdnBackgroundUrl | false | String | 影片混流背景圖URL |
| h5LowLatencyFlvEnabled | false | String | 手機H5觀看頁低延遲開關,Y表示開啟,N表示關閉 |
範例
http://api.polyv.net/live/v4/channel/create?appId=frlr1zazn3&sign=E3F501CFEF5FCCF2DF9BFDCE9C91F48C×tamp=1629445373947
請求體 JSON 參數:
{
"template": "ppt",
"doubleTeacherType": "normal",
"name": "polyv小课堂",
"startTime": "1779254040000",
"newScene": "topclass",
"newSessionEnabled": "Y",
"type": "normal",
"pureRtcEnabled": "Y",
"linkMicLimit": "6",
"labelData":[]
}
回應參數說明
| 參數名 | 類型 | 說明 |
|---|---|---|
| code | Integer | 狀態碼,與 HTTP 狀態碼相同,用於確定基本的回應狀態 |
| status | String | 回應結果,由業務決定,成功回傳 success,失敗回傳 error |
| success | Boolean | 是否成功回應 |
| requestId | String | 請求 ID,每次請求產生的唯一 UUID,僅可用於排查、除錯,不應與業務掛鉤 |
| data | Object | 頻道回應物件【詳見 data 欄位說明】 |
| error | Object | 錯誤資訊【詳見 data 欄位說明】 |
Data參數描述
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| channelId | Integer | 頻道ID |
| userId | String | POLYV使用者ID,與保利威官網一致,取得路徑:官網->登入->直播(開發設定) |
| channelPasswd | String | 講師登入密碼,直播場景非研討會時不為null,長度6-16位 |
| seminarHostPassword | String | 研討會主持人密碼,僅直播場景為研討會時不為null,長度6-16位 |
| seminarAttendeePassword | String | 研討會與會者密碼,僅直播場景為研討會時不為null,長度6-16位 |
Java 請求範例
快速接入基礎程式碼請下載相關依賴原始碼, 點擊下載原始碼 ,下載後加入自己的原始碼工程中即可。測試案例中的HttpUtil.java 和 LiveSignUtil.java 都包含在下載檔案中。
強烈建議您使用直播 Java SDK完成 API 的功能對接,直播 Java SDK 對 API 呼叫邏輯、例外處理、資料簽章、HTTP 請求執行緒池進行了統一封裝和最佳化。
/**
* 创建单个频道
* @throws IOException
* @throws NoSuchAlgorithmException
*/
@Test
public void testBasicCreateV4() throws IOException, NoSuchAlgorithmException {
//公共参数,填写自己的实际
String appId = super.appId;
String appSecret = super.appSecret;
String userId = super.userId;
String timestamp = String.valueOf(System.currentTimeMillis());
//业务参数
String url = "http://api.polyv.net/live/v4/channel/create";
String name = "polyv小课堂";
String newScene = "topclass";
String template = "ppt";
String pureRtcEnabled = "Y";
String type = "normal";
String doubleTeacherType = "normal";
String cnAndEnLiveEnabled = "N";
String linkMicLimit = "5";
String categoryId = "";
Long startTime = new Date().getTime() + 30 * 60 * 1000l;
//http 调用逻辑
Map<String, String> requestMap = new HashMap<>();
requestMap.put("appId", appId);
requestMap.put("timestamp", timestamp);
Map<String, String> bodyMap = new HashMap<>();
bodyMap.put("name", name);
bodyMap.put("newScene", newScene);
bodyMap.put("template", template);
bodyMap.put("pureRtcEnabled", pureRtcEnabled);
bodyMap.put("type", type);
bodyMap.put("doubleTeacherType", doubleTeacherType);
bodyMap.put("cnAndEnLiveEnabled", cnAndEnLiveEnabled);
bodyMap.put("linkMicLimit", linkMicLimit);
// bodyMap.put("categoryId", categoryId);
bodyMap.put("channelPasswd", "Y2KRyUauSITWv");
// bodyMap.put("seminarHostPassword", "lLnAtoeNfAID3");
// bodyMap.put("seminarAttendeePassword", "cpoonjki9CRBh");
bodyMap.put("startTime", String.valueOf(startTime));
requestMap.put("sign", LiveSignUtil.getSign(requestMap, appSecret));
String body = JSON.toJSONString(bodyMap);
url = HttpUtil.appendUrl(url, requestMap);
String response = HttpUtil.postJsonBody(url,body,null);
log.info("测试创建单个频道,返回值:{}", response);
//do somethings
}
回應範例
系統全域錯誤說明詳見全域錯誤說明
成功範例
{
"code": 200,
"status": "success",
"requestId": "847f0716fa76461baf8979aaa4415dc3.67.16342672396023837",
"data": {
"channelId": 2614804,
"userId": "1b448be323",
"scene": null,
"channelPasswd": "jvO3RbFTKE61A",
"seminarHostPassword": null,
"seminarAttendeePassword": null
},
"success": true
}
異常範例
{
"code": 400,
"status": "error",
"requestId": "4081dbac03e6441e8bdd301d8feee5a2.124.16360831818611581",
"error": {
"code": 20001,
"desc": "application not found."
},
"success": false
}
