课程视频流URL

获取课程视频流URL(web端)
https://api.bilibili.com/pugv/player/web/playurl
请求方式:GET
认证方式:Cookie(SESSDATA)
注:
- 本接口为课程视频专用,故与普通视频不互通
- 大部分使用方法及视频的取流方法继承视频流url文档
url参数:
| 参数名 |
类型 |
内容 |
必要性 |
备注 |
| avid |
num |
课程avid |
必要 |
|
| ep_id |
num |
课程epid |
必要 |
|
| cid |
num |
视频cid |
必要 |
|
| qn |
num |
视频清晰度选择 |
非必要 |
参考qn定义 |
| fnver |
num |
视频流版本 |
非必要 |
参考fnver定义 |
| fnval |
num |
视频流类型 |
非必要 |
参考fnval定义 |
| fourk |
num |
是否允许4K视频 |
非必要 |
默认为0 画质最高1080P:0 画质最高4K:1 |
json回复:
根对象:
| 字段 |
类型 |
内容 |
备注 |
| code |
num |
返回值 |
0:成功 -400:请求错误 -404:无视频 -403:权限不足(未购买) |
| message |
str |
错误信息 |
默认为success |
| data |
obj |
数据本体 |
|
data对象:
| 字段 |
类型 |
内容 |
备注 |
| accept_format |
str |
视频支持的分辨率的格式 |
|
| code |
num |
0 |
|
| durl |
array |
视频分段 |
|
| seek_param |
str |
start |
|
| no_rexcode |
num |
0 |
|
| format |
str |
视频格式 |
|
| fnval |
num |
0 |
|
| video_project |
bool |
true |
|
| fnver |
num |
0 |
|
| message |
str |
空 |
|
| type |
str |
视频格式 |
|
| accept_quality |
array |
视频支持的分辨率列表 |
|
| quality |
num |
视频分辨率代码 |
值含义见上表 |
| timelength |
num |
视频长度 |
单位为毫秒 不同分辨率可能有略微差异 |
| result |
str |
suee |
作用尚不明确 |
| seek_type |
str |
offset |
作用尚不明确 |
| has_paid |
bool |
false |
作用尚不明确 |
| supportFormats |
array |
视频分辨率详细列表 |
|
| from |
str |
local |
作用尚不明确 |
| video_codecid |
num |
??? |
作用尚不明确 |
| accept_description |
array |
视频支持的分辨率列表 |
|
| status |
num |
0 |
作用尚不明确 |
data中的durl数组:
| 项 |
类型 |
内容 |
备注 |
| 0 |
obj |
视频分段1信息 |
|
| n |
obj |
视频分段(n+1)信息 |
|
| …… |
obj |
…… |
|
durl数组中的对象:
| 字段 |
类型 |
内容 |
备注 |
| size |
num |
视频大小 |
单位为Byte |
| ahead |
str |
空 |
作用尚不明确 |
| length |
num |
视频长度 |
单位为毫秒 |
| vhead |
str |
空 |
作用尚不明确 |
| backup_url |
array |
备用视频流 |
|
| url |
str |
视频流url |
链接有效时间为120min |
| order |
num |
视频分段序号 |
某些视频会分为多个片段 |
durl数组中的对象中的backup_url数组:
| 项 |
类型 |
内容 |
备注 |
| 0 |
str |
备用视频流url |
有效时间为120min |
data中的supportFormats数组:
| 项 |
类型 |
内容 |
备注 |
| 0 |
obj |
分辨率详细信息1 |
|
| n |
obj |
分辨率详细信息(n+1) |
|
| …… |
obj |
…… |
…… |
supportFormats数组中的对象:
| 字段 |
类型 |
内容 |
备注 |
| format |
str |
分辨率名称 |
|
| description |
atr |
分辨率备注 |
|
| quality |
num |
分辨率代码 |
|
data中的accept_description数组:
| 项 |
类型 |
内容 |
备注 |
| 0 |
str |
分辨率名称1 |
|
| n |
str |
分辨率名称(n+1) |
|
| …… |
str |
…… |
…… |
示例:
获取课程ep790(cid=132105993,avid=76973173)的视频流url,清晰度为1080P60
curl -G 'https://api.bilibili.com/pugv/player/web/playurl' \
--data-urlencode 'ep_id=790' \
--data-urlencode 'avid=76973173' \
--data-urlencode 'cid=132105993' \
--data-urlencode 'qn=116' \
-b 'SESSDATA=xxx'
查看响应示例:
```json
{
"code": 0,
"data": {
"accept_format": "flv_p60,flv720_p60,flv,flv720,flv480,flv360",
"code": 0,
"durl": [
{
"size": 1105854161,
"ahead": "",
"length": 2222204,
"vhead": "",
"backup_url": [
"https://upos-sz-mirrorks3c.bilivideo.com/upgcxcode/93/59/132105993/132105993_da2-1-116.flv?e=ig8euxZM2rNcNbNghzTBhwdlhbNz7bUVhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1591596728&gen=playurl&os=ks3cbv&oi=606633803&trid=76bea9a9e56f4cb89a9aff2f8213c9acu&platform=pc&upsig=b271bf493bff32ffe62969582c8d18b4&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=0&orderid=1,2&logo=40000000"
],
"url": "https://upos-sz-mirrorks3.bilivideo.com/upgcxcode/93/59/132105993/132105993_da2-1-116.flv?e=ig8euxZM2rNcNbNghzTBhwdlhbNz7bUVhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1591596728&gen=playurl&os=ks3bv&oi=606633803&trid=76bea9a9e56f4cb89a9aff2f8213c9acu&platform=pc&upsig=6a8ae3711bd0bb2a484ec2427d659b14&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=0&orderid=0,2&logo=80000000",
"order": 1,
"md5": ""
}
],
"seek_param": "start",
"no_rexcode": 0,
"format": "flv_p60",
"fnval": 0,
"video_project": true,
"fnver": 0,
"message": "",
"type": "FLV",
"accept_quality": [
116,
74,
80,
64,
32,
16
],
"quality": 116,
"timelength": 2222204,
"result": "suee",
"seek_type": "offset",
"has_paid": false,
"supportFormats": [
{
"format": "flv_p60",
"description": "高清 1080P60",
"quality": 116
},
{
"format": "flv720_p60",
"description": "高清 720P60",
"quality": 74
},
{
"format": "flv",
"description": "高清 1080P",
"quality": 80
},
{
"format": "flv720",
"description": "高清 720P",
"quality": 64
},
{
"format": "flv480",
"description": "清晰 480P",
"quality": 32
},
{
"format": "flv360",
"description": "流畅 360P",
"quality": 16
}
],
"from": "local",
"video_codecid": 7,
"accept_description": [
"高清 1080P60",
"高清 720P60",
"高清 1080P",
"高清 720P",
"清晰 480P",
"流畅 360P"
],
"status": 0
},
"message": "success"
}
```