• This repository has been archived on 19/Oct/2020
  • Stars
    star
    2,395
  • Rank 19,213 (Top 0.4 %)
  • Language
  • Created over 9 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

哔哩哔哩开放接口第三方文档(仅提供官方曾公开接口)

Bilibili API 第三方文档

绝大部分内容根据 http://docs.bilibili.cn/wiki 官方文档进行编写

哔哩哔哩开放平台为第三方提供了简便的合作模式,满足了网站、手机和平板电脑用户随时随地观看哔哩哔哩的需求。哔哩哔哩开放平台提供相关接口,以实现第三方WAP站和客户端等多种应用的接入。

API 分类

作者推荐番剧弹幕动态

视频/专题收藏、关注视频评论好友/悄悄关注/黑名单

历史记录批量获取排行信息(首页)获取视频排行信息

登录行为记录第三方登录登录

我的信息通知视频推荐搜索读取/创建专题

番剧专题搜索关键词标签用户信息获取视频信息

注意事项

关于滥用

以下这些,但并不限于以下这些行为都被视为滥用: a.短时间内大量操作API用于采集。 b.测试帐号及密码 c.其它没有提到的,但会给系统带来压力的请求行为。

禁止登录

如果账号尝试登录错误次数在 30 分钟内超过 5 次则会被禁止登录一个小时,写程序的时候特别是 客户端的时候必须判断是否登录成功,如果不成功必须马上停止尝试。

关于封禁

由于滥用 API 将会导致 API 被封禁,但并不影响在官方网站上的使用,封禁一定的时间后会自动解除,一般需要一个小时后才会解封,所以请小心操作,不要拿 API 进行大量测试

请求地址

请求的地址为 http://api.bilibili.com/ 开头的地址

请求方法

只支持 GET 方法请求数据,用其它方法会提示相关错误。

关于编码

请用 UTF-8 编码进行数据传输,返回的数据也是 UTF-8 编码的。

关于 UserAgent

请求的时候必须设置 UserAgent,如果不设置或者设置为不合法的(比如设置为浏览器的)也会导致账号被封禁 API。 UserAgent 的格式必须为:程序英文名称/版本 (联系邮箱) 比如:BiLiBiLi WP Client/1.0.0 ([email protected])

通用调用参数

字段 必选 类型 说明
type false string (json/xml/jsonp) 返回数据方式 默认json
appkey true string 应用appkey
ts true int 当前时间截 (UNIX TIMESTAMP)
sign true string 应用校验密匙
callback false string JSONp调用方式时回调函数名称
access_key false string 应用在用户申请登陆后获取到的access_key 可以此access_key访问需要用户权限的操作
platform false string (android/ios) 客户端平台适配及统计用

通用错误代码

代码 说明
-1 应用程序不存在或已被封禁
-2 Access key错误
-3 API校验密匙错误
-101 帐号未登陆
-102 帐号被封停
-103 积分不足
-104 硬币不足
-105 验证码错误
-106 帐号未激活
-107 帐号非正式会员或在适应期
-108 应用沒有存取相应功能的权限
-400 请求有误
-403 权限不足
-404 文档不存在
-500 服务器内部错误
-503 调用速度过快

签名(sign)生成方式

把接口所需所有参数拼接,如utk=xx&time=xx,按参数名称排序,最后再拼接上密钥App-Secret,做md5加密 (callback不需要参与sign校检)

代码示例

PHP 版本:

/**
 * @param $params array 参数列表
 * @param $key 加密密钥
 * @return array sign:加密校验串,params:参数拼接串
 */
 function get_sign($params, $key) {
  $_data = array();
  ksort($params);
  reset($params);
  foreach ($params as $k => $v) {
  // rawurlencode 返回的转义数字必须为大写( 如%2F )
  $_data[] = $k . '=' . rawurlencode($v);
  }
  $_sign = implode('&', $_data);
  return array(
    'sign' => strtolower(md5($_sign . $key)),
    'params' => $_sign,
  );
 }
 define("APP_SECRET","abcdef123456");
 get_sign(array("type"=>"json"),APP_SECRET);

JS 版本:

<script type="text/javascript" src="http://static.hdslb.com/js/md5.js">/script>
 function get_sign(params, key)
 {
 	var s_keys = [];
 	for (var i in params)
 	{
 		s_keys.push(i);
 	}
 	s_keys.sort();
 	var data = "";
 	for (var i = 0; i < s_keys.length; i++)
 	{
 		// encodeURIComponent 返回的转义数字必须为大写( 如 %2F )
 		data+=(data ? "&" : "")+s_keys[i]+"="+encodeURIComponent(params[s_keys[i]]);
 	}
 	return {
 		"sign":hex_md5(data+key),
 		"params":data
 	};
 }

More Repositories

1

MaterialStepperView

Steppers - Material Design Components for Android
Java
2,194
star
2

Blackbulb

Night Screen - Material Design Screen Filter
Java
341
star
3

PackageTracker

Track your package simply on Android.
Kotlin
339
star
4

BreadcrumbsView

Material Design Breadcrumbs Navigation Widget on Android
Java
296
star
5

AlipayZeroSdk

Lightest Alipay Transfer Helper - 最轻量的支付宝转账工具类(Android)
Java
293
star
6

BiometricPromptCompat

A Thrid-party BiometricPrompt compat library.
Java
263
star
7

MaterialStatusBarCompat

Easy to make status bar translucent/tint on both Kitkat and Lollipop (完美地使 Kitkat 与 Lollipop 上的状态栏同时透明/变色)
Kotlin
263
star
8

EnhancedScreenshotNotification

Enhanced Screenshot Notification (Nevolution Decorator)
Java
72
star
9

Kotlinyan

[Deprecated] Make Kotlin Android app development easier and more elegant
Kotlin
67
star
10

kotlin-guides-cn

Android Kotlin Guides 网站(Fork 自 android/kotlin-guides)的第三方简体中文翻译
CSS
49
star
11

ImageGridView

Help you to create a flexible image grid easily.
Java
48
star
12

PackageTracker-NodeServer

Package Tracker (Node.js) Server for third-party api support and fcm push
JavaScript
41
star
13

userscript-enhance-bilibili-player

增强哔哩哔哩播放器的使用体验(Tampermonkey script)
JavaScript
35
star
14

KotlinaGallery

Build multiplatform(JVM/JS) ACG Gallery application with Kotlin
Kotlin
30
star
15

To-Watch-Bangumi-List

烧饼的补番列表 My TO-WATCH Bangumi List
30
star
16

vscode-gwo-android-helper

Browse files on your Android devices with Visual Studio Code
TypeScript
27
star
17

MaterialPreferenceCompat

Use android.support.v7.app.AlertDialog on your Preferences
Java
26
star
18

ExpressHelper

Please move to the new Package Tracker
Java
22
star
19

AnotherEChan

OneEChan (https://github.com/Tlaster/OneEchan) Thrid-Party Android Application
Java
18
star
20

Aoba-TelegramBot

Aoba Telegram Bot written in Kotlin
Kotlin
18
star
21

MacType-SourceHanSerif

Source Han Serif MacType Config
15
star
22

MaterialColorUtils

Get Material colors easily programmatically or in xml.
Kotlin
11
star
23

InvalidMediaCleaner

Scan and clean invalid media on your Android
Java
11
star
24

NyanAndroidArch

(自用) My Android architecture library in Kotlin. Enjoy the convenience of data binding and MVVM mode.
Kotlin
10
star
25

GDGaoKaoQuery-Android

广东高考录取结果查询 Android 端 (Kotlin)
Kotlin
9
star
26

bili-downloader

B 站视频批量下载库
TypeScript
8
star
27

PackageTracker-KotlinServer

[WIP] Package Tracker Push Server for Kotlin
Kotlin
7
star
28

LuSpeed

How fast do you "lu"?
Java
7
star
29

TelegramVisualNovelBot

Play Visual Novel Game on Telegram!
Python
6
star
30

SCUTAutoWiFi-Android

SCUT AutoWiFi Client for Android (Kotlin Lang)
Kotlin
6
star
31

AutoFiles

(WIP)
Java
6
star
32

about-me-page

About me page. Powered by Vue + Vuetify
CSS
5
star
33

YeelightAPI

(Personal use; Unfinished) Java implementation of Yeelight official API
Java
3
star
34

Python_Practice_DMZJ_API

DMZJ Client Api
Python
3
star
35

EventsHelper

EventBus-like utility based on annotation processors
Java
2
star
36

bili-open-live-go

哔哩哔哩直播长连协议客户端 Golang 版本
Go
2
star
37

userscript-weibo-link-go

新浪微博外链自动跳转
JavaScript
2
star
38

heartsteel-web

Heartsteel web emulator from League of Legends
Vue
1
star
39

SCUTAutoWiFi-Python

Just a simple python program
Python
1
star
40

apitest

DO NOT star this repo. Thx
1
star