获取课程视频流 URL-哔哩哔哩课程 API

  • 2020 年 09 月 03 日
  • 214
  • 758 字
  • 暂无评论

课程视频流 URL

获取课程视频流 URL(web 端)

http://api.bilibili.com/pugv/player/web/playurl

请求方式:GET

认证方式:Cookie(SESSDATA)

注:本接口为课程视频专用,故与普通视频不互通

关于视频流会员鉴权:

  • 获取 720P 及以上清晰度视频时需要登录(Cookie)
  • 获取高帧率(1080P60)/ 高码率(1080P+)视频时需要有大会员的账号登录(Cookie)
  • 获取正式课程视频(非试看)时需要有已经购买的账号登录(Cookie)

获取的 url 有效时间为 120min,超时失效需要重新获取

部分视频会有分段,需要特别注意

url 参数:

参数名类型内容必要性备注
avidnum课程 avID必要
ep_idnum课程 epID必要
cidnum视频 CID必要
qnnum视频清晰度选择非必要未登录默认 32(480P) 登录默认 64(720P) 值含义见下表
fourknum是否允许 4K 视频非必要默认为 0 画质最高 1080P:0 画质最高 4K:1

分辨率代码:

含义
16360P 流畅
32480P 清晰
64720P 高清(登录)
74720P60 高清(大会员)
801080P 高清(登录)
1121080P+ 高清(大会员)
1161080P60 高清(大会员)
1204K 超清(大会员)

json 回复:

根对象:

字段类型内容备注
codenum返回值0:成功 -400:请求错误 -404:无视频 -403:权限不足(未购买)
messagestr错误信息默认为 success
dataobj数据本体

data 对象:

字段类型内容备注
accept_formatstr视频支持的分辨率的格式
codenum0
durlarray视频分段
seek_paramstrstart
no_rexcodenum0
formatstr视频格式
fnvalnum0
video_projectbooltrue
fnvernum0
messagestr
typestr视频格式
accept_qualityarray视频支持的分辨率列表
qualitynum视频分辨率代码值含义见上表
timelengthnum视频长度单位为毫秒 不同分辨率可能有略微差异
resultstrsuee作用尚不明确
seek_typestroffset作用尚不明确
has_paidboolfalse作用尚不明确
supportFormatsarray视频分辨率详细列表
fromstrlocal作用尚不明确
video_codecidnum???作用尚不明确
accept_descriptionarray视频支持的分辨率列表
statusnum0作用尚不明确

data 中的 durl 数组:

类型内容备注
0obj视频分段 1 信息
nobj视频分段 (n+1) 信息
……obj……

durl 数组中的对象:

字段类型内容备注
sizenum视频大小单位为 Byte
aheadstr作用尚不明确
lengthnum视频长度单位为毫秒
vheadstr作用尚不明确
backup_urlarray备用视频流
urlstr视频流 url链接有效时间为 120min
ordernum视频分段序号某些视频会分为多个片段

durl 数组中的对象中的 backup_url 数组:

类型内容备注
0str备用视频流 url有效时间为 120min

data 中的 supportFormats 数组:

类型内容备注
0obj分辨率详细信息 1
nobj分辨率详细信息 (n+1)
……obj…………

supportFormats 数组中的对象:

字段类型内容备注
formatstr分辨率名称
descriptionatr分辨率备注
qualitynum分辨率代码

data 中的 accept_description 数组:

类型内容备注
0str分辨率名称 1
nstr分辨率名称 (n+1)
……str…………

示例:

获取课程 ep790(CID=132105993,avID=76973173)的视频流 url,清晰度为 1080P60

curl -G 'http://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'

响应示例

{
    "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"
}

视频的获取

data.durl.[1-n].urldata.durl.[1-n].backup_url.[0] 中的内容作为 url 进行 GET 操作,如果有多个视频,需要手动合并处理

需要验证请求 referer.bilibili.com 域名下(防盗链),且 user-agent 不为空

referer 或 user-agent 错误的情况会返回 403 Forbidden 故无法获取

以上述视频 url 为例:

wget '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'\
-e 'https://www.bilibili.com'\
-O 'Download_video.flv'

响应正文将返回一个 flv 文件。

原文地址:https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/cheese/videostream_url.md


版权属于:Aini99

本文链接:https://bv-av.cn/read/cv33

本站部分内容转载于互联网,目的是为了传达信息。如果有内容侵犯了你的版权,请联系 QQ:1144560054。我们会在审查后第一时间进行修改。


—— 暂无评论 ——

OωO