上傳影片
更新時間:2025-11-27 09:51:35
伺服器端上傳建議使用:Java上傳SDK。
介面描述及限制
- 上傳影片
- 介面支援 HTTPS 協定
- 此介面無需傳遞 sign 參數,而是透過傳遞 writetoken 參數來進行驗簽。
- 介面呼叫有頻率限制,詳細請查看
介面請求方式及 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 | 使用者自訂資料,如果提交了該欄位,會在上傳完成回呼時透傳回傳。 |
取得分類 ID 的方法如下圖所示:

注意事項
上传视频接口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 | 使用者的可用空間已用完 |
回傳結果
<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 | 已刪除 |
