Skip to content

Latest commit

 

History

History
491 lines (440 loc) · 13.3 KB

player.md

File metadata and controls

491 lines (440 loc) · 13.3 KB

播放器

web 播放器信息

web 播放器的信息接口,提供正常播放需要的元数据,包括:智能防挡弹幕、字幕、章节看点等。

https://api.bilibili.com/x/player/wbi/v2
https://api.bilibili.com/x/player/v2

请求方式:GET

URL参数:

参数名 类型 内容 必要性 备注
aid num 稿件 avid 必要 (可选) aid 与 bvid 任选
bvid str 稿件 bvid 必要 (可选) aid 与 bvid 任选
cid num 稿件 cid 必要
season_id num 番剧 season_id 不必要
ep_id num 剧集 ep_id 不必要
w_rid str WBI 签名 不必要
wts num 当前 unix 时间戳 不必要

JSON回复:

根对象:

字段 类型 内容 备注
code num 返回值 0: 成功
-400: 请求错误
message str 错误信息 默认为 0
ttl num 1
data obj 数据本体

data 对象:

字段 类型 内容 备注
aid num 视频 aid
bvid str 视频 bvid
allow_bp bool
no_share bool 禁止分享?
cid num 视频 cid
dm_mask obj webmask 防挡字幕信息 若无则没有防挡功能
subtitle obj 字幕信息 若无则没有字幕, 若不登陆则为空
view_points array 章节看点信息
ip_info obj 请求 IP 信息
login_mid num 登录用户 mid
login_mid_hash str
is_owner bool 是否为该视频 UP 主
name str
permission num
level_info obj 登录用户等级信息
vip obj 登录用户 VIP 信息
answer_status num 答题状态
block_time num 封禁时间?
role str
last_play_time num 上次观看时间?
last_play_cid num 上次观看 cid?
now_time num 当前 UNIX 秒级时间戳
online_count num 在线人数
need_login_subtitle bool 是否必须登陆才能查看字幕 是的
preview_toast str `为创作付费,购买观看完整视频 购买观看`
options obj
guide_attention any
jump_card any
operation_card any
online_switch obj
fawkes obj 播放器相关信息?
show_switch obj
bgm_info obj 背景音乐信息
toast_block bool
is_upower_exclusive bool 充电专属?
is_upower_play bool
is_ugc_pay_preview bool
elec_high_level obj
disable_show_up_info bool

data 对象中的 options 对象:

字段 类型 内容 备注
is_360 bool 是否 360 全景视频
without_vip bool

data 对象中的 bgm_info 对象:

字段 类型 内容 备注
music_id str 音乐 id
music_title str 音乐标题
jump_url str 跳转 URL

data 对象中的 dm_mask 对象 (如果有):

字段 类型 内容 备注
cid num 视频 cid
plat num 未知
fps num webmask 取样 fps
time num 未知
mask_url str webmask 资源 url

解析 webmask 请看 智能防挡弹幕

data 对象中的 subtitle 对象:

字段 类型 内容 备注
allow_submit bool true
lan str ""
lan_doc str ""
subtitles array 不登录为 []

subtitle 对象中的 subtitles 数组内的元素:

字段 类型 内容 备注
ai_status num
ai_type num
id num
id_str str 和 id 不一样
is_lock bool
lan str 语言类型英文字母缩写
lan_doc str 语言类型中文名称
subtitle_url str 资源 url 地址
type num 0

view_point 数组内的元素:

字段 类型 内容 备注
content num 章节名
from num
to num
type num
imgUrl str 图片资源地址
logoUrl str ""

示例:

未登录, aid=1906473802

curl -G 'https://api.bilibili.com/x/player/wbi/v2' \
--url-query 'bvid=BV1MU411S7iJ' \
--url-query 'aid=1906473802' \
--url-query 'cid=1625992822'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {
    "aid": 1906473802,
    "bvid": "BV1MU411S7iJ",
    "allow_bp": false,
    "no_share": false,
    "cid": 1625992822,
    "max_limit": 1000,
    "page_no": 1,
    "has_next": false,
    "ip_info": {
      "ip": "104.28.152.138",
      "zone_ip": " 10.163.150.25",
      "zone_id": 29409280,
      "country": "美国",
      "province": "加利福尼亚州",
      "city": "东洛杉矶"
    },
    "login_mid": 0,
    "login_mid_hash": "",
    "is_owner": false,
    "name": "",
    "permission": "0",
    "level_info": {
      "current_level": 0,
      "current_min": 0,
      "current_exp": 0,
      "next_exp": 0,
      "level_up": 0
    },
    "vip": {
      "type": 0,
      "status": 0,
      "due_date": 0,
      "vip_pay_type": 0,
      "theme_type": 0,
      "label": {
        "path": "",
        "text": "",
        "label_theme": "",
        "text_color": "",
        "bg_style": 0,
        "bg_color": "",
        "border_color": "",
        "use_img_label": false,
        "img_label_uri_hans": "",
        "img_label_uri_hant": "",
        "img_label_uri_hans_static": "",
        "img_label_uri_hant_static": ""
      },
      "avatar_subscript": 0,
      "nickname_color": "",
      "role": 0,
      "avatar_subscript_url": "",
      "tv_vip_status": 0,
      "tv_vip_pay_type": 0,
      "tv_due_date": 0,
      "avatar_icon": {
        "icon_resource": {}
      }
    },
    "answer_status": 0,
    "block_time": 0,
    "role": "",
    "last_play_time": 0,
    "last_play_cid": 0,
    "now_time": 1725002188,
    "online_count": 1,
    "need_login_subtitle": false,
    "view_points": [],
    "preview_toast": "为创作付费,购买观看完整视频|购买观看",
    "options": {
      "is_360": false,
      "without_vip": false
    },
    "guide_attention": [],
    "jump_card": [],
    "operation_card": [],
    "online_switch": {
      "enable_gray_dash_playback": "500",
      "new_broadcast": "1",
      "realtime_dm": "1",
      "subtitle_submit_switch": "1"
    },
    "fawkes": {
      "config_version": 30787,
      "ff_version": 21289
    },
    "show_switch": {
      "long_progress": false
    },
    "bgm_info": {
      "music_id": "MA436038343856245020",
      "music_title": "Unwelcome school",
      "jump_url": "https://music.bilibili.com/h5/music-detail?music_id=MA436038343856245020&cid=1625992822&aid=1906473802"
    },
    "toast_block": false,
    "is_upower_exclusive": false,
    "is_upower_play": false,
    "is_ugc_pay_preview": false,
    "elec_high_level": {
      "privilege_type": 0,
      "title": "",
      "sub_title": "",
      "show_button": false,
      "button_text": "",
      "jump_url": "",
      "intro": "",
      "new": false
    },
    "disable_show_up_info": false
  }
}

已登陆, aid=60977932

curl -G 'https://api.bilibili.com/x/player/v2' \
--url-query 'aid=60977932' \
--url-query 'cid=106101299' \
-b 'SESSDATA=xxx'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {
    "aid": 60977932,
    "bvid": "BV1Jt411P77c",
    "allow_bp": false,
    "no_share": false,
    "cid": 106101299,
    "max_limit": 1000,
    "page_no": 1,
    "has_next": true,
    "ip_info": {
      "ip": "108.181.22.55",
      "zone_ip": " 172.27.132.5",
      "zone_id": 29409296,
      "country": "美国",
      "province": "加利福尼亚州",
      "city": "洛杉矶"
    },
    "login_mid": 616368979,
    "login_mid_hash": "445e7035",
    "is_owner": false,
    "name": "淡紫玲儿",
    "permission": "10000,1001",
    "level_info": {
      "current_level": 3,
      "current_min": 1500,
      "current_exp": 2962,
      "next_exp": 4500,
      "level_up": -62135596800
    },
    "vip": {
      "type": 1,
      "status": 0,
      "due_date": 1665417600000,
      "vip_pay_type": 0,
      "theme_type": 0,
      "label": {
        "path": "",
        "text": "",
        "label_theme": "",
        "text_color": "",
        "bg_style": 0,
        "bg_color": "",
        "border_color": "",
        "use_img_label": true,
        "img_label_uri_hans": "",
        "img_label_uri_hant": "",
        "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png",
        "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png"
      },
      "avatar_subscript": 0,
      "nickname_color": "",
      "role": 0,
      "avatar_subscript_url": "",
      "tv_vip_status": 0,
      "tv_vip_pay_type": 0,
      "tv_due_date": 0,
      "avatar_icon": {
        "icon_resource": {}
      }
    },
    "answer_status": 0,
    "block_time": 0,
    "role": "0",
    "last_play_time": 0,
    "last_play_cid": 0,
    "now_time": 1725003260,
    "online_count": 1,
    "need_login_subtitle": false,
    "subtitle": {
      "allow_submit": true,
      "lan": "zh-CN",
      "lan_doc": "中文(中国)",
      "subtitles": [
        {
          "id": 13643112644608002,
          "lan": "zh-Hans",
          "lan_doc": "中文(简体)",
          "is_lock": true,
          "subtitle_url": "//aisubtitle.hdslb.com/bfs/subtitle/c49b18a284739d99df1e3723cdf72c0c82db98e0.json?auth_key=1725003260-5d0391a07f4f47f6960f60cf5045dff3-0-fc16c1f67a6b41edcb2a89d5e0c9bfdd",
          "type": 0,
          "id_str": "13643112644608002",
          "ai_type": 0,
          "ai_status": 0
        },
        {
          "id": 13643200114196484,
          "lan": "en-US",
          "lan_doc": "英语(美国)",
          "is_lock": true,
          "subtitle_url": "//aisubtitle.hdslb.com/bfs/subtitle/2b38bc0f5d7671176964d4c3de441ed37568500c.json?auth_key=1725003260-5f709a74aa884751b77f86b6f6a48078-0-9b2fc3c18b99b1bf0cc7c7e63d18f686",
          "type": 0,
          "id_str": "13643200114196484",
          "ai_type": 0,
          "ai_status": 0
        }
      ]
    },
    "view_points": [],
    "preview_toast": "为创作付费,购买观看完整视频|购买观看",
    "options": {
      "is_360": false,
      "without_vip": false
    },
    "guide_attention": [],
    "jump_card": [],
    "operation_card": [],
    "online_switch": {
      "enable_gray_dash_playback": "500",
      "new_broadcast": "1",
      "realtime_dm": "1",
      "subtitle_submit_switch": "1"
    },
    "fawkes": {
      "config_version": 30787,
      "ff_version": 21289
    },
    "show_switch": {
      "long_progress": false
    },
    "bgm_info": null,
    "toast_block": false,
    "is_upower_exclusive": false,
    "is_upower_play": false,
    "is_ugc_pay_preview": false,
    "elec_high_level": {
      "privilege_type": 0,
      "title": "",
      "sub_title": "",
      "show_button": false,
      "button_text": "",
      "jump_url": "",
      "intro": "",
      "new": false
    },
    "disable_show_up_info": false
  }
}

播放反馈

https://app.bilibili.com/x/resource/laser2

请求方式: POST

注: 该接口不传 Cookie

URL参数:

参数名 类型 内容 必要性 备注
mid num 当前用户 mid 不必要 未登录为空
buvid str BUVID (APP) 或 buvid3 (Web) 必要 可为任意非空字符串
app_key str APP 密钥 必要 Web: web_player
可为任意非空字符串
url str 日志 URL 非必要 上传接口 得到的 upos 协议 URL
task_type num 任务类型 非必要 300: 播放卡顿
301: 进度条君无法调戏
354: 校园网无法访问
303: 弹幕无法显示
553: 跳过首尾时间有误
304: 出现浮窗广告
305: 无限小电视
302: 音画不同步
306: 黑屏
307: 其他

JSON回复:

字段 类型 内容 备注
code num 返回值 0: 成功
-400: 请求错误
message str 错误信息 默认为 0
ttl num 1
data obj 数据本体

data 对象:

字段 类型 内容 备注
task_id num 任务 ID?

示例:

播放反馈无限小电视, 不登录, 不传文件, buvid 为 chenrui-in-icu

curl -X POST "https://app.bilibili.com/x/resource/laser2" \
--data-urlencode "buvid=chenrui-in-icu" \
--data-urlencode "app_key=web_player" \
--data-urlencode "task_type=305"
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {
    "task_id": 850448532
  }
}