使用bilibili-go
来顺畅的接入bilibili,支持视频投稿,个人信息查询...
!!!目前项目处于开发阶段,并非稳定版本,接口可能会变更,其他接口陆续接入中🔨...
-
下载包
go get github.com/kainhuck/bilibili-go
-
导入包
import bilibili_go "github.com/kainhuck/bilibili-go"
-
使用包
参考 👉demo
-
options介绍
-
自定义http客户端
用户可以通过自定义http客户端来使用代理或者其他需求,比如
proxyURL, err := url.Parse("http://proxy.example.com:8080") if err != nil { panic(err) } client := bilibili_go.NewClient( bilibili_go.WithHttpClient(&http.Client{ Transport: &http.Transport{ Proxy: http.ProxyURL(proxyURL), }, }), )
-
缓存cookie
用户可以实现下面这个接口来定义自己的存储,如果设置了缓存,在第二次登陆时将不再需要授权,除非缓存过期,在加载缓存时会自动校验授权信息是否过期
type AuthStorage interface { // LoadAuthInfo 加载AuthInfo LoadAuthInfo() (*AuthInfo, error) // SaveAuthInfo 保存AuthInfo SaveAuthInfo(*AuthInfo) error // LogoutAuthInfo 账号退出登陆时会调用该方法 LogoutAuthInfo(*AuthInfo) error }
默认提供了一个文件缓存的实现
fileAuthStorage
可以如下使用cient := bilibili_go.NewClient( bilibili_go.WithAuthStorage(bilibili_go.NewFileAuthStorage("文件路径")), )
-
开启调试
开启debug模式后,将会向指定的文件中写入http的报文
client := bilibili_go.NewClient( bilibili_go.WithDebug(true), // 将会向 stdout 输出http报文 )
f, err := os.Open("debug.txt") if err != nil { panic(err) } defer f.Close() client := bilibili_go.NewClient( bilibili_go.WithDebug(true, f), // 将会向 debug.txt 输出http报文 )
-
自定义处理登陆二维码
在使用
LoginWithQrCode
方法登陆时,默认会将登陆二维码输出到标准输出,用户可以配置自己的输出方法来自定义处理登陆二维码,比如将其发送到指定的群组或个人client := bilibili_go.NewClient( bilibili_go.WithShowQRCodeFunc(func(code *qrcode.QRCode) error { // .... return nil }), )
-
自定义User-Agent
默认UA: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"
client := bilibili_go.NewClient( bilibili_go.WithUserAgent("abc"), )
-
使用自定义logger
用户可以设置任何实现了
Logger
接口的日志,默认使用logrus.StandardLogger()
type Logger interface { Debug(args ...any) Info(args ...any) Warn(args ...any) Error(args ...any) Debugf(format string, args ...any) Infof(format string, args ...any) Warnf(format string, args ...any) Errorf(format string, args ...any) }
client := bilibili_go.NewClient( bilibili_go.WithLogger(log), )
-
设置cookie刷新时间
默认1分种检查一次cookie是否需要刷新,如果设置为0则不检查刷新
client := bilibili_go.NewClient( bilibili_go.WithRefreshInterval(time.Hour), )
-
- 新增token定期检查token刷新功能
- 新增token刷新功能
- 查询每日奖励状态
- 视频投币,分享,点赞
- 一键三连
- 获取热门视频排行
- 视频排行榜
- 最新视频
- 入站必刷视频
- 新增登出功能
- 封装了关系操作接口
- 新增查询用户与自己的关系接口
- 新增查询用户与自己的互相关系接口
- 新增批量查询用户与自己的关系
- 新增查询关注分组列表
- 新增其他分组操作
- 新增操作用户关系接口
- 新增批量操作用户关系接口
- 新增查询用户粉丝列表接口
- 新增查询用户关注列表接口
- 新增搜索用户关注列表接口
- 新增查询共同关注列表接口
- 新增查询悄悄关注列表接口
- 新增查询互相关注列表接口
- 新增查询黑名单列表接口
- 新增关系状态数接口
- 新增up状态数接口
- 新增相簿投稿数接口
- 优化封面上传方式,支持从io读取,http读取
- auth info 缓存用户信息
- 更新auth info的存储模块
- 可自定义auth info存储
- 更新分区
- 可自定义处理登陆二维码
- 添加视频分区
- 更新debug调试,可输出到指定文件
- 新增日志配置,可使用自定义日志
- 更新多渠道视频上传,本地磁盘,io,http
- 更新认证信息缓存
- 新增refresh_token
- 修改登陆接口
- 增加debug参数
- 新增 获取硬币数 接口
- 新增 用户空间详细信息 接口
- 新增 用户名片信息 接口
- 新增 登陆用户空间详细信息 接口
- 支持扫码登陆
- 支持缓存cookie
- 支持视频上传
- 支持封面上传
- 支持投稿视频
- 支持查询个人信息相关接口