Bili-api
let object = await biliAPI({ mid: 349991143 }, ['uname', 'guardNum'])
object.uname // → "神楽Mea_Official"
object.guardNum // → 369
目录
biliAPI
安装
npm
npm install bili-api -S
Yarn
yarn add bili-api
用法
const biliAPI = require('bili-api')
;
(async () => {
let up = await biliAPI({ mid: 349991143 }, ['follower'])
up.follower // → 769650
})()
以上便是根据<mid>查找粉丝数,很简单对不对→_→
想看看推的VTB有几个舰长,几个提督,有没有石油佬上总督?没问题!
const biliAPI = require('bili-api');
(async () => {
let { guardLevel } = await biliAPI({ mid: 415578378 }, ['guardLevel'], { wait: 200 })
guardLevel // → [
// 2,
// 7,
// 162
//]
})()
部分API支持不同来源分支查询,比如通过用户名查找 mid,后查找其余信息。
const biliAPI = require('bili-api');
(async () => {
let { guardNum } = await biliAPI({ uname: '白上吹雪Official' }, ['guardNum'])
guardNum // → 74
})()
通过视频 av 号查找UP主 mid,后查找UP主其余信息。
const biliAPI = require('bili-api');
(async () => {
// 一 般 友 情 夏 色 祭
let { uname } = await biliAPI({ aid: 33342306 }, ['uname'])
uname // → "夏色祭Official"
})()
biliAPI Document
/**
* @method biliAPI
* @param {Object} object 输入的信息
* @param {Array} targets 需要的目标信息
* @param {Function} [option] 设置
* @return {Promise} Resolve一个带有所需targets的Object
*/
biliAPI(object, targets[, option])
-
object
: Object,提供目前知道的信息,比如{ mid: 349991143 }
,不同key的说明可以参阅IDs -
targets
: Array,需要的信息,比如['follower']
,每个值的说明可以参阅APIs -
option
: Object,可选设置。-
wait
: Number,默认0。如果在短时间发起过多请求,可能会被bilibili暂时banIP,所以可以在这里指定一个请求delay,单位 ms 毫秒,每一个网络请求都会暂停一段时间。
比如上面的获取舰团数据例子就有 200 毫秒延迟,因为它需要遍历舰团的每一页,所以最好设置一个delay。
-
更多例子:
获取所有视频
const biliAPI = require('bili-api');
(async () => {
let { allVideos } = await biliAPI({ mid: 286700005 }, ['allVideos'])
allVideos.length // → 3550
allVideos[0] // → {
// "comment": 552,
// "typeid": 27,
// "play": 231244,
// "pic": "//i2.hdslb.com/bfs/archive/c658ac3a197507385db42a2fa7b3b5154e0e3d30.jpg",
// "subtitle": "",
// "description": "hololive所属VTuber的短篇动画「holo的涂鸦」第五十四集!\n——————————\n出场的所有hololive成员在B站都有官方频道\n平时每天都有直播,带字幕录像也在不断更新\n喜欢的话多多关注哦♡\n\n\n——————————\n第一集【荒野行动】APEX\nav51574677\n\n第二集【速报】女高中生成为了内阁官房长官\nav52384443\n\n第三集 上回的lovelive!\nav53071539\n\n第四集 【Hololive小剧场】假如给偶像三亿元\nav53702071\n\n第五集 【悲报】右手有",
// "copyright": "",
// "title": "【hololive小剧场】1分钟就能看懂的格林童话",
// "review": 0,
// "author": "hololive",
// "mid": 286700005,
// "is_union_video": 0,
// "created": 1589166450,
// "length": "01:47",
// "video_review": 893,
// "is_pay": 0,
// "favorites": 5473,
// "aid": 925694851,
// "is_steins_gate": 0,
// "hide_click": false
//}
})()
获取视频分P的所有cid
const biliAPI = require('bili-api');
(async () => {
let { cids } = await biliAPI({ aid: 27702699 }, ['cids'])
cids // → [
// 154130876,
// 153368014,
// 153022084,
// 152986511,
// 152985543,
// 152425880,
// 152002045,
// 150297919,
// 149694024,
// 148577829,
// 148579293,
// 148575538,
// 147100251,
// 146848245,
// 146854231,
// 146834824,
// 144775534,
// 144342789,
// 144606741,
// 144044432,
// 144039296,
// 144044987,
// 141818927,
// 141375841,
// 140200064,
// 140201152,
// 140201635,
// 138312230,
// 138314190,
// 138313436,
// 138095411,
// 138313721,
// 137399592,
// 138300762,
// 137513774,
// 137354408,
// 136834104,
// 136415428,
// 136413554,
// 136205486,
// 135178666,
// 135081523,
// 135082155,
// 134965028,
// 134890616,
// 134686293,
// 134482642,
// 134383394,
// 134383290,
// 134072123,
// 134686834,
// 133674390,
// 132804903,
// 132250522,
// 132252236,
// 132251210,
// 131783391,
// 138302683,
// 131095190,
// 130775348,
// 130679944,
// 130544896,
// 130064858,
// 130064687,
// 130065169,
// 129494135,
// 129471844,
// 128741177,
// 128328466,
// 127911562,
// 127882591,
// 126961245,
// 127411295,
// 126577294,
// 126412246,
// 126412697,
// 125886700,
// 125353459,
// 124221119,
// 124220678,
// 124220626,
// 123977663,
// 123669381,
// 124940385,
// 123102926,
// 123062231,
// 122770200,
// 122705097,
// 122541408,
// 121700107,
// 121698981,
// 121698543,
// 122249080,
// 121698118,
// 120802623,
// 120568983,
// 120419369,
// 119155112,
// 118858442,
// 118514627,
// 117565934,
// 117348519,
// 117346761,
// 117345948,
// 117343514,
// 117349741,
// 117349698,
// 116186644,
// 114763979,
// 114638549,
// 114418415,
// 114230987,
// 113685416,
// 113606632,
// 112946049,
// 112305652,
// 112299881,
// 112249982,
// 112249847,
// 112249715,
// 111800712,
// 111823761,
// 111806238,
// 111805606,
// 111804322,
// 110947294,
// 110946620,
// 113607080,
// 110945683,
// 108734088,
// 108728098,
// 108721702,
// 108721496,
// 107242490,
// 107147481,
// 113607702,
// 106752299,
// 106738746,
// 106011326,
// 105885163,
// 105883722,
// 105131095,
// 103894110,
// 103893362,
// 103025841,
// 103029620,
// 100426228,
// 100438286,
// 100073514,
// 100067702,
// 100064630,
// 98140930,
// 98176581,
// 97497904,
// 97074496,
// 98171575,
// 96396213,
// 96396029,
// 94227448,
// 94789318,
// 94254317,
// 93784890,
// 94257750,
// 94317035,
// 94319102,
// 94319353,
// 94319982,
// 94320142,
// 94320271,
// 94320723,
// 94320982,
// 94320998,
// 94321024,
// 97056382,
// 96535734,
// 96534727,
// 96534219,
// 96533304,
// 96541034,
// 103127764,
// 103128533,
// 103129216,
// 103129712,
// 103129922,
// 103130328,
// 103130885,
// 103130897,
// 103131464,
// 103132696,
// 103132455,
// 103132879,
// 103111181,
// 103112536,
// 103113244,
// 103114950,
// 103117360,
// 103118025,
// 103118461,
// 103119415,
// 47780428
//]
})()
Router Graph
Bilibili API Document
这里收集的API应该属于"匿名API(自造词)",即不需要 登陆/appkey 的API。
用处大概是公开信息获取,暂时没有涉及类似"发弹幕/评论"相关API的打算。
以下是可能满足类似需求的资料:
fython/BilibiliAPIDocs: Bilibili API (For thrid-party) Documents 哔哩哔哩开放接口第三方文档
lovelyyoshino/Bilibili-Live-API: BILIBILI 直播/番剧 API
Vespa314/bilibili-api: B站API收集整理及开发,测试【开发中】
DATAs
-
stat
UP主统计数据
前置: <mid>
-
info
UP主信息
前置: <mid>
-
view
视频信息
前置: <bvid>
-
list
弹幕
前置: <cid>
-
_notice
UP主公告
前置: <mid>
-
video
UP主的视频数
前置: <navnum>
-
guardNum
直播舰团
前置: <topList>
-
guards
舰团列表
前置: <fullTopList>
-
guardLevel
舰团各等级数
前置: <guards>
-
roundStatus
轮播状态,轮播中为
1
前置: <roomStatus>, <getRoomInfoOld>
-
liveStatus
直播状态,直播中为
1
,轮播/没播为0
前置: <roomStatus>, <getRoomInfoOld>
-
title
直播间标题
前置: <getRoomInfoOld>
-
online
直播间当前人气值 非直播状态为0
前置: <liveStatus>, <getRoomInfoOld>
-
notice
公告
前置: <_notice>
-
archiveView
UP主播放数
前置: <upstat>
-
articleView
UP主阅读数
前置: <upstat>
-
face
UP主头像的链接
前置: <info>
-
topPhoto
个人空间头图
前置: <info>
-
liveStartTime
直播开始时间
前置: <getInfoByRoom>
-
mid
大概是 Member ID? UP主个人空间地址 https://space.bilibili.com/43222001/ 中的
43222001
就是这个mid
了 -
aid
就是av号啦→_→ 比如视频 https://www.bilibili.com/video/av2134250/ 中的
2134250
就是aid
前置: <aid>
-
bvid
就是bv号,新出的www 比如视频 https://www.bilibili.com/video/BV1Xs411S77y 中的
BV1Xs411S77y
就是bvid
前置: <archiveStat>
-
roomid
直播房间号
前置: <getRoomInfoOld>
-
rankdb
bilibili直播一周元气榜分区排名
前置: <mid>
Contribution
欢迎各种Issue和Pull Request
开Issue聊天也行→_→!!!
详细可以阅读 CONTRIBUTING.md