bilibili API 合集 - 目录
视频
注意
本文中的“视频”指的是用户投稿的视频,与番组(番剧,电影,纪录片等)不同
获取视频信息、视频列表
https://api.bilibili.com/x/web-interface/view?bvid={bvid}
请求方式:GET
返回类型:json
请求参数 | 说明 |
---|---|
bvid | BV 号 |
返回参数 | 说明 |
---|---|
code | 状态码,0 为成功,非 0 为失败 |
pic | 视频封面地址 |
title | 视频标题 |
pubtime | 投稿日期 |
desc | 视频简介 |
owner | 用户信息 |
stat | 视频播放数、点赞数、投币数、收藏数等数据 |
cid | cid |
duration | 视频时长 |
page | 视频列表 (单个视频或分 P 视频) |
episodes | 视频列表 (合集视频) |
返回 json 示例 (精简):
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"bvid": "...",
"aid": ...,
"pic": "...",
"title": "...",
"pubdate": 1650642905,
"ctime": 1650642905,
"desc": "...",
"duration": 442,
"owner": {
"mid": ...,
"name": "...",
"face": "..."
},
"stat": {
"aid": 468416429,
"view": 496053,
"danmaku": 3618,
"reply": 1739,
"favorite": 8033,
"coin": 54896,
"share": 1903,
"now_rank": 0,
"his_rank": 97,
"like": 76197,
"dislike": 0,
"evaluation": "",
"argue_msg": ""
},
"cid": 582615009,
"pages": [
{
"cid": 582615009,
"page": 1,
"from": "vupload",
"part": "final",
"duration": 442,
"vid": "",
"weblink": "",
"dimension": {
"width": 1920,
"height": 1080,
"rotate": 0
},
"first_frame": "..."
}
]
}
}
获取下载地址
https://api.bilibili.com/x/player/playurl?bvid={bvid}&cid={cid}&qn=0&fnver=0&fnval=4048&fourk=1
请求方式:GET
返回类型:json
请求参数 | 说明 |
---|---|
bvid | BV 号 |
cid | cid |
返回参数 | 说明 |
---|---|
accept_description | 清晰度 |
accept_quality | 清晰度 id |
video | 视频下载地址,id 为清晰度id,每种清晰度下面都有3个元素,分别是 AVC/H.264,HEVC/H.265,AV1 编码的下载地址,另外 baseUrl,base_url,backupUrl,backup_url 这些地址都是一样的,并无区别 |
audio | 音频下载地址,id 为清晰度 id 加上 30200 |
清晰度
id | 清晰度 |
---|---|
16 | 流畅 360P |
32 | 清晰 480P |
64 | 高清 720P |
80 | 高清 1080P |
112 | 高清 1080P+ |
116 | 高清 1080P60 |
120 | 超清 4K |
125 | 真彩 HDR |
127 | 超高清 8K |
注意
- 此接口默认最高能获取到 1080P 的清晰度,对于更高清晰度的视频,请求头中带上大会员 Cookie 中的 SESSDATA 字段即可下载
- 下载的视频和音频是分开的,需使用 ffmpeg 合成
- 下载视频和音频的请求头中还要带上 referer 才能下载
- Cookie 中要带上 CURRENT_FNVAL=4048,否则请求会被拦截
返回 json 示例 (精简):
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"accept_description": [
"高清 1080P+",
"高清 1080P",
"高清 720P",
"清晰 480P",
"流畅 360P"
],
"accept_quality": [
112,
80,
64,
32,
16
],
"dash": {
"video": [
{
"id": 80,
"baseUrl": "...",
"base_url": "...",
"backupUrl": [
"...",
"..."
],
"backup_url": [
"...",
"..."
],
"mimeType": "video/mp4",
"mime_type": "video/mp4",
"codecs": "avc1.640032",
"width": 1920,
"height": 1080,
"frameRate": "25",
"frame_rate": "25"
},
{
"id": 80,
"baseUrl": "...",
"base_url": "...",
"backupUrl": [
"...",
"..."
],
"backup_url": [
"...",
"..."
],
"mimeType": "video/mp4",
"mime_type": "video/mp4",
"codecs": "hev1.1.6.L150.90",
"width": 1920,
"height": 1080,
"frameRate": "25",
"frame_rate": "25"
},
{
"id": 80,
"baseUrl": "...",
"base_url": "...",
"backupUrl": [
"...",
"..."
],
"backup_url": [
"",
""
],
"mimeType": "video/mp4",
"mime_type": "video/mp4",
"codecs": "av01.0.08M.08.0.110.01.01.01.0",
"width": 1920,
"height": 1080,
"frameRate": "25",
"frame_rate": "25"
},
...
...
],
"audio": [
{
"id": 30280,
"baseUrl": "...",
"base_url": "...",
"backupUrl": [
"...",
"..."
],
"backup_url": [
"...",
"..."
],
"mimeType": "audio/mp4",
"mime_type": "audio/mp4",
"codecs": "mp4a.40.2"
},
...
...
]
}
}
}
声明
本文由 Scott Sloan 原创,转载请标明原作者。