bilibili API 合集(二):视频

技术 · 2022-04-23 · 233 人浏览

bilibili API 合集 - 目录

(一)扫码登录
(二)视频
(三)番组
(四)音乐


视频

注意
本文中的“视频”指的是用户投稿的视频,与番组(番剧,电影,纪录片等)不同

获取视频信息、视频列表

https://api.bilibili.com/x/web-interface/view?bvid={bvid}

请求方式:GET
返回类型:json

请求参数说明
bvidBV 号
返回参数说明
code状态码,0 为成功,非 0 为失败
pic视频封面地址
title视频标题
pubtime投稿日期
desc视频简介
owner用户信息
stat视频播放数、点赞数、投币数、收藏数等数据
cidcid
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

请求参数说明
bvidBV 号
cidcid
返回参数说明
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 原创,转载请标明原作者。

bilibili API
Theme Jasmine by Kent Liao