B站API整理项目实战指南:从视频排行到弹幕字幕,一次上手

B站API整理项目实战指南:从视频排行到弹幕字幕,一次上手

【免费下载链接】bilibili-apiB站API收集整理及开发,不再维护项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-api

你是否有过这样的瞬间:想统计某位UP主的投稿趋势,想给追的番剧做一份播放量周报,或者想把视频弹幕转成字幕文件收藏起来——结果刚打开浏览器就发现,B站API分散在各处,参数五花八门,返回的JSON字段又多又乱?

今天要介绍的这款开源项目,正是一位老玩家把这些经验沉淀下来的成果。它把B站常用的数据接口收集、整理,并用Python封装成一个个函数,让你不必再从零去翻网页、猜参数、手工解析返回结果。

一个项目,覆盖B站数据的四大场景

这个项目的仓库路径为gh_mirrors/bil/bilibili-api,核心代码按使用难度分为三类:

类别代表能力使用门槛
网页爬取型视频排行、按条件筛选、按月获取新番无需任何密钥
免认证接口评论、用户信息、专题、直播状态无需任何密钥
需认证接口视频详情、新番列表、关键词搜索需appkey与AppSecret

无论你是想爬数据做分析、做内容创作,还是想进行二次开发,都能在这里找到合适的入口。

三步上手:先跑通第一个函数

第一步,克隆代码

git clone https://gitcode.com/gh_mirrors/bil/bilibili-api

第二步,定位核心模块。进入python API/目录:bilibili.py是API主体,所有功能函数都在这里;biclass.py定义了用户、视频、评论、新番等数据结构;support.py则提供HTTP请求、JSON解析、签名计算等底层支持。

第三步,写三行代码验证。试试拉取一周内的热门视频:

from bilibili import GetPopularVideo # 统计1月1日到1月7日的热门视频,按播放数排序 videos = GetPopularVideo([2024,1,1], [2024,1,7]) for v in videos[:5]: print(v.aid, v.title, v.guankan)

不出意外,你就能拿到包含AV号、标题、播放量、收藏数、弹幕数、封面、UP主信息的完整列表。

免认证接口:零成本开箱即用

这是项目里性价比最高的部分,多数常见场景根本不需要申请密钥:

  • 用户信息查询GetUserInfoBymid(mid)按ID查询,GetUserInfoByName(name)按昵称查询,返回性别、粉丝数、关注数、投稿数、所在地、个人简介等字段。
  • 视频评论抓取GetComment(aid)获取单页评论,GetAllComment(aid)自动翻页抓取全部评论,并支持按点赞数或热门排序。
  • 专题视频获取GetVideoOfZhuanti(spid)传入专题ID,即可拉取该专题下的全部视频。
  • 直播状态探测IsLiving(mid)判断UP主当前是否在直播,HasLiving(mid)查询其是否开通直播。
  • 弹幕内容下载:拿到视频cid后调用GetDanmukuContent(cid),即可获得原始弹幕XML数据。

比如,你想快速了解一位UP主的账号概况,几行代码就能完成:

from bilibili import GetUserInfoBymid me = GetUserInfoBymid(208259) print(me.name, me.fans, me.article)

进阶玩法:带密钥的认证接口

当你想获取视频的详细标签、硬币数、分P信息,或者按关键词搜索视频和专题时,就需要申请B站的appkey,并在调用时附带由AppSecret生成的签名。项目在api.md中给出了完整的签名算法(Python和JavaScript两个版本都有),照着GetSign()的实现改即可。

from bilibili import GetVideoInfo video = GetVideoInfo(170001, appkey="你的appkey", AppSecret="你的AppSecret") print(video.title, video.danmu, video.coin)

这一层接口能拿到的字段更丰富,适合做深度的数据分析和二次开发。

顺手好用的配套小工具

除了核心API,项目里还藏着不少实用脚本:

  • GetDanmuAss:输入AV号直接生成本地播放器可用的ASS弹幕字幕文件,看番追剧体验直接拉满 ✨
  • GetVideoUrl:输入视频页面地址,解析出真实下载地址,配合下载工具使用。
  • BiliMerge:把B站手机客户端离线下载的分段视频合并成一个完整文件。
  • bili-monitor:定时监控新番的播放、追番等数据变化。
  • bili_live_guaji:直播区挂机脚本,帮你积累直播间经验值。
  • bilibili-po:爬取UP主的关注关系网,并附带数据分析代码。

另外Alfred/目录下还有三个现成的Workflow(番剧查询、热门榜单、视频搜索),日常查资料可以少开几个网页。

使用前必读的几条提醒

  • 项目已停止维护,B站接口日新月异,部分旧接口可能失效,请把它当作学习和研究的参考资料。
  • 无论调用哪个接口,都请控制请求频率,批量抓取时适当暂停间隔,别给服务器添负担。
  • 认证接口中,旧版appkey已不可用,必须配合AppSecret使用签名才能正常工作。

结语

总的来说,这个项目就像一本"B站数据获取的武功秘籍":接口文档齐全,函数封装友好,配套工具实用。对想练手爬虫的新人来说,它是绝佳的入门教材;对有数据分析需求的老手来说,它也能帮你省下大量踩坑时间。

如果你正准备做B站相关的小项目,不妨把它克隆下来,先从拉一份排行榜开始试试看。动手,永远是最好的学习方式 🚀

【免费下载链接】bilibili-apiB站API收集整理及开发,不再维护项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-api

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考