/bili-api

Bilibili Node.js API

Primary LanguageJavaScriptMIT LicenseMIT

Bili-api Node CI Coveralls github npm

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

Graph of apis

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

Contribution

欢迎各种Issue和Pull Request

开Issue聊天也行→_→!!!

详细可以阅读 CONTRIBUTING.md