上传视频
更新时间: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 | flase | 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 | 已删除 |
