实现步骤
仅实现视频认证,视频跑马灯不在考虑范围,请自行阅读官方文档:保利威官方文档。
一、管理后台设置
-  登录云点播管理后台,点击 【设置】 → 【视频设置】,进入视频设置页面。 
-  在授权播放和防录屏跑马灯接口设置栏中,填写认证接口路由。 
-  以 http://127.0.0.1:5000/video/verfy/示例:
  
二、业务方服务端实现
-  从官网直接拷这段代码,vid是上传的视频的id,刷新网页就会将这些数据发到咱们自己后端的认证接口。 <script src='https://player.polyv.net/script/player.js'></script> <div id='player'></div> <script> var player = polyvPlayer({ wrap: '#player', width: 800, height: 533, vid: '88083abbf5bcf1356e05d39666be527a_8', code: 'myCodeValue' // 用户可自定义参数值,也可以不设置此参数,那么在请求接口时该参数值为空。参数值为中文时需要做base64URLSafe。 }); </script>@app.route('/video/verfy/') def auth(): query_params = request.args t = query_params.get('t') vid = query_params.get('vid') code = query_params.get('code') callback = query_params.get('callback')
-  返回数据 { "status":1, // status为1则认证通过,为0则认证不通过 "username":"elvis", //username为你的业务的用户,可以随便写一个 "sign":"2c2bfb00314da7d768d50a7d1e93bd9f" //认证值 }
-  sign的生成 sign的计算规则为:拼接vid、secretkey、username、code、status、t参数做MD5计算: sign = str(md5(f"vid={vid}&secretkey={secretkey}&username=general_zy&code={code}&status={1}&t={t}".encode( 'utf-8')).hexdigest())
-  Flash播放器的跨域配置 
 配置方式为:添加crossdomain.xml文件到播放域名的根目录下。<?xml version="1.0" encoding="UTF-8"?> <cross-domain-policy> <allow-access-from domain="*"/> <allow-http-request-headers-from domain="*" headers="*" secure="false"/> </cross-domain-policy>只需要把这段内容返回就行: @app.route('/crossdomain.xml&') def crossdomain(): return render_template('crossdomain.xml')
-  callback的用途 
 以上操作之后,视频并不能播放,而callback参数也一直没有使用:
 加上callback参数:res = { 'status': 1, 'username': 'general_zy', 'sign': sign } if callback: data = f'{callback}({dumps(res)})' return data else: return jsonify(res)
三、官网给出的详细返回数据
{
  "status":1,
  "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"
}
四、接口参数说明
| 参数名 | 类型 | 必填 | 默认值 | 说明 | 
|---|---|---|---|---|
| status | Integer | 是 | / | 是否允许播放:1 允许 2 禁止 | 
| username | String | 是 | / | 观众名称,也会用于跑马灯显示的文字内容。如果是中文需要做URLEncode | 
| sign | String | 是 | / | 接口签名,用于校验返回内容是否被篡改 | 
| show | String | 是 | off | 当参数值为“on”时表示显示跑马灯,默认不显示 | 
| setting | Integer | 是 | 1 | 跑马灯滚动的样式:1 从右到左滚动 2 随机位置闪烁 3 从右到左闪烁滚动 | 
| speed | Integer | 是 | 200 | 跑马灯文字从右侧移至左侧所需时间,单位:1/10秒 | 
| lifeTime | Integer | 是 | 3 | 跑马灯文字显示时间,单位:秒 | 
| interval | Integer | 是 | 5 | 跑马灯文字隐藏间隔时间,单位:秒 | 
| tweenTime | Integer | 是 | 1 | 跑马灯文字渐隐渐现时间,单位:秒 | 
| fontSize | Integer | 是 | 30 | 跑马灯文字的字体大小 | 
| fontColor | String | 是 | 0x000000 | 跑马灯文字颜色,使用十六进制颜色值表示,如0xFF0000,默认为黑色 | 
| alpha | Float | 是 | 1 | 跑马灯文字透明度,取值范围0.01~1,参数值不能小于0.01 | 
| filter | String | 是 | off | 跑马灯文字是否描边,on 描边 off 不描边 | 
| filterAlpha | Float | 是 | 1 | 文字描边透明度,取值范围0~1 | 
| filterColor | String | 是 | 0x000000 | 文字描边颜色,使用十六进制颜色值表示,如0xFF0000,默认为黑色 | 
| strength | Integer | 是 | 4 | 描边强度,取值范围0~255 | 
| blurX | Integer | 是 | 2 | 描边水平模糊量,取值范围0~255 | 
| blurY | Integer | 是 | 2 | 描边垂直模糊量,取值范围0~255 | 
| msg | String | 是 | / | 自定义错误提示信息 | 










