保利威文档中心

幫助中心

上傳影片

更新時間:2026-09-17 23:48:10

伺服端上傳推薦使用:Java上傳SDK。

介面描述及限制

  1. 上傳影片
  2. 介面支援https協定
  3. 該介面無需傳遞 sign 參數,而是透過傳遞 writetoken 參數來進行驗簽。
  4. 介面呼叫有頻率限制,詳細請查看
  5. 傳入 vid 參數可替換既有影片(原 vid 不變),詳見下文替換影片

介面請求方式及URL

POST

http://v.polyv.net/uc/services/rest?method=uploadfile

回傳結果支援格式

JSON

請求參數

參數名 必填 類型及範圍 說明
writetoken true string 使用者的寫入資料金鑰,取得方式可參考 【取得金鑰】
JSONRPC true string json格式,{"title": "標題", "tag":"標籤","desc":"描述"}
Filedata true file file類型,支援的檔案格式為:.flv,.avi,.mpg,.mp4,.wmv,.mov,.3gp,.asf等
fcharset false string 當fcharset設為'ISO-8859-1'時,可以避免影片的檔案名稱亂碼
cataid false long 設定上傳影片的分類,分類的id可以在管理後台的「分類影片列表」頁面中取得,如下圖所示。不傳該參數時,新上傳影片進入「預設分類」;替換影片時則保持原影片的分類不變。
luping false int 是否錄影優化。當值為1時,上傳的影片不再採取預設的壓縮編碼機制,影片尺寸不再壓縮,保證影片的清晰度。預設值為0
format false string 預設回傳json格式,如果format=xml回傳xml格式
jsonp false string 例如,正常情況{error:0,data:””},加 jsonp=a後回傳a({error:0,data:””})
fileMd5 false string 檔案校驗碼,為32位大寫MD5的值
watermark false string 自訂浮水印圖片位址,圖片格式必須是png格式,支援http、https。
watermarkLocation false string 自訂浮水印圖片位置,如沒該參數,則自訂浮水印的顯示情況跟隨分類和帳號。1:左上角;2:右上角;3:左下角;4:右下角
state false string 使用者自訂資料,如果提交了該欄位,會在上傳完成回呼時透傳回傳。
vid false string 要替換的影片vid,傳入該參數即執行替換影片(原vid不變),不傳則上傳為新影片。支援兩種格式:完整vid(如 36e77ba39cc4768ab541cb6bf4f775a0_3)或32位影片id(如 36e77ba39cc4768ab541cb6bf4f775a0)。可放在URL參數中,也可放在JSONRPC報文中傳入。詳見下文替換影片。

取得分類ID的方法如下圖所示:

2

替換影片

傳入 vid 參數即執行替換影片:本次上傳的新檔案將替換該 vid 指向的既有影片,原 vid 保持不變,客戶端可繼續複用既有影片標識。替換後的處理鏈路(重新轉碼、加密、重新整理CDN快取等)與點播管理後台的「替換影片」功能一致。

替換規則:

  1. 替換成功後介面回傳的 vid 與原 vid 相同,影片內容更新為新上傳的檔案。
  2. 原影片的以下設定會自動繼承,替換後保持不變:
    • 影片外鏈(publish_url)
    • 課件(PPT)、字幕、子影片
    • 播放密碼、問答設定、播放授權、試看時長
    • 微信分享頁設定(分享標題、封面圖、簡介、頁面模板、底部按鈕等)
  3. 以下資訊按新檔案重新產生,不受原影片影響:解析度、碼率檔位、時長、原始檔大小、影片截圖、播放位址。
  4. 分類:請求中傳了 cataid 則移動到指定分類;不傳則保持原影片的分類不變。
  5. 儲存空間按新舊原始檔大小的差值計算,不會重複累加佔用。
  6. 替換後影片狀態回到「等待編碼/正在編碼」,處理完成後透過上傳完成回呼通知(state 參數透傳回傳),也可透過回傳結果中的 md5checksum 欄位核對新檔案是否上傳完整。

替換限制(與點播管理後台一致):

限制說明 回傳錯誤碼
目標影片不存在,或不屬於目前 writetoken 對應的帳號 26
直播轉存產生的影片不支援替換 27
影片目前狀態不允許替換(如已刪除、轉碼中、等待審核等) 28
影片存在未完成的轉碼任務,請等待處理完成後再替換 29

注意:替換影片會覆蓋原影片內容,替換完成後無法恢復為原影片,請謹慎操作。

替換影片請求範例:

vid 放在URL參數中:

http://v.polyv.net/uc/services/rest?method=uploadfile&vid=36e77ba39cc4768ab541cb6bf4f775a0_3

vid 也可以放在JSONRPC報文中傳入:

{"title": "新标题", "vid": "36e77ba39cc4768ab541cb6bf4f775a0_3"}

注意事項

上传视频接口POST不能携带cookie
上传的视频不能大于 2G
返回错误列表
回傳 說明
0 無錯誤
1 找不到writetoken關聯的user
2 檔案為空或者writetoken為空
3 提交的json名字JSONRPC為null
4 提交檔案格式不正確 或 影片大於 2G
5 readtoken為空
6 分頁輸入出錯
7 vid不能為空
8 找不到方法名
14 檔案md5校驗失敗
15 後台處理出錯
16 使用者的可用空間已用完
26 替換影片時,目標影片不存在或不屬於目前帳號
27 替換影片時,直播轉存的影片不支援替換
28 替換影片時,影片目前狀態不允許替換
29 替換影片時,影片存在未完成的轉碼任務

回傳結果

<xml>
<error>0</error>
<total/>
<data>
<video>
<md5checksum>
<![CDATA[ 44b145c6bea7dd826191990dfb38d1fd ]]>
</md5checksum>
<tag>
<![CDATA[ 标签 ]]>
</tag>
<mp4>
<![CDATA[http://mpv.videocc.net/36e77ba39c/0/36e77ba39cc4768ab541cb6bf4f775a0_1.mp4]]>
</mp4>
<title>
<![CDATA[ upload上传视频 ]]>
</title>
<df>2</df>
<times>
<![CDATA[ 0 ]]>
</times>
<mp4_1>
<![CDATA[http://mpv.videocc.net/36e77ba39c/0/36e77ba39cc4768ab541cb6bf4f775a0_1.mp4]]>
</mp4_1>
<vid>
<![CDATA[ 36e77ba39cc4768ab541cb6bf4f775a0_3 ]]>
</vid>
<mp4_2>
<![CDATA[http://mpv.videocc.net/36e77ba39c/0/36e77ba39cc4768ab541cb6bf4f775a0_2.mp4]]>
</mp4_2>
<cataid>
<![CDATA[ 1 ]]>
</cataid>
<swf_link>
<![CDATA[http://player.polyv.net/videos/36e77ba39cc4768ab541cb6bf4f775a0_3.swf]]>
</swf_link>
<status>
<![CDATA[ 10 ]]>
</status>
<seed>1</seed>
<flv2>
<![CDATA[http://plvod01.videocc.net/36e77ba39c/0/36e77ba39cc4768ab541cb6bf4f775a0_2.flv]]>
</flv2>
<flv1>
<![CDATA[http://plvod01.videocc.net/36e77ba39c/0/36e77ba39cc4768ab541cb6bf4f775a0_1.flv]]>
</flv1>
<sourcefile>
<![CDATA[ ]]>
</sourcefile>
<playerwidth>
<![CDATA[ 600 ]]>
</playerwidth>
<hls/>
<default_video>
<![CDATA[http://plvod01.videocc.net/36e77ba39c/0/36e77ba39cc4768ab541cb6bf4f775a0_1.flv]]>
</default_video>
<duration>
<![CDATA[ 00:00:33 ]]>
</duration>
<filesize/>
<first_image>
<![CDATA[http://img.videocc.net/uimage/3/36e77ba39c/0/36e77ba39cc4768ab541cb6bf4f775a0_0.jpg]]>
</first_image>
<original_definition>
<![CDATA[ 672x378 ]]>
</original_definition>
<context>
<![CDATA[ 视频文档描述 ]]>
</context>
<previewVid>
<![CDATA[ m63c44pl69mm7435lp871mp3pn7n448l0_6 ]]>
</previewVid>
<playerheight>
<![CDATA[ 490 ]]>
</playerheight>
<ptime>
<![CDATA[ 2017-12-04 10:36:18 ]]>
</ptime>
</video>
</data>
</xml>

Java請求範例

快速接入基礎程式碼請下載相關依賴原始碼, 點擊下載原始碼 ,下載後加入到自己的原始碼工程中即可。測試案例中的**HttpUtil.java 包含在下載檔案中。

強烈建議您使用點播Java SDK完成API的功能對接,點播Java SDK 對API呼叫邏輯、異常處理、資料簽名、HTTP請求執行緒池進行了統一封裝和最佳化。

private static final Logger log = LoggerFactory.getLogger(VodVideoUploadTest.class);
/**
 * 上传点播视频
 */
@Test
public void testUpload() throws Exception, NoSuchAlgorithmException {
    //业务参数
    String url = "http://v.polyv.net/uc/services/rest?method=uploadfile";
    String writeToken = super.writeToken;
    
    Map<String, String> requestMap = new HashMap<>();
    requestMap.put("writetoken", writeToken);
    requestMap.put("JSONRPC", "{\"title\": \"标题\", \"tag\":\"标签\",\"desc\":\"描述\"}");
    Map<String, File> fileMap = new HashMap<>();
    fileMap.put("Filedata",new File("E:\\polyv\\polyv.mp4"));
    String response = HttpUtil.postFile(url,requestMap,fileMap,null);
    log.debug("测试上传点播视频,{}", response);
    //do somethings
}

JSON範例

{
error: "0",
data: [
{
images_b: [
"http://img.videocc.net/uimage/3/36e77ba39c/d/36e77ba39c0e5dac84dba418d81a793d_0_b.jpg",
"http://img.videocc.net/uimage/3/36e77ba39c/d/36e77ba39c0e5dac84dba418d81a793d_1_b.jpg",
"http://img.videocc.net/uimage/3/36e77ba39c/d/36e77ba39c0e5dac84dba418d81a793d_2_b.jpg",
"http://img.videocc.net/uimage/3/36e77ba39c/d/36e77ba39c0e5dac84dba418d81a793d_3_b.jpg",
"http://img.videocc.net/uimage/3/36e77ba39c/d/36e77ba39c0e5dac84dba418d81a793d_4_b.jpg",
"http://img.videocc.net/uimage/3/36e77ba39c/d/36e77ba39c0e5dac84dba418d81a793d_5_b.jpg"
],
md5checksum: "44b145c6bea7dd826191990dfb38d1fd",
tag: "标签",
mp4: "http://mpv.videocc.net/36e77ba39c/d/36e77ba39c0e5dac84dba418d81a793d_1.mp4",
title: "标题",
df: 2,
times: "0",
mp4_1: "http://mpv.videocc.net/36e77ba39c/d/36e77ba39c0e5dac84dba418d81a793d_1.mp4",
vid: "36e77ba39c0e5dac84dba418d81a793d_3",
mp4_2: "http://mpv.videocc.net/36e77ba39c/d/36e77ba39c0e5dac84dba418d81a793d_2.mp4",
cataid: "1",
swf_link: "http://player.polyv.net/videos/36e77ba39c0e5dac84dba418d81a793d_3.swf",
source_filesize: 2295887,
status: "10",
seed: 1,
flv2: "http://plvod01.videocc.net/36e77ba39c/d/36e77ba39c0e5dac84dba418d81a793d_2.flv",
flv1: "http://plvod01.videocc.net/36e77ba39c/d/36e77ba39c0e5dac84dba418d81a793d_1.flv",
sourcefile: "",
playerwidth: "600",
hls: [
"http://hls.videocc.net/36e77ba39c/3/36e77ba39c0e5dac84dba418d81a793d_1.m3u8",
"http://hls.videocc.net/36e77ba39c/3/36e77ba39c0e5dac84dba418d81a793d_2.m3u8"
],
default_video: "http://plvod01.videocc.net/36e77ba39c/d/36e77ba39c0e5dac84dba418d81a793d_1.flv",
duration: "00:00:33",
filesize: [
0,
0
],
first_image: "http://img.videocc.net/uimage/3/36e77ba39c/d/36e77ba39c0e5dac84dba418d81a793d_0.jpg",
original_definition: "672x378",
context: "描述",
images: [
"http://img.videocc.net/uimage/3/36e77ba39c/d/36e77ba39c0e5dac84dba418d81a793d_0.jpg",
"http://img.videocc.net/uimage/3/36e77ba39c/d/36e77ba39c0e5dac84dba418d81a793d_1.jpg",
"http://img.videocc.net/uimage/3/36e77ba39c/d/36e77ba39c0e5dac84dba418d81a793d_2.jpg",
"http://img.videocc.net/uimage/3/36e77ba39c/d/36e77ba39c0e5dac84dba418d81a793d_3.jpg",
"http://img.videocc.net/uimage/3/36e77ba39c/d/36e77ba39c0e5dac84dba418d81a793d_4.jpg",
"http://img.videocc.net/uimage/3/36e77ba39c/d/36e77ba39c0e5dac84dba418d81a793d_5.jpg"
],
previewVid: "363c44pl69m0c8klm57kpl715k51l496k_6",
playerheight: "490",
ptime: "2017-12-04 11:12:50"
}
]
}

欄位說明

欄位 說明
swf_link Flash連結位址
tag 標籤
mp4 影片位址
playerwidth 影片寬度
title 影片標題
duration 影片時長
first_image 影片截圖
times 點擊次數
context 影片描述
images 所有截圖
previewVid 預覽影片VID
playerheight 影片高度
ptime 上傳時間
vid 影片id
cataid 分類id, 如1為根目錄
default_video 使用者預設播放影片
df 影片碼率數
flv1 流暢碼率flv格式影片位址
flv2 高清碼率flv格式影片位址
flv3 超清碼率flv格式影片位址
mp4_1 流暢碼率mp4格式影片位址
mp4_2 高清碼率mp4格式影片位址
mp4_3 超清碼率mp4格式影片位址
hls1 流暢碼率hls格式影片位址
hls2 高清碼率hls格式影片位址
hls3 超清碼率hls格式影片位址
hlsIndex 自適應碼率hls播放位址
images_b 影片截圖大圖位址
seed 加密影片為1,非加密為0
status 影片狀態
md5checksum 上傳到POLYV雲平台的影片原始檔的MD5值,可以用來校驗是否上傳錯誤或完整
影片狀態碼 含義
60/61 已發佈
10 等待編碼
20 正在編碼
40 影片處理失敗
50 等待審核
51 審核不通過
-1 已刪除
联系客服,在线咨询
在线咨询