/Yabapi

Bilibili API for Kotlin

Primary LanguageKotlinCreative Commons Zero v1.0 UniversalCC0-1.0

yabapi logo

License: CC0 Maven-Central Yabapi Version Maven-Central Yabapi Snapshots Version

🔧 WIP 并没有进入稳定版本, API 可能会发生变动, 繁体中文

Intro

简而言之,Yabapi 是一个 B 站第三方 Kotlin API 库。

License

本项目代码基于 CC0 分发, 释放于公有领域, 如果你乐意, 可以在使用时附上我的名字(这并不强制).

本项目 Logo 基于 CC BY ND 4.0 分发, 若需要使用 Logo, 务必附上本项目地址, 并且不得更改其内容. Banner 使用了思源等宽.

特性

多平台

本项目是 Kotlin Multiplatform 项目,现在支持 JVM 和 Native 两大平台,绝大多数功能都提供多平台支持。

高性能

基于 Kotlin 协程 的支持,开发者可以轻松写出高性能的代码。

类型安全

Kotlin 为开发者提供了巨大帮助,包括在语言层面上对空指针的避免,以及完备的序列化库 kotlinx.serialization.

Yabapi 基于此,力求类型安全,避免空指针,减少运行时错误。

支持的 API

查看详情
  • 登录

    • 图形验证码获取 (验证需通过 geetest-validator)
    • Web 登录
      • Cookie
      • 密码登录
        • Native 平台的 RSA 支持
      • 扫码登录
      • 短信登录
    • APP / TV?
  • 关系

    • 查询粉丝
    • 查询关注
    • 查询特别关注
    • 批量查询
    • 关注/悄悄关注/拉黑 及取消操作
    • 批量操作 (仅关注/拉黑)
    • 查询关系
  • 信息获取

    • 个人基本信息
    • 硬币状态及花费历史
    • 每日经验值奖励获取
    • 大会员状态
    • 实名状态
    • 昵称是否可用
    • 用户空间
      • 置顶 / 代表作
      • 近期游戏
      • 近期投币
      • 空间公告
      • 空间设置
      • Tags
      • 收藏夹获取
        • 创建的
        • 收藏的
      • 稍后观看
        • 查看 / 增加 / 删除 / 清除
      • 空间频道 (视频合集)
        • 信息获取
      • 订阅番剧
      • 订阅标签
  • 搜索

    • 综合搜索
    • 分类搜索
      • 视频
      • 番剧 及 剧集
      • 用户
      • 直播间 及 直播用户
      • 话题
      • 专栏
      • 相关筛选
  • 视频

    • 基本信息
    • 在线人数
    • 高能进度条
    • Tags
    • 分P
    • 所属合集
    • 点赞/投币/收藏/一键三连 及 状态查询
    • 全清晰度(8K/4K/1080P+) 音视频流获取
      • 下载?
  • 专栏

    • 基本信息
    • 文集信息
  • 动态

    • 获取 新动态 / 特定用户
    • 动态解析
      • 文本
      • 图文
      • 视频
      • 番剧
      • 专栏
      • 合集
      • 分享
      • ...
  • 相簿

    • 上传图片

    介于 相簿专站 基本废弃, 不计划添加额外 API

  • 专栏

    • 基本信息
    • 详细信息
    • 文集信息
  • 直播

    • 获取信息
    • 签到
      • 检查签到信息(本月/上月)
    • 直播排行榜
      • 主播元气榜
      • 用户能量榜
      • 主播舰队榜
      • 船员价值榜
      • 舰船人数榜
      • 用户等级榜
      • 主播等级榜
      • 勋章等级榜
    • 建立 WebSocket 消息流连接
      • 发送 认证包 & 心跳包
      • 接收 认证回应 & 心跳回应
      • 接收 普通包 & 解析
        • 礼物连发
        • 弹幕信息
        • 舰长特效
        • 上舰信息
        • 高能榜变化 V1, V2
        • 高能榜TOP3 变化
        • 登上热门 V1, V2
        • 房间信息变化(标题更改)
        • 房间实时信息(粉丝, 粉丝团)
        • 交互信息
        • 交互游戏信息
        • 直播活动页面信息
        • 广播信息
        • SuperChat 进场/发送/删除
          • 日语样式
        • 续费/开通舰长提示
        • 活动 banner 显示
        • 抽奖 开始/结束/审核/获奖
    • 直播视频流 全分辨率获取
      • 下载?
  • 表情

    • 获取表情列表
  • 时间

    • 获取服务器时间戳
  • Cookie 存储

    • 提供 FileCookieStorage

敏感 API 不会被支持, 如 B 币钱包、注册、新人答题、课程下载。同时 API 会优先支持读取操作。

Setup

// Common
implementation("moe.sdl.yabapi:yabapi-core:$version")
// JVM
implementation("moe.sdl.yabapi:yabapi-core-jvm:$version")
// Native
implementation("moe.sdl.yabapi:yabapi-core-native:$version")

Snapshots

repositories {
    maven("https://s01.oss.sonatype.org/content/repositories/snapshots/")
}

dependencies {
    implementation("moe.sdl.yabapi:yabapi-core-$platform:$snapshotVersion")
}

Change Log

See: CHANGELOG.md

Thanks

  • Kotlin - A modern programming language that makes developers happier.
  • kotlinx.serialization - Kotlin multiplatform / multi-format reflectionless serialization
  • kotlinx.coroutines - A rich library for coroutines developed by JetBrains
  • Ktor - An asynchronous framework for creating microservices, web applications and more.
  • Kermit - Multiplatform logger library
  • Korlibs - Korlibs is a set of Kotlin Common modern libraries to do full stack development
  • bilibili-API-collect - 哔哩哔哩-API收集整理