New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

bili-api

Package Overview
Dependencies
Maintainers
1
Versions
40
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bili-api

Bilibili API 接口

latest
Source
npmnpm
Version
1.10.1
Version published
Weekly downloads
42
20%
Maintainers
1
Weekly downloads
 
Created
Source

Bili-api Node CI Coveralls github npm

let object = await biliAPI({ mid: 349991143 }, ['uname', 'guardNum'])
object.uname // → "神楽Mea_Official"
object.guardNum // → 90

目录

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 // → 865364
})()

以上便是根据<mid>查找粉丝数,很简单对不对→_→

想看看推的VTB有几个舰长,几个提督,有没有石油佬上总督?没问题!

const biliAPI = require('bili-api');

(async () => {
  let { guardLevel } = await biliAPI({ mid: 415578378 }, ['guardLevel'], { wait: 200 })
  guardLevel // → [
  //  0,
  //  0,
  //  0
  //]
})()

部分API支持不同来源分支查询,比如通过用户名查找 mid,后查找其余信息。

const biliAPI = require('bili-api');

(async () => {
  let { guardNum } = await biliAPI({ uname: '帕里_Paryi' }, ['guardNum'])
  guardNum // → 4
})()

通过视频 av 号查找UP主 mid,后查找UP主其余信息。

const biliAPI = require('bili-api');

(async () => {
  // 迷 迭 迷 迭 帕 里 桑
  let { uname } = await biliAPI({ aid: 54299141 }, ['uname'])
  uname // → "马牌酸菜罐头"
})()

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: 380829248 }, ['allVideos'])
  allVideos.length  // → 803
  allVideos[0]  // → {
  //  "comment": 151,
  //  "typeid": 27,
  //  "play": 35467,
  //  "pic": "http://i1.hdslb.com/bfs/archive/7ebdf463d240d634c48ffd1fa07aa5b4300626a1.jpg",
  //  "subtitle": "",
  //  "description": "看一眼,这是什么,是花园橘猫,橘猫飞扑!再多看一眼,这是什么,是花园橘猫,橘猫飞扑!\n\n推特:https://twitter.com/hanazono_serena\n\n油管:https://www.youtube.com/channel/UCRXBTd80F5IIWWY4HatJ5Ug\n\ntwitcasting:http://www.twitcasting.tv/hanazono_serena/show",
  //  "copyright": "1",
  //  "title": "再多看一眼,是肥猫飞扑!!(ง˙o˙)ว",
  //  "review": 0,
  //  "author": "花园Serena",
  //  "mid": 380829248,
  //  "created": 1682341800,
  //  "length": "00:17",
  //  "video_review": 17,
  //  "aid": 697813388,
  //  "bvid": "BV1Dm4y127Rk",
  //  "hide_click": false,
  //  "is_pay": 0,
  //  "is_union_video": 0,
  //  "is_steins_gate": 0,
  //  "is_live_playback": 0,
  //  "meta": {
  //    "id": 1273994,
  //    "title": "猫猫小场景",
  //    "cover": "https://archive.biliimg.com/bfs/archive/d924dca6f0fe32acd664187541ad181a5f95402c.jpg",
  //    "mid": 380829248,
  //    "intro": "短视频合集",
  //    "sign_state": 0,
  //    "attribute": 140,
  //    "stat": {
  //      "season_id": 1273994,
  //      "view": 679218,
  //      "danmaku": 394,
  //      "reply": 2164,
  //      "favorite": 27482,
  //      "coin": 9946,
  //      "share": 3687,
  //      "like": 135269,
  //      "mtime": 1682420254,
  //      "vt": 1236324,
  //      "vv": 0
  //    },
  //    "ep_count": 15,
  //    "first_aid": 354674889,
  //    "ptime": 1682341800,
  //    "ep_num": 0
  //  },
  //  "is_avoided": 0,
  //  "attribute": 0
  //}
})()
获取视频分P的所有cid
const biliAPI = require('bili-api');

(async () => {
  let { cids } = await biliAPI({ aid: 27702699 }, ['cids'])
  cids // → [
  //  153368014,
  //  154130876,
  //  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,
  //  1085091986,
  //  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

  • stat

    UP主统计数据

    前置: <mid>

  • info

    UP主信息

    前置: <mid>

  • view

    视频信息

    前置: <bvid>

  • list

    弹幕

    前置: <cid>

  • _notice

    UP主公告

    前置: <mid>

  • video

    UP主的视频数

    前置: <spaceSearch>

  • guardNum

    直播舰团

    前置: <topList>

  • guards

    舰团列表

    前置: <fullTopList>

  • guardLevel

    舰团各等级数

    前置: <guards>

  • roundStatus

    轮播状态,轮播中为1

    前置: <roomStatus>, <liveRoom>

  • liveStatus

    直播状态,直播中为1,轮播/没播为0

    前置: <roomStatus>, <liveRoom>

  • title

    直播间标题

    前置: <liveRoom>

  • 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

    直播房间号

    前置: <liveRoom>

  • rankdb

    bilibili直播一周元气榜分区排名

    前置: <mid>

  • dynamics

    UP主的动态

    前置: <dynamicsRaw>

  • dynamicOffset

    获取动态的起点。留空或设置为0可获取最新动态。使用上一次请求中的next_offset可获取下一页动态。

Contribution

欢迎各种Issue和Pull Request

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

详细可以阅读 CONTRIBUTING.md

Keywords

bilibili

FAQs

Package last updated on 26 May 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts