Bilibili API 第三方文档


番剧

动态


视频评论

历史记录

获取视频排行信息


第三方登录

番剧专题

标签

获取视频信息

关于滥用

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

禁止登录

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

关于封禁

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

请求地址

请求的地址为 开头的地址

请求方法
关于编码

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

关于 UserAgent

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

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

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

代码示例

PHP 版本:

JS 版本:

  1. function get_sign(params, key)
  2. {
  3. var s_keys = [];
  4. for (var i in params)
  5. {
  6. s_keys.sort();
  7. var data = "";
  8. for (var i = 0; i < s_keys.length; i++)
  9. {
  10. data+=(data ? "&" : "")+s_keys[i]+"="+encodeURIComponent(params[s_keys[i]]);
  11. }
  12. return {
  13. "sign":hex_md5(data+key),
  14. "params":data
  15. }