跑马灯

功能介绍

视频如今已应用在各行各业中。可是,视频版权问题依然是困扰大多数人的难题。而录屏,是视频防盗中最难防范的一个环节。如何去防录屏,这成为了人们普遍关心的问题。

因此,POLYV针对性定制了一款增强防录屏效果的视频功能—视频跑马灯功能。

跑马灯功能,可以根据个人喜好进行设置跑马灯的具体效果,使该功能在保证防录屏的前提下还不影响,访客的观看体验与视频的整体美观。

还可以通过使用POLYV提供的接口,通过设定,可以实现设定文字在视频上不规则的跑动,如客户可以通过代码获取到访客的ID后,将ID以跑马灯的方式展现在视频的上方,这样可以大大的增加盗版者的录屏成本,同时还能够强力的震慑盗版者。

后台设置

直播后台 --> 选择频道 --> 播放器管理 --> 防录屏跑马灯

固定值和登录用户名

可设置参数

参数 说明
跑马灯内容 显示的跑马灯内容,登录用户名需要设置param2参数
字体大小 跑马灯内容字体大小,不建议设置小于12号字体
字体颜色 跑马灯内容字体颜色,16进制数值
透明度 跑马灯内容透明度,最大是99%
显示方式 跑马灯显示方式,滚动是自屏幕右方至左方一直滚动 闪烁是屏幕内随机位置闪烁
双跑马灯 开启后,额外加载一个内容相同的跑马灯,该跑马灯肉眼不可见,可经过特殊处理后显示,用于溯源。
自定义缩放 开启后,跑马灯内容可以随播放器大小的缩放而缩放
  • 外嵌播放时用登录用户名需要设置param2参数,否则会报错
  • 固定值和登录用户名可以快速设置显示跑马灯,但是安全性不及自定义跑马灯,对防录屏有较高要求请使用自定义跑马灯和开通防录屏功能

效果

固定值固定值

自定义跑马灯

如果需要用自定义跑马灯,则需要在直播后台设置跑马灯链接,如:http://www.mywebsite.com/validate.php

  • 后端返回json
    用户的http协议接口(如 http://www.mywebsite.com/validate.php )代码示例:
// validate.php
<?php
$username= "elvis";// 用户昵称, 若值为中文需要urlencode('张三'),从session获取
$vid = $_GET["vid"];    
$uid = $_GET["uid"];    
$t = $_GET["t"];    
$code = $_GET["code"];  // 可选
$callback = isset($_GET["callback"])?$_GET["callback"]:null; //未提交callback时则设为空
$msg='播放错误(测试)';          
$fontSize=50;     
$fontColor='0xFFFF00';  
$speed=50;
$filter='on';
$setting=3;
$alpha=0.9;
$filterAlpha=0.9;
$filterColor='0xFF0000';
$blurX=2;
$blurY=2;
$interval=2;
$lifeTime=5;
$tweenTime=5;
$strength=100;
$show='on';
$str="vid=".$vid."&uid=".$uid."&username=".$username."&code=".$code."&t=".$t."&msg=".$msg."&fontSize=".$fontSize."&fontColor=".$fontColor."&speed=".$speed."&filter=".$filter."&setting=".$setting."&alpha=".$alpha."&filterAlpha=".$filterAlpha."&filterColor=".$filterColor."&blurX=".$blurX."&blurY=".$blurY."&interval=".$interval."&lifeTime=".$lifeTime."&tweenTime=".$tweenTime."&strength=".$strength."&show=".$show;
$sign=md5($str);    //加密规则,md5加密,
$array = Array("show"=>$show,"sign"=>$sign,"username"=>$username,"msg"=>$msg,"fontSize"=>$fontSize,"fontColor"=>$fontColor,"speed"=>$speed,"filter"=>$filter,"setting"=>$setting,"alpha"=>$alpha,"filterAlpha"=>$filterAlpha,"filterColor"=>$filterColor,"blurX"=>$blurX,"blurY"=>$blurY,"interval"=>$interval,"lifeTime"=>$lifeTime,"tweenTime"=>$tweenTime,"strength"=>$strength);    
$validateJson = json_encode($array);

if($callback != ''){
    echo $callback."(".$validateJson.")";   
} else{
    echo $validateJson;
}
?>

注:接口如返回中文内容,请修改编码为UTF-8编码

以下为接口的返回示例:

{
  "username":"elvis",
  "sign":"6ab63590797e513d1b6c46b407413478",
  "msg":"Errormessage!",
  "fontSize":"40",
  "fontColor":"0xFFE900",
  "speed":"200",
  "filter":"on",
  "setting":"3",
  "alpha":"1",
  "filterAlpha":"1",
  "filterColor":"0x3914AF",
  "blurX":"2",
  "blurY":"2",
  "tweenTime":"1",
  "interval":"5",
  "lifeTime":"3",
  "strength":"4",
  "show":"on"
}

参数解释:

参数名 代表意义 参数可选 参数类型 是否必需项 默认值
username 用户名,可以是学员的id,也可以是任意定义的值,不可为空 String
sign 通过MD5加密算法计算得到32位小写的值 String
msg 跑马灯错误时提示信息 String
fontSize 跑马灯文字字体大小 Integer 30
fontColor 跑马灯文字字体颜色 包含三个 8 位 RGB 颜色成分的数字;例如,0x000000 为黑色 String 0x000000 黑色
speed 跑马灯文字移动指定像素所需时间 Integer 单位:(秒/10) 200
filter 是否描边 “on” :描边 “off”:不描边 String off
setting 跑马灯样式 1:自屏幕右方至左方一直滚动 2:屏幕内随机位置闪烁 3:自屏幕右方至左方一直滚动,渐隐渐现 4:上下15%的视频区域之间滚动 5:上下15%的视频区域随机闪现文字 6:样式 1 的增强型,加密效果更好,推荐使用 7:样式 2 的增强型,加密效果更好,推荐使用 Integer 1
alpha 跑马灯文本透明度 范围:0.1~1 Float 1
filterAlpha 跑马灯描边透明度 范围:0~1 Float 1
filterColor 跑马灯描边颜色 包含三个 8 位 RGB 颜色成分的数字;例如,0x000000 为黑色 String 0x000000 黑色
blurX 跑马灯描边水平模糊量 范围:0~255 Integer 2
blurY 跑马灯描边垂直模糊量 范围:0~255 Integer 2
interval 跑马灯文本隐藏间隔时间 Integer (单位:秒) 5
lifeTime 跑马灯文本显示时间 Integer (单位:秒) 3
tweenTime 跑马灯文本渐隐渐现时间 Integer (单位:秒) 1
strength 跑马灯描边强度 范围:0~255 Integer 4
show 是否显示跑马灯,默认显示 String off

参数详解

sign
sign的计算规则为:将以下参数的值拼凑起来的字符串做MD5计算,签名需要以下全部参数拼接,未设置值的也要参与。

  $str="vid=".$vid."&uid=".$uid."&username=".$username."&code=".$code."&t=".$t."&msg=".$msg."&fontSize=".$fontSize."&fontColor=".$fontColor."&speed=".$speed."&filter=".$filter."&setting=".$setting."&alpha=".$alpha."&filterAlpha=".$filterAlpha."&filterColor=".$filterColor."&blurX=".$blurX."&blurY=".$blurY."&interval=".$interval."&lifeTime=".$lifeTime."&tweenTime=".$tweenTime."&strength=".$strength."&show=".$show;
  $sign=md5($str);
  例如:当vid="vid",uid="uid",username="suki",code="abc",t="143020010115550947",msg="Errormessage!",fontSize="40",fontColor="0xFFE900",speed="200",filter="on",setting="3",alpha="1",filterAlpha="1",filterColor="0x3914AF",blurX="2",blurY="2",interval="5",lifeTime="3",tweenTime="1",strength="4",show="on"时,
  拼凑起来去MD5计算的字符串为
  vid=vid&uid=uid&username=suki&code=abc&status=1&t=143020010115550947&msg=Errormessage!&fontSize=40&fontColor=0xFFE900&speed=200&filter=on&setting=3&alpha=1&filterAlpha=1&filterColor=0x3914AF&blurX=2&blurY=2&interval=5&lifeTime=3&tweenTime=1&strength=4&show=on
  则sign为MD5计算后32位小写的值:8e0cdbf64c0ce98d0ef76e845f70418c
  • 播放器调用

当网页调用POLYV播放器播放视频时,js通过ajax方式去请求用户的接口,需要跨域请求,会带上vid、uid、code、t这3个参数(如,http(s)://www.mywebsite.com/validate.php?vid=vid&uid=uid&code=abc&t=143020010115550947)。

其中code为播放代码中的参数,值为自定义(如下所示,可以不在播放代码中添加此参数,则该参数的值默认为空);t为播放器产生的随机数。

示例代码:

<script src='https://player.polyv.net/resp/live-h5-player/latest/liveplayer.min.js'></script>
<div id='player'></div>
<script>
var player = polyvLivePlayer({
    wrap: '#player',
    width: 800,
    height: 533,
    uid: 'uid',
    vid: 'vid',
    code : 'myCodeValue'
});
</script>

跨域

  • 为了让PC端的Flash能够跨域请求用户接口,还需要用户在自己的网站域名根目录下增加crossdomain.xml文件。
  • H5播放器存在跨域问题,可以在php添加以下配置解决
  header("Access-Control-Allow-Origin: *");

请参考播放器跨域

tips

  • 移动web端全屏播放时,会导致跑马灯失效
以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

弹幕

功能介绍

POLYV播放器拥有弹幕功能,可以增加观看视频时的互动性

功能API

参数

参数名 类型 默认值 说明
danmuEnable boolean false 是否开启弹幕功能
showDanmu boolean true 弹幕状态,false时一开始关闭
banDanmuBtn boolean false 为true时不显示弹幕按钮

参数设置示例

var player = polyvLivePlayer({
  wrap: '#player',
  width: 800,
  height: 533,
  uid:'uid',
  vid:'vid',
  danmuEnable: true,
});

方法

方法名 参数 返回值 说明
j2s_addBarrageMessage string / 弹幕支持文字和图片,图片需要用[[...]]包含起来
setBarrageStatus boolean / 动态显示隐藏弹幕模块

方法调用示例

const str = 'ajskd[[http://www.mywebsite.com/1.jpg]]'
const danmuData = `[{"msg":"${str}","fontSize":24,"fontColor":"0xffffff","fontMode":"roll"}]`;
player.j2s_addBarrageMessage(danmuData);

player.setBarrageStatus(false);

方法详解

j2s_addBarrageMessage

参数名 取值 默认值 说明 是否必须项
msg / / 弹幕内容,图片需要用[[...]]包含起来
fontSize 12~ 30 字体大小
fontColor 16进制颜色值 0x000000 字体颜色
fontMode roll roll 出现方式
fontArea top/bottom / 出现区域
fontAreaPercent / 25% 出现区域百分比
以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

快速集成

功能介绍

保利威直播提供快速集成的代码,帮助你实现直播播放器的快速调用

快速集成代码

js demo

<div id="player"></div>
<script src="//player.polyv.net/resp/live-h5-player/latest/liveplayer.min.js"></script>
<script>
  var player = polyvLivePlayer({
    wrap: '#player',
    width: 800,
    height: 533,
    uid:'uid',
    vid:'vid'
  });
</script>

默认使用H5播放器,在ie及其他不支持的浏览器下自动切换flash

需要兼容ie10以下的播放器,可以使用下面代码

<script src='https://player.polyv.net/livescript/liveplayer.js'></script>
<div id='player'></div>
<script>
var player = polyvObject('#player').livePlayer({
    width:'600',
    height:'450',
    uid :'uid',
    vid : 'vid'
});
</script>

vue demo

<template>
  <div id="player"></div>
</template>
<script>
export default {
  data() {
    return {
      playerJs: 'https://player.polyv.net/resp/live-h5-player/latest/liveplayer.min.js',
      uid:'uid',
      vid:'vid'
    };
  },

  mounted(){
      this.loadPlayerScript(this.loadPlayer);
  },

  methods: {
    loadPlayerScript(callback) {
      if (!window.polyvLivePlayer) {
        const myScript = document.createElement('script');
        myScript.setAttribute('src', this.playerJs);
        myScript.onload = callback;
        document.body.appendChild(myScript);
      } else {
        callback();
      }
    },

    loadPlayer() {
      const polyvLivePlayer = window.polyvLivePlayer;
      this.player = polyvLivePlayer({
        wrap: '#player',
        width: 800,
        height: 533,
        uid: this.uid ,
        vid: this.vid ,
      });
    }
  },
  destroyed() {
    if (this.player) {
        this.player.destroy();
    }
  }
};
</script>

react demo

import React from 'react';

class Player extends React.Component {
  constructor(props) {
    super(props);
  }

  componentDidMount() {
    if(!window.polyvLivePlayer){
      this.loadScript('https://player.polyv.net/resp/live-h5-player/latest/liveplayer.min.js')
      .then(() =>{
        this.loadPlayer();
      });
    }
  }

  componentWillUnmount() {
    if(this.player){
      this.player.destroy();
    }
  }

  loadPlayer() {
    this.player = window.polyvLivePlayer({
      wrap: '.player',
      width: '100%',
      height: '100%',
      uid: 'uid',
      vid: 'vid',
    });
  }

  loadScript(src) {
    const headElement = document.head || document.getElementsByTagName('head')[0];
    const _importedScript = {};

    return new Promise((resolve, reject) => {
      if (src in _importedScript) {
        resolve();
        return;
      }
      const script = document.createElement('script');
      script.type = 'text/javascript';
      script.onerror = err => {
        headElement.removeChild(script);
        reject(new URIError(`The Script ${src} is no accessible.`));
      }
      script.onload = () => {
        _importedScript[src] = true;
        resolve();
      }
      headElement.appendChild(script);
      script.src = src;
    })
  }

  render() {
    return (
      <div className="wrap">
        <div className="player"></div>
      </div>
    )
  }
}

export default Player;

参数

参数 类型 默认值 说明
wrap string / HTMLElement - 页面上存在需要载入播放器的DOM元素或css选择器
width number / string 100% 播放器的宽度
height number / string auto 播放器的高度
uid string - 用户id,即账号信息中的userId
vid string - 频道id,即频道号
以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

多频道手动结束问卷

接口URL

http://api.polyv.net/live/v3/channel/questionnaire/end

接口说明

(接口调用有频率限制,详细请查看)

1、接口用于设置频道的简单详情信息
2、接口支持https

返回结果支持格式

JSON

请求方式

GET、POST

请求参数

参数名 必选 类型 说明
appId string 管理员的appId
timestamp long 13位当前时间戳
sign string 签名值
channelIds string 频道id,多个频道用","分隔

响应成功JSON示例:

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": {
        "result": true
    }
}

响应失败JSON示例:

未输入appId

{
    "code": 400,
    "status": "error",
    "message": "appId is required.",
    "data": ""
}

appId不正确

{
    "code": 400,
    "status": "error",
    "message": "application not found.",
    "data": ""
}

时间戳错误

{
    "code": 400,
    "status": "error",
    "message": "invalid timestamp.",
    "data": ""
}

签名错误

{
    "code": 403,
    "status": "error",
    "message": "invalid signature.",
    "data": ""
}

字段说明

参数名 说明
code 响应代码,成功为200,失败为400,签名错误为403,异常错误500
status 成功为success,失败为error
message 错误时为错误提示消息
data.result 处理结果, true成功,false失败

java请求示例

public static void test() {
        String url = "https://api.polyv.net/live/v3/channel/questionnaire/end";
        // 用户对应的appId和加密串
        String appId = "xxxxxxxxx";
        String appSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxx";
        String channelIds = "10001,1002";
        Map<String, String> params = new HashMap<>();
        params.put("channelIds", channelIds);
        PolyvTool.setLiveSign(params, appId, appSecret);
        // 调用Polyv的httpClient工具类发送请求
        String content = HttpClientUtil.getInstance().sendHttpPost(url, params);
        System.out.println(content);
    }

签名规则(PolyvTool.java文件代码查看)

https://dev.polyv.net/2020/liveproduct/l-api/rule/live-api-java-detail/

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

批量删除聊天记录

接口URL

https://api.polyv.net/live/v3/channel/chat/remove-contents

接口说明

(接口调用有频率限制,详细请查看)

1、根据聊天的id删除对应聊天记录
2、接口支持https协议
3、接口支持批量删除操作

返回结果支持格式

JSON

请求方式

POST

请求数限制

TRUE

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
channelId int 频道ID
ids string 聊天记录对应的id(多个id使用英文逗号隔开)
timestamp string 当前13位毫秒级时间戳,3分钟内有效
sign string 签名,32位大写MD5值

响应成功JSON示例:

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": "remove chat contents success"
}

响应失败JSON示例:

未输入appId

{
    "code": 400,
    "status": "error",
    "message": "appId is required.",
    "data": ""
}

appId不正确

{
    "code": 400,
    "status": "error",
    "message": "application not found.",
    "data": ""
}

时间戳错误

{
    "code": 400,
    "status": "error",
    "message": "invalid timestamp.",
    "data": ""
}

签名错误

{
    "code": 403,
    "status": "error",
    "message": "invalid signature.",
    "data": ""
}

频道号错误

{
    "code": 400,
    "status": "error",
    "message": "channel not found.",
    "data": ""
}

其他错误

{
    "code": 400,
    "status": "error",
    "message": "remove chat contents occur an error",
    "data": ""
}

字段说明

参数名 说明
code 请求状态响应码
status 请求状态
message 错误信息
data 请求失败时为空,请求成功为成功信息

java请求示例

public static void test() {
        String url = "https://api.polyv.net/live/v3/channel/chat/remove-contents";
        // 用户对应的appId和加密串
        String appId = "xxxxxxxxx";
        String appSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxx";
        int channelId = 10001;
        Map<String, String> params = new HashMap<>();
        params.put("channelId", channelId);
        params.put("ids", "12213,22334");
        PolyvTool.setLiveSign(params, appId, appSecret);
        // 调用Polyv的httpClient工具类发送请求
        String content = HttpClientUtil.getInstance().sendHttpPost(url, params);
        System.out.println(content);
    }

签名规则(PolyvTool.java文件代码查看)

https://dev.polyv.net/2020/liveproduct/l-api/rule/live-api-java-detail/

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

查询连麦详单

接口URL

https://api.polyv.net/live/v3/channel/mic/log/list-detail

接口说明

(接口调用有频率限制,详细请查看)

1、接口用于查询连麦详单
2、接口支持https
3、注意:该接口查询的数据并不是实时的,当日数据需在次日下午才能查询到,出数据时间在14:30 ~ 18:00之间

返回结果格式

JSON

请求方式

GET

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
timestamp long 当前13位毫秒级时间戳,3分钟内有效
sign string 签名,为32位大写的MD5值
channelId int 频道号
startDate string 开始日期, 日期格式:yyyy-MM-dd,如2020-10-01,时间范围不能超过30天
endDate string 结束日期, 日期格式:yyyy-MM-dd,如2020-10-01,时间范围不能超过30天
page int 当前页码,默认为1
pageSize int 每页大小,默认500条,最大5000条,超过5000条可以分多批拉取,每次page加1,直到返回列表contents为空为止

响应成功JSON示例:

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": {
        "page": 1,
        "pageSize": 500,
        "contents": [
            {
                "channelId": "xxxxxxx",
                "identity": "guest",
                "viewerId": "xxxxxxx",
                "nickname": "王老师",
                "joinTime": 1603596135000,
                "leaveTime": 1603596647000,
                "sessionId": "xxxxxxx"
            }
        ]
    }
}

响应失败JSON示例:

未输入appId

{
    "code": 400,
    "status": "error",
    "message": "appId is required.",
    "data": ""
}

appId不正确

{
    "code": 400,
    "status": "error",
    "message": "application not found.",
    "data": ""
}

时间戳错误

{
    "code": 400,
    "status": "error",
    "message": "invalid timestamp.",
    "data": ""
}

签名错误

{
    "code": 403,
    "status": "error",
    "message": "invalid signature.",
    "data": ""
}

字段说明

参数名 说明
code 响应代码,成功为200,失败为400,签名错误为403,异常错误500
status 成功为success,失败为error
data 响应结果
message 异常错误信息
channelId 频道号
sessionId 场次号
viewerId 观众ID
identity 身份,嘉宾:guest、学员:student
nickname 昵称
joinTime 进入 rtc 的时间, 13位毫秒时间戳
leaveTime 离开 rtc 的时间, 13位毫秒时间戳

Java请求示例

public void test() {
        String url = "https://api.polyv.net/live/v3/channel/mic/log/list-detail";
        // 用户对应的appId和加密串
        String appId = "xxxxxxxxx";
        String appSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxx";
        Map<String, String> params = new HashMap<>();
        params.put("channelId", String.valueOf(1234567));
        params.put("startDate", "2020-10-22");
        params.put("enddate", "2020-10-23");
        PolyvTool.setLiveSign(params, appId, appSecret);
        // 调用Polyv的httpClient工具类发送请求
        String content = HttpClientUtil.getInstance()
                .sendHttpGet(url + "?" + PolyvTool.mapJoinNotEncode(params));
        System.out.println(content);
    }

签名规则(PolyvTool.java文件代码查看)

https://dev.polyv.net/2020/liveproduct/l-api/rule/live-api-java-detail/

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

获取账号下回放视频

接口URL

https://api.polyv.net/live/v3/user/playback/list

接口说明

(接口调用有频率限制,详细请查看)

1、接口用于获取账号下回放列表和点播列表, 注意:不包括暂存列表
2、接口支持https

返回结果格式

JSON

请求方式

GET

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
timestamp long 当前13位毫秒级时间戳,3分钟内有效
sign string 签名,为32位大写的MD5值
page string 页码,默认为1
pageSize string 每页条数,默认为20,合法范围为1-1000
order string 排序规则,取值:timeDesc(按createdTime降序)、rankDesc(按rank降序)、time(按createdTime升序)、rank(按rank升序),默认是timeDesc
listType string playback:回放列表,vod:点播列表,默认是 playback

响应成功JSON示例:

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": {
        "pageSize": 100,
        "pageNumber": 1,
        "totalItems": 3,
        "contents": [
            {
                "videoId": "88c40acaa6",
                "videoPoolId": "a2dc4f2517fd872d6b2a4b1e470a91cb_a",
                "userId": "a2dc4f2517",
                "channelId": 1234567,
                "title": "保利威",
                "firstImage": "http://img.videocc.net/uimage/a/a2dc4f2517/b/a2dc4f2517fd872d6b2a4b1e470a91cb_0.jpg",
                "duration": "00:00:56",
                "myBr": "1",
                "qid": null,
                "seed": 0,
                "ordertime": 0,
                "createdTime": 1592040864000,
                "lastModified": 1592040864000,
                "rank": 2,
                "asDefault": "N",
                "url": "https://hls.videocc.net/source/a2dc4f2517/b/a2dc4f2517fd872d6b2a4b1e470a91cb_1.m3u8",
                "channelSessionId": "fo76et1ftb",
                "status": "Y",
                "fileId": "d2c55e369aad1fd5f732141cb4779f4a",
                "startTime": "20200609100810",
                "liveType": "alone",
                "errorCount": null,
                "mergeinfo": "[\"20200609100810,56,fo76et1ftb\"]",
                "watchUrl": "//live.polyv.cn/watch/1762629?vid=88c40acaa6"
            },
            {
                "videoId": "c70649db67",
                "videoPoolId": "a2dc4f25177fc4fcb389e871b2d5ee04_a",
                "userId": "a2dc4f2517",
                "channelId": 1810121,
                "title": "保利威",
                "firstImage": "http://img.videocc.net/uimage/a/a2dc4f2517/4/a2dc4f25177fc4fcb389e871b2d5ee04_0.jpg",
                "duration": "00:01:08",
                "myBr": "1",
                "qid": null,
                "seed": 0,
                "ordertime": 0,
                "createdTime": 1593417163000,
                "lastModified": 1593417163000,
                "rank": 1,
                "asDefault": "N",
                "url": "https://hls.videocc.net/source/a2dc4f2517/4/a2dc4f25177fc4fcb389e871b2d5ee04_1.m3u8",
                "channelSessionId": "fothpt2mpv",
                "status": "Y",
                "fileId": "5db4c890929c4aa71503e7ef2615c6c3",
                "startTime": "20200629153802",
                "liveType": "alone",
                "mergeinfo": null,
                "watchUrl": "//live.polyv.cn/watch/1810121?vid=c70649db67"
            }
        ],
        "startRow": 1,
        "firstPage": true,
        "lastPage": true,
        "prePageNumber": 1,
        "totalPages": 1,
        "endRow": 3,
        "nextPageNumber": 1,
        "limit": 3,
        "offset": 0
    }
}

响应失败JSON示例:

未输入appId

{
    "code": 400,
    "status": "error",
    "message": "appId is required.",
    "data": ""
}

appId不正确

{
    "code": 400,
    "status": "error",
    "message": "application not found.",
    "data": ""
}

时间戳错误

{
    "code": 400,
    "status": "error",
    "message": "invalid timestamp.",
    "data": ""
}

签名错误

{
    "code": 403,
    "status": "error",
    "message": "invalid signature.",
    "data": ""
}

pageSize范围错误,合法值为1-1000

{
    "code": 403,
    "status": "error",
    "message": "number range error",
    "data": ""
}

字段说明

参数名 说明
code 响应代码,成功为200,失败为400,签名错误为403,异常错误500
status 成功为success,失败为error
data 响应结果
message 异常错误信息
videoId 直播系统生成的id
videoPoolId 点播视频vid
userId 点播后台用户id
channelId 回放视频对应的直播频道id
title 视频标题
firstImage 视频首图
duration 视频长度
myBr 默认视频的播放清晰度,1为流畅,2为高清,3为超清
qid 访客信息收集id
seed 视频加密状态,1表示为加密状态,0为非加密
createdTime 添加为回放视频的日期
lastModified 视频最后修改日期
rank 排序值,值越大优先级越高
asDefault 是否为默认播放视频,值为Y/N
url 视频播放地址,注:如果视频为加密视频,则此地址无法访问
channelSessionId 用于PPT请求数据,与PPT直播的回放相关,普通直播回放值为null
mergeInfo 视频合并信息
startTime 直播开始时间
watchUrl 观看回放视频的地址
data.status 只返回状态为Y的视频
pageNumber 视频列表页数(默认以20条数据为1页)
totalItems 回放视频总个数
firstPage 是否为第一页,值为:true/false
lastPage 是否为最后一页,值为:true/false
nextPageNumber 下一页编号
prePageNumber 上一页编号
totalPages 总页数
startRow 当前页第一个视频在回放视频中的位置
endRow 当前页最后一个视频在回放视频中的位置
limit 当前页视频个数

Java请求示例

public void test() {
        String url = "https://api.polyv.net/live/v3/user/playback/list";
        // 用户对应的appId和加密串
        String appId = "xxxxxxxxx";
        String appSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxx";
        Map<String, String> params = new HashMap<>();
        params.put("order", "timeDesc");
        params.put("listType", "playback");
        PolyvTool.setLiveSign(params, appId, appSecret);
        // 调用Polyv的httpClient工具类发送请求
        String content = HttpClientUtil.getInstance()
                .sendHttpGet(url + "?" + PolyvTool.mapJoinNotEncode(params));
        System.out.println(content);
    }

签名规则(PolyvTool.java文件代码查看)

https://dev.polyv.net/2020/liveproduct/l-api/rule/live-api-java-detail/

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

获取全账号频道基础信息接口

接口URL

https://api.polyv.net/live/v3/channel/basic/list

接口说明

(接口调用有频率限制,详细请查看)

1、获取账号下所有的频道基础信息列表
2、接口支持https协议

返回结果支持格式

JSON

请求方式

GET

请求数限制

TRUE

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
timestamp long 当前13位毫秒级时间戳,3分钟内有效
sign string 签名,为32位的MD5值大写
categoryIds string 分类ID,多个id用","分隔
page int 查询页数,默认1
pageSize int 每页大小,默认20,最大20

响应成功JSON示例:

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": {
        "pageSize": 10,
        "pageNumber": 1,
        "totalItems": 5,
        "contents": [
            {
                "channelId": 1947328,
                "name": "阿里云",
                "publisher": "主持人",
                "startTime": 1604113200000,
                "pageView": 110,
                "likes": 1,
                "coverImg": "https://liveimages.videocc.net/assets/wimages/pc_images/logo.png",
                "splashImg": "https://liveimages.videocc.net/uploaded/images/2020/11/ftbm6uuzoa.jpg",
                "splashEnabled": "N",
                "desc": "",
                "maxViewer": -1,
                "watchStatus": "playback",
                "watchStatusText": "回放中",
                "onlineNum": 0,
                "bgImg": null,
                "videoList": [
                    {
                        "videoId": "63af1f1bff",
                        "videoPoolId": "cf7f07e096aa3c17fa480f0822b1a990_c"
                    }
                ],
                "categoryId": 341097
            },
            {
                "channelId": 1947327,
                "name": "华为云",
                "publisher": "主持人",
                "startTime": 0,
                "pageView": 6,
                "likes": 0,
                "coverImg": "https://liveimages.videocc.net/assets/wimages/pc_images/logo.png",
                "splashImg": null,
                "splashEnabled": "N",
                "desc": "",
                "maxViewer": -1,
                "watchStatus": "playback",
                "watchStatusText": "回放中",
                "onlineNum": 0,
                "bgImg": null,
                "videoList": [
                    {
                        "videoId": "052f4509f2",
                        "videoPoolId": "cf7f07e096152ef186b0ea9b247998cd_c"
                    }
                ],
                "categoryId": 341097
            },
            {
                "channelId": 1947326,
                "name": "ucloud",
                "publisher": "主持人",
                "startTime": 0,
                "pageView": 16,
                "likes": 0,
                "coverImg": "https://liveimages.videocc.net/assets/wimages/pc_images/logo.png",
                "splashImg": null,
                "splashEnabled": "N",
                "desc": "",
                "maxViewer": -1,
                "watchStatus": "end",
                "watchStatusText": "已结束",
                "onlineNum": 0,
                "bgImg": null,
                "videoList": [
                    {
                        "videoId": "1138f32f38",
                        "videoPoolId": "cf7f07e0965e6522206f6a8868dd39f0_c"
                    },
                    {
                        "videoId": "ac020d89cd",
                        "videoPoolId": "cf7f07e09621aa213e19929565a0d08f_c"
                    }
                ],
                "categoryId": 341097
            },
            {
                "channelId": 1947324,
                "name": "金山云",
                "publisher": "主持人",
                "startTime": 0,
                "pageView": 1,
                "likes": 0,
                "coverImg": "https://liveimages.videocc.net/assets/wimages/pc_images/logo.png",
                "splashImg": null,
                "splashEnabled": "N",
                "desc": "",
                "maxViewer": -1,
                "watchStatus": "end",
                "watchStatusText": "已结束",
                "onlineNum": 0,
                "bgImg": null,
                "videoList": [
                    {
                        "videoId": "941d2ebfb6",
                        "videoPoolId": "cf7f07e0961129e67a9d11c73685f3dc_c"
                    },
                    {
                        "videoId": "553b71d9f9",
                        "videoPoolId": "cf7f07e096795233489f311d9e0d64f7_c"
                    }
                ],
                "categoryId": 341097
            },
            {
                "channelId": 1947220,
                "name": "网宿",
                "publisher": "主持人",
                "startTime": 0,
                "pageView": 12,
                "likes": 0,
                "coverImg": "https://liveimages.videocc.net/assets/wimages/pc_images/logo.png",
                "splashImg": null,
                "splashEnabled": "N",
                "desc": "",
                "maxViewer": -1,
                "watchStatus": "playback",
                "watchStatusText": "回放中",
                "onlineNum": 0,
                "bgImg": null,
                "videoList": [
                    {
                        "videoId": "da8de8de37",
                        "videoPoolId": "cf7f07e0961c4ba7e6279ea1add9fc37_c"
                    },
                    {
                        "videoId": "1e9c53a8cd",
                        "videoPoolId": "cf7f07e096b83531e76910375f2b62ec_c"
                    }
                ],
                "categoryId": 341097
            }
        ],
        "startRow": 1,
        "firstPage": true,
        "lastPage": true,
        "prePageNumber": 1,
        "limit": 5,
        "endRow": 5,
        "nextPageNumber": 1,
        "totalPages": 1,
        "offset": 0
    }
}

响应失败JSON示例:

未输入appId

{
    "code": 400,
    "status": "error",
    "message": "appId is required.",
    "data": ""
}

appId不正确

{
    "code": 400,
    "status": "error",
    "message": "application not found.",
    "data": ""
}

时间戳错误

{
    "code": 400,
    "status": "error",
    "message": "invalid timestamp.",
    "data": ""
}

签名错误

{
    "code": 403,
    "status": "error",
    "message": "invalid signature.",
    "data": ""
}

字段说明

参数名 类型 说明
code int 响应代码,成功为200,失败为400,签名错误为401,异常错误500
status string 成功为success,失败为error
message string 错误时为错误提示消息
data Page 响应结果集

Page对象

参数名 类型 说明
pageNumber int 列表页数
totalItems int 总数
contents List 频道的详细信息列表,无数据时为空,参考Detail对象

Detail对象

参数名 类型 说明
channelId int 频道号
name string 频道名称
publisher string 主持人名称
startTime long 直播开始时间,关闭时为0,开启时为13位毫秒级时间戳
pageView int 页面累计观看数
likes int 观看页点赞数
coverImg string 频道图标url
splashImg string 频道引导图url
splashEnabled string 引导页开关,取值为: Y/N
desc string 直播介绍
maxViewer int 最大在线观看人数
watchStatus string 频道的观看页状态,取值为: 频道状态,取值:live(直播中)、end(直播结束)、playback(回放中)、waiting(等待直播)
watchStatusDesc string 观看页状态描述,直播中,回放中,已结束,未开始
onlineNum int 在线人数
bgImg string 暖场图片URL
videoList List 回放视频列表,当有多个时按添加时间倒叙排列;参考Video对象
categoryId int 分类ID

Video对象

参数名 类型 说明
videoId string 直播系统生成的id (视频库中的回放视频)
videoPoolId string 点播视频vid (视频库中的回放视频)

Java请求示例

public static void testGetUserRealTimeConcurrence() {
        String url = "https://api.polyv.net/live/v3/channel/basic/list";
        // 用户对应的appId和加密串
        String appId = "xxxxxxxxx";
        String appSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxx";
        Map<String, String> params = new HashMap<>();
        PolyvTool.setLiveSign(params, appId, appSecret);
        // 调用Polyv的httpClient工具类发送请求
        HttpClientUtil.getInstance()
                .sendHttpGet(url + "?" + PolyvTool.mapJoinNotEncode(params));
        System.out.println(content);
    }

签名规则(PolyvTool.java文件代码查看)

https://dev.polyv.net/2020/liveproduct/l-api/rule/live-api-java-detail/

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

编辑频道商品库商品信息

接口URL

http://api.polyv.net/live/v3/channel/product/update

接口说明

(接口调用有频率限制,详细请查看)

1、编辑频道商品库商品信息
2、接口支持https

返回结果支持格式

JSON

请求方式

POST

请求数限制

TRUE

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
timestamp long 当前13位毫秒级时间戳,3分钟内有效
sign string 签名,为32位大写的MD5值
channelId int 频道号

请求体参数

参数名 必选 类型 说明
productId int 商品库商品productId
name string 商品名称,必填,长度范围:1-60
price long 商品价格,保留两位小数,如:0.01
cover string 商品封面链接,必填,长度范围:1-500
link string 通用链接(linkType=10),商品链接,必填,长度1-500
多平台链接(linkType=11),非必填
status int 商品上下架状态
1:上架状态
2:下架状态
realPrice long 商品实际价格,保留两位小数,如:0.01
linkType int 商品链接类型
10:通用链接
11:多平台链接
pcLink string 多平台链接(linkType=11),pc端跳转链接,必填,长度1-500
通用链接(linkType=10),非必填
mobileLink string 多平台链接(linkType=11),pc端跳转链接,长度1-500
wxMiniprogramLink string 多平台链接(linkType=11),pc端跳转链接,长度1-500
wxMiniprogramOriginalId string 多平台链接(linkType=11),pc端跳转链接,长度1-500
mobileAppLink string 多平台链接(linkType=11),pc端跳转链接,长度1-500
params string 自定义参数,类型json对象,需要转为string

请求体参数示例

{
    "productId": 1,
    "name": "king d",
    "price": 100.01,
    "cover": "//liveimages.videocc.net/uploadimage/20200827/chat_img_1779741_15985125681801.jpeg?x-oss-process=image/crop,x_95,y_0,w_235,h_235",
    "link": "",
    "status": 1,
    "realPrice": 19.02,
    "linkType": 11,
    "pcLink": "https://www.msuno.cn",
    "mobileLink": "",
    "wxMiniprogramLink": "",
    "wxMiniprogramOriginalId": "",
    "mobileAppLink": "",
    "params": "{\"cc\": 11}"
}

响应成功JSON示例:

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": "SUCCESS"
}

响应失败JSON示例:

未输入appId

{
    "code": 400,
    "status": "error",
    "message": "appId is required.",
    "data": ""
}

appId不正确

{
    "code": 400,
    "status": "error",
    "message": "application not found.",
    "data": ""
}

时间戳错误

{
    "code": 400,
    "status": "error",
    "message": "invalid timestamp.",
    "data": ""
}

签名错误

{
    "code": 403,
    "status": "error",
    "message": "invalid signature.",
    "data": ""
}

非法频道号

{
    "code": 403,
    "status": "error",
    "message": "illegal channel id: xxxxxx",
    "data": ""
}

必填参数为空

{
    "code": 400,
    "status": "error",
    "message": "param should not be empty: pcLink",
    "data": ""
}

字段说明

参数名 类型 说明
code int 响应代码,成功为200,失败为400,签名错误为401,异常错误500
status string 成功为success,失败为error
message string 错误时为错误提示消息
data string 暂无作用

Java请求示例

public static void main(String[] args) {
        String url = "https://api.polyv.net/live/v3/channel/product/update";
        // 用户对应的appId和加密串
        String appId = "xxxxxxxxx";
        String appSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxx";
        Map<String, String> params = new HashMap<>();
        params.put("channelId", "0000000");
        PolyvTool.setLiveSign(params, appId, appSecret);
        String body = "{\"productId\":1,\"name\":\"king==d\",\"price\":100.01,\"cover\":\"//liveimages.videocc" +
                ".net/uploadimage/20200827/chat_img_1779741_15985125681801.jpeg?x-oss-process=image/crop,x_95,y_0," +
                "w_235,h_235\",\"link\":\"\",\"status\":1,\"realPrice\":19.02,\"linkType\":11," +
                "\"pcLink\":\"https://www.msuno.cn\",\"mobileLink\":\"\",\"wxMiniprogramLink\":\"\"," +
                "\"wxMiniprogramOriginalId\":\"\",\"mobileAppLink\":\"\",\"params\":\"{\\\"cc\\\":11}\"}";
        // 调用Polyv的httpClient工具类发送请求
        String content = HttpClientUtil.getInstance()
                .sendHttpPostJson(url + "?" + PolyvTool.mapJoinNotEncode(params), body, null);
        System.out.println(content);
    }

签名规则(PolyvTool.java文件代码查看)

https://dev.polyv.net/2020/liveproduct/l-api/rule/live-api-java-detail/

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

添加频道商品库商品信息接口

接口URL

http://api.polyv.net/live/v3/channel/product/add

接口说明

(接口调用有频率限制,详细请查看)

1、添加频道商品库商品
2、接口支持https

返回结果支持格式

JSON

请求方式

POST

请求数限制

TRUE

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
timestamp long 当前13位毫秒级时间戳,3分钟内有效
sign string 签名,为32位大写的MD5值
channelId int 频道号

请求体参数

参数名 必选 类型 说明
name string 商品名称,必填,长度范围:1-60
price long 商品价格,保留两位小数,如:0.01
cover string 商品封面链接,必填,长度范围:1-500
link string 通用链接(linkType=10),商品链接,必填,长度1-500
多平台链接(linkType=11),非必填
status int 商品上下架状态
1:上架状态
2:下架状态
realPrice long 商品实际价格,保留两位小数,如:0.01
linkType int 商品链接类型
10:通用链接
11:多平台链接
pcLink string 多平台链接(linkType=11),pc端跳转链接,必填,长度1-500
通用链接(linkType=10),非必填
mobileLink string 多平台链接(linkType=11),pc端跳转链接,长度1-500
wxMiniprogramLink string 多平台链接(linkType=11),pc端跳转链接,长度1-500
wxMiniprogramOriginalId string 多平台链接(linkType=11),pc端跳转链接,长度1-500
mobileAppLink string 多平台链接(linkType=11),pc端跳转链接,长度1-500
params string 自定义参数,类型json对象,需要转为string

请求体参数示例

{
    "name": "king d",
    "price": 100.01,
    "cover": "//liveimages.videocc.net/uploadimage/20200827/chat_img_1779741_15985125681801.jpeg?x-oss-process=image/crop,x_95,y_0,w_235,h_235",
    "link": "",
    "status": 1,
    "realPrice": 19.02,
    "linkType": 11,
    "pcLink": "https://www.msuno.cn",
    "mobileLink": "",
    "wxMiniprogramLink": "",
    "wxMiniprogramOriginalId": "",
    "mobileAppLink": "",
    "params": "{\"cc\": 11}"
}

响应成功JSON示例:

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": {
        "productId": 6296,
        "userId": "ee7fe7fbda",
        "channelId": 1779741,
        "name": "king der",
        "price": null,
        "cover": "//liveimages.videocc.net/uploadimage/20200827/chat_img_1779741_15985125681801.jpeg?x-oss-process=image/crop,x_95,y_0,w_235,h_235",
        "link": "",
        "status": 1,
        "createdTime": 1599616864000,
        "lastModified": 1599616864000,
        "rank": 19,
        "realPrice": 19.02,
        "type": "live",
        "linkType": 11,
        "pcLink": "https://www.msuno.cn",
        "mobileLink": "",
        "wxMiniprogramLink": "",
        "wxMiniprogramOriginalId": "",
        "mobileAppLink": "",
        "params": "{\"cc\": 11}"
    }
}

响应失败JSON示例:

未输入appId

{
    "code": 400,
    "status": "error",
    "message": "appId is required.",
    "data": ""
}

appId不正确

{
    "code": 400,
    "status": "error",
    "message": "application not found.",
    "data": ""
}

时间戳错误

{
    "code": 400,
    "status": "error",
    "message": "invalid timestamp.",
    "data": ""
}

签名错误

{
    "code": 403,
    "status": "error",
    "message": "invalid signature.",
    "data": ""
}

非法频道号

{
    "code": 403,
    "status": "error",
    "message": "illegal channel id: xxxxxx",
    "data": ""
}

必填参数为空

{
    "code": 400,
    "status": "error",
    "message": "param should not be empty: pcLink",
    "data": ""
}

字段说明

参数名 类型 说明
code int 响应代码,成功为200,失败为400,签名错误为401,异常错误500
status string 成功为success,失败为error
message string 错误时为错误提示消息
data object 商品信息
productId int 商品productId
userId string 用户userId
channelId int 频道号
name string 商品名称
price long 商品价格,保留两位小数,如:0.01
cover string 商品封面链接
link string 商品通用类型商品链接
status int 商品上下架状态
1:上架状态
2:下架状态
createdTime long 创建商品时间,毫秒级时间戳
lastModified long 更新商品时间,毫秒级时间戳
rank int 商品排序号
realPrice long 商品实际价格,保留两位小数,如:0.01
type string 平台标志,默认live,其他无效
linkType int 商品链接类型
10:通用链接
11:多平台链接
pcLink string 多平台链接,pc端跳转链接
mobileLink string 多平台链接,移动web端跳转链接
wxMiniprogramLink string 多平台链接,小程序端跳转链接
wxMiniprogramOriginalId string 多平台链接,小程序端Id
mobileAppLink string 多平台链接,移动App端跳转链接
params string 自定义参数,类型json对象,需要转为string

Java请求示例

public static void main(String[] args) {
        String url = "https://api.polyv.net/live/v3/channel/product/add";
        // 用户对应的appId和加密串
        String appId = "xxxxxxxxx";
        String appSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxx";
        Map<String, String> params = new HashMap<>();
        params.put("channelId", "0000000");
        PolyvTool.setLiveSign(params, appId, appSecret);
        String body = "{\"name\":\"king==d\",\"price\":100.01,\"cover\":\"//liveimages.videocc" +
                ".net/uploadimage/20200827/chat_img_1779741_15985125681801.jpeg?x-oss-process=image/crop,x_95,y_0," +
                "w_235,h_235\",\"link\":\"\",\"status\":1,\"realPrice\":19.02,\"linkType\":11," +
                "\"pcLink\":\"https://www.msuno.cn\",\"mobileLink\":\"\",\"wxMiniprogramLink\":\"\"," +
                "\"wxMiniprogramOriginalId\":\"\",\"mobileAppLink\":\"\",\"params\":\"{\\\"cc\\\":11}\"}";
        // 调用Polyv的httpClient工具类发送请求
        String content = HttpClientUtil.getInstance()
                .sendHttpPostJson(url + "?" + PolyvTool.mapJoinNotEncode(params), body, null);
        System.out.println(content);
    }

签名规则(PolyvTool.java文件代码查看)

https://dev.polyv.net/2020/liveproduct/l-api/rule/live-api-java-detail/

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...