XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/bilibili-API-collect

fix【README】typo, add doc【API签名】

83cfcc8
社会易姐QwQ <45892418+SocialSisterYi@users.noreply.github.com>
提交于

代码差异

4 个文件 +264 -250
Modified README.md +179 -179
@@ -19,13 +19,13 @@
19 19 <h3 align="center">野生API文档</h3>
20 20 <h3 align="center">不断更新中....</h3>
21 21
22 本项目旨在对B站web端、移动端以及TV端散落在世界各地的野生api进行收集整理,研究使用方法并对其进行说明,运用了黑箱法、控制变量法、js逆向分析法、apk拆包及反编译法、网络抓包法等研究办法
22 本项目旨在对 B 站 web 端、移动端以及 TV 端散落在世界各地的野生 api 进行收集整理,研究使用方法并对其进行说明,运用了黑箱法、控制变量法、js 逆向分析法、apk 拆包及反编译法、网络抓包法等研究办法
23 23
24 所有api均为标准http协议,返回数据大都为json或protobuf
24 所有 rest api 均为标准 http 协议,请求数据大多为 url query 表单,返回数据大多为 json 或 protobuf
25 25
26 PS:所有http协议地址均可使用https,文档中为了统一写作`http`,为了数据安全建议所有接口使用https
26 PS:所有 rest api 均可使用 https,文档中为了统一写作`http`,为了数据安全建议调用接口时使用 https
27 27
28 小小的Demo:~~av583785685~~[视频失效原因](https://shakaianee.top/archives/56/)([Youtube备链](https://www.youtube.com/watch?v=nfF91Z6fqGk))
28 小小的 Demo:~~av583785685~~ [视频失效原因](https://shakaianee.top/archives/56/)([Youtube备链](https://www.youtube.com/watch?v=nfF91Z6fqGk))
29 29
30 30 联动项目:[Hsury/Bilibili-Toolkit](https://github.com/Hsury/Bilibili-Toolkit)
31 31
@@ -33,7 +33,7 @@ PS:所有http协议地址均可使用https,文档中为了统一写作`http`
33 33
34 34 **声明**:
35 35
36 1. 本项目遵守CC-BY-NC 4.0协议,禁止一切商业使用,如需转载请注明作者ID
36 1. 本项目遵守 CC-BY-NC 4.0 协议,禁止一切商业使用,如需转载请注明作者 ID
37 37 2. **请勿滥用,本项目仅用于学习和测试!请勿滥用,本项目仅用于学习和测试!请勿滥用,本项目仅用于学习和测试!**
38 38 3. 利用本项目提供的接口、文档等造成不良影响及后果与本人无关
39 39 4. 由于本项目的特殊性,可能随时停止开发或删档
@@ -41,172 +41,172 @@ PS:所有http协议地址均可使用https,文档中为了统一写作`http`
41 41
42 42 ---
43 43
44 计划整理分类&目录:(√代表已完成,x代表正在施工...)二级目录正在建设中.....
45
46 - [API认证与鉴权(APP与Cookie方式)](other/API_auth.md)×
47 - [公共错误码](other/errcode.md)√
48 - [图片格式化](other/picture.md)√
49 - [bvid说明](other/bvid_desc.md)√
50 - [grpc接口](grpc_api)×
51 - [登录](login)
52 - [登录操作(人机认证)](login/login_action)√
53 - [短信登录](login/login_action/SMS.md)√
54 - [密码登录](login/login_action/password.md)√
55 - [二维码登录](login/login_action/QR.md)√
56 - SNS登录(QQ&微博)
57 - [登录基本信息](login/login_info.md)√
58 - [个人中心](login/member_center.md)×
59 - [注销登录](login/exit.md)×
60 - [登录记录](login/login_notice.md)√
61 - [消息中心](message)
62 - [通知类消息](message/msg.md)×
63 - [私信](message/private_msg.md)×
64 - [设置](message/config.md)×
65 - [用户](user)
66 - [基本信息](user/info.md)√
67 - [状态数](user/status_number.md)√
68 - [关系](user/relation.md)√
69 - [个人空间](user/space.md)x
70 - [检查昵称是否可注册](user/check_nickname.md)√
71 - [用户注册](user/register.md)
72 - [大会员福利兑换](user/vip.md)
73 - [视频](video)
74 - [视频分区一览(分区代码)](video/video_zone.md)√
75 - [基本信息](video/info.md)√
76 - [状态数](video/status_number.md)√
77 - [快照](video/snapshot.md)√
78 - [点赞&投币&收藏](video/like_coin_fav.md)√
79 - [TAG](video/tags.md)x
80 - [视频推荐](video/recommend.md)√
81 - [播放&下载地址(视频流)](video/videostream_url.md)√
82 - [互动视频](video/interact_video.md)×
83 - [高能进度条](video/pbp.md)√
84 - [信息上报(心跳及记录历史)](video/report.md)×
85 - [视频属性数据](video/attribute_data.md)√
86 - [视频在线人数](video/online.md)√
87 - [剧集(番剧、影视)](bangumi)
88 - [基本信息](bangumi/info.md)×
89 - 状态数
90 - 操作
91 - [视频弹幕](danmaku)
92 - [protobuf实时弹幕](danmaku/danmaku_proto.md)√
93 - [protobuf弹幕元数据(BAS弹幕/互动弹幕)](danmaku/danmaku_view_proto.md)√
94 - [xml实时弹幕](danmaku/danmaku_xml.md)√
95 - [历史弹幕](danmaku/history.md)√
96 - [快照](danmaku/snapshot.md)√
97 - [弹幕操作](danmaku/action.md)×
98 - 高级弹幕
99 - 屏蔽管理
100 - 智能防挡弹幕
101 - [弹幕个人配置修改](danmaku/config.md)√
102 - [名词解释](danmaku/buzzword.md)√
103 - [视频笔记](note)√
104 - [笔记列表](note/list.md)√
105 - [笔记详细信息](note/info.md)√
106 - [笔记操作](note/action.md)√
107 - [专栏](article)
108 - 分区
109 - [基本信息](article/info.md)×
110 - [点赞&投币&收藏&分享](article/like_coin_fav.md)×
111 - [文集基本信息](article/articles.md)×
112 - [音频](audio)
113 - [歌曲基本信息](audio/info.md)√
114 - [歌单&音频收藏夹详细信息](audio/music_list.md)×
115 - [状态数](audio/status_number.md)×
116 - [投币&收藏](audio/coin&fav.md)×
117 - [播放&下载地址(音频流)](audio/musicstream_url.md)√
118 - 音频榜单
119 - [排行榜&最新视频](ranking&dynamic)
120 - [排行榜](ranking&dynamic/ranking.md)×
121 - [最新视频](ranking&dynamic/dynamic.md)×
122 - [搜索](search)
123 - [搜索请求](search/search_request.md)√
124 - [搜索结果](search/search_response.md)√
125 - [默认搜索&热搜](search/hot.md)√
126 - [搜索建议](search/suggest.md)√
127 - [小黑屋](blackroom)
128 - 基本信息
129 - [封禁公示](blackroom/banlist.md)√
130 - [风纪委员及众裁案件相关](blackroom/jury)√
131 - [风纪委员基本信息](blackroom/jury/base_info.md)√
132 - [众裁案件基本信息](blackroom/jury/judgement_info.md)√
133 - [裁决操作](blackroom/jury/action.md)√
134 - [评论区](comment)√
135 - [评论区明细](comment/list.md)√
136 - [操作](comment/action.md)√
137 - [表情](emoji)
138 - [表情及表情包信息](emoji/list.md)√
139 - [操作](emoji/action.md)√
140 - [创作中心](creativecenter)
141 - [统计与数据](creativecenter/statistics&data.md)×
142 - 列表查询相关
143 - [电磁力数据](creativecenter/railgun.md)√
144 - [实时广播(通讯协议)](broadcast)√
145 - [视频内广播](broadcast/video_room.md)√
146 - [充电](electric)
147 - [B币方式](electric/Bcoin.md)√
148 - [微信&支付宝方式](electric/WeChat&Alipay.md)√
149 - [充电留言](electric/charge_msg.md)√
150 - [充电列表](electric/charge_list.md)√
151 - [动态](dynamic)
152 - [发送&转载动态](dynamic/publish.md)×
153 - [根据关键字搜索用户(at别人时的填充列表)](dynamic/atlist.md)
154 - [删除动态](dynamic/delete.md)
155 - 动态列表
156 - [特定话题动态列表](/dynamic/tag_dynamics.md)√
157 - [动态内容](/dynamic/get_dynamic_detail.md)×
158 - 操作
159 - [相簿](album)
160 - [基本信息](album/info.md)√
161 - [相簿列表](album/list.md)√
162 - [推荐作者](album/recommend_author.md)√
163 - [活动列表](album/activity_list.md)√
164 - [操作](album/action.md)√
165 - 投稿
166 - [历史记录&稍后再看](history&toview)
167 - [历史记录](history&toview/history.md)√
168 - [稍后再看](history&toview/toview.md)√
169 - [收藏夹](fav)
170 - [基本信息](fav/info.md)√
171 - [收藏夹内容](fav/list.md)√
172 - [收藏夹操作](fav/action.md)×
173 - [课程](cheese)
174 - [课程基本信息](cheese/info.md)√
175 - 已购课程
176 - 分区推荐列表
177 - 操作
178 - [播放&下载地址(视频流)](cheese/videostream_url.md)√
179 - [直播](live)
180 - [直播间基本信息](live/info.md)×
181 - [直播分区](live/live_area.md)×
182 - [直播间管理](live/manage.md)×
183 - 直播间操作
184 - [直播视频流](live/live_stream.md)×
185 - [直播信息流](live/message_stream.md)×
186 - [转正答题](newbie_exam)×
187 - [查询信息](newbie_exam/info.md)√
188 - [拉取题目](newbie_exam/fetch.md)√
189 - [操作](newbie_exam/action.md)√
190 - B币钱包
191 - 基本信息
192 - B币充值
193 - 贝壳相关
194 - 哔哩哔哩漫画
195 - 哔哩哔哩游戏
196 - 轻视频
197 - [终端网络查询](clientinfo)
198 - [基于ip的地理位置查询](clientinfo/ip.md)√
199 - [终端信息查询](clientinfo/client_info.md)√
200 - [其他](other)
201 - [获取当前时间戳](other/time_stamp.md)√
202 - [web端组件](web_widget)
203 - [分区当日投稿数](web_widget/zone_upload.md)√
204 - [404页漫画收集](web_widget/404_manga.md)√
205 - [APP端组件](APP_widget)
206 - [开屏图片](APP_widget/splash.md)√
207 - [个性装扮](garb)
208 - [APP主题](garb/skin.md)√
209 - [主题色](garb/color.md)√
44 计划整理分类 & 目录:(文档已完结请选中 checkbox)二级目录正在建设中.....
45
46 - [x] [API 签名](other/API_sign.md)
47 - [ ] [公共错误码](other/errcode.md)
48 - [x] [图片格式化](other/picture.md)
49 - [x] [bvid 说明](other/bvid_desc.md)
50 - [ ] [gRPC API 接口定义](grpc_api)
51 - [ ] [登录](login)
52 - [x] [登录操作(人机认证)](login/login_action)
53 - [x] [短信登录](login/login_action/SMS.md)
54 - [x] [密码登录](login/login_action/password.md)
55 - [x] [二维码登录](login/login_action/QR.md)
56 - [ ] SNS 登录(QQ & 微博)
57 - [x] [登录基本信息](login/login_info.md)
58 - [ ] [个人中心](login/member_center.md)
59 - [ ] [注销登录](login/exit.md)
60 - [x] [登录记录](login/login_notice.md)
61 - [ ] [消息中心](message)
62 - [ ] [通知类消息](message/msg.md)
63 - [ ] [私信](message/private_msg.md)
64 - [ ] [设置](message/config.md)
65 - [ ] [用户](user)
66 - [x] [基本信息](user/info.md)
67 - [x] [状态数](user/status_number.md)
68 - [x] [关系](user/relation.md)
69 - [ ] [个人空间](user/space.md)
70 - [x] [检查昵称是否可注册](user/check_nickname.md)
71 - [x] [用户注册](user/register.md)
72 - [x] [大会员福利兑换](user/vip.md)
73 - [ ] [视频](video)
74 - [x] [视频分区一览(分区代码)](video/video_zone.md)
75 - [x] [基本信息](video/info.md)
76 - [x] [状态数](video/status_number.md)
77 - [x] [快照](video/snapshot.md)
78 - [x] [点赞 & 投币 & 收藏](video/like_coin_fav.md)
79 - [ ] [TAG](video/tags.md)
80 - [x] [视频推荐](video/recommend.md)
81 - [x] [播放&下载地址(视频流)](video/videostream_url.md)
82 - [ ] [互动视频](video/interact_video.md)
83 - [x] [高能进度条](video/pbp.md)
84 - [ ] [信息上报(心跳及记录历史)](video/report.md)
85 - [x] [视频属性数据](video/attribute_data.md)
86 - [x] [视频在线人数](video/online.md)
87 - [ ] [剧集(番剧、影视)](bangumi)
88 - [ ] [基本信息](bangumi/info.md)
89 - [ ] 状态数
90 - [ ] 操作
91 - [ ] [视频弹幕](danmaku)
92 - [x] [protobuf 实时弹幕](danmaku/danmaku_proto.md)
93 - [x] [protobuf 弹幕元数据(BAS 弹幕 / 互动弹幕)](danmaku/danmaku_view_proto.md)
94 - [x] [xml 实时弹幕](danmaku/danmaku_xml.md)
95 - [x] [历史弹幕](danmaku/history.md)
96 - [x] [快照](danmaku/snapshot.md)
97 - [ ] [弹幕操作](danmaku/action.md)
98 - [ ] 高级弹幕
99 - [ ] 屏蔽管理
100 - [ ] 智能防挡弹幕
101 - [x] [弹幕个人配置修改](danmaku/config.md)
102 - [x] [名词解释](danmaku/buzzword.md)
103 - [x] [视频笔记](note)
104 - [x] [笔记列表](note/list.md)
105 - [x] [笔记详细信息](note/info.md)
106 - [x] [笔记操作](note/action.md)
107 - [ ] [专栏](article)
108 - [ ] 分区
109 - [ ] [基本信息](article/info.md)
110 - [ ] [点赞 & 投币 & 收藏 & 分享](article/like_coin_fav.md)
111 - [ ] [文集基本信息](article/articles.md)
112 - [ ] [音频](audio)
113 - [x] [歌曲基本信息](audio/info.md)
114 - [ ] [歌单 & 音频收藏夹详细信息](audio/music_list.md)
115 - [ ] [状态数](audio/status_number.md)
116 - [ ] [投币 & 收藏](audio/coin&fav.md)
117 - [x] [播放 & 下载地址(音频流)](audio/musicstream_url.md)
118 - [ ] 音频榜单
119 - [ ] [排行榜 & 最新视频](ranking&dynamic)
120 - [ ] [排行榜](ranking&dynamic/ranking.md)
121 - [ ] [最新视频](ranking&dynamic/dynamic.md)
122 - [ ] [搜索](search)
123 - [x] [搜索请求](search/search_request.md)
124 - [x] [搜索结果](search/search_response.md)
125 - [x] [默认搜索 & 热搜](search/hot.md)
126 - [x] [搜索建议](search/suggest.md)
127 - [ ] [小黑屋](blackroom)
128 - [ ] 基本信息
129 - [x] [封禁公示](blackroom/banlist.md)
130 - [x] [风纪委员及众裁案件相关](blackroom/jury)
131 - [x] [风纪委员基本信息](blackroom/jury/base_info.md)
132 - [x] [众裁案件基本信息](blackroom/jury/judgement_info.md)
133 - [x] [裁决操作](blackroom/jury/action.md)
134 - [x] [评论区](comment)
135 - [x] [评论区明细](comment/list.md)
136 - [x] [操作](comment/action.md)
137 - [ ] [表情](emoji)
138 - [x] [表情及表情包信息](emoji/list.md)
139 - [x] [操作](emoji/action.md)
140 - [ ] [创作中心](creativecenter)
141 - [ ] [统计与数据](creativecenter/statistics&data.md)
142 - [ ] 列表查询相关
143 - [x] [电磁力数据](creativecenter/railgun.md)
144 - [x] [实时广播(通讯协议)](broadcast)
145 - [x] [视频内广播](broadcast/video_room.md)
146 - [ ] [充电](electric)
147 - [x] [B币方式](electric/Bcoin.md)
148 - [x] [微信 & 支付宝方式](electric/WeChat&Alipay.md)
149 - [x] [充电留言](electric/charge_msg.md)
150 - [x] [充电列表](electric/charge_list.md)
151 - [ ] [动态](dynamic)
152 - [ ] [发送 & 转载动态](dynamic/publish.md)
153 - [ ] [根据关键字搜索用户(at 别人时的填充列表)](dynamic/atlist.md)
154 - [ ] [删除动态](dynamic/delete.md)
155 - [ ] 动态列表
156 - [x] [特定话题动态列表](/dynamic/tag_dynamics.md)
157 - [ ] [动态内容](/dynamic/get_dynamic_detail.md)
158 - [ ] 操作
159 - [ ] [相簿](album)
160 - [x] [基本信息](album/info.md)
161 - [x] [相簿列表](album/list.md)
162 - [x] [推荐作者](album/recommend_author.md)
163 - [x] [活动列表](album/activity_list.md)
164 - [x] [操作](album/action.md)
165 - [ ] 投稿
166 - [ ] [历史记录 & 稍后再看](history&toview)
167 - [x] [历史记录](history&toview/history.md)
168 - [x] [稍后再看](history&toview/toview.md)
169 - [ ] [收藏夹](fav)
170 - [x] [基本信息](fav/info.md)
171 - [x] [收藏夹内容](fav/list.md)
172 - [ ] [收藏夹操作](fav/action.md)
173 - [ ] [课程](cheese)
174 - [x] [课程基本信息](cheese/info.md)
175 - [ ] 已购课程
176 - [ ] 分区推荐列表
177 - [ ] 操作
178 - [x] [播放 & 下载地址(视频流)](cheese/videostream_url.md)
179 - [ ] [直播](live)
180 - [ ] [直播间基本信息](live/info.md)
181 - [ ] [直播分区](live/live_area.md)
182 - [ ] [直播间管理](live/manage.md)
183 - [ ] 直播间操作
184 - [ ] [直播视频流](live/live_stream.md)
185 - [ ] [直播信息流](live/message_stream.md)
186 - [ ] [转正答题](newbie_exam)
187 - [x] [查询信息](newbie_exam/info.md)
188 - [x] [拉取题目](newbie_exam/fetch.md)
189 - [x] [操作](newbie_exam/action.md)
190 - [ ] B币钱包
191 - [ ] 基本信息
192 - [ ] B币充值
193 - [ ] 贝壳相关
194 - [ ] 哔哩哔哩漫画
195 - [ ] 哔哩哔哩游戏
196 - [ ] 轻视频
197 - [ ] [终端网络查询](clientinfo)
198 - [x] [基于ip的地理位置查询](clientinfo/ip.md)
199 - [x] [终端信息查询](clientinfo/client_info.md)
200 - [ ] [其他](other)
201 - [x] [获取当前时间戳](other/time_stamp.md)
202 - [ ] [web端组件](web_widget)
203 - [x] [分区当日投稿数](web_widget/zone_upload.md)
204 - [x] [404 页漫画收集](web_widget/404_manga.md)
205 - [ ] [APP端组件](APP_widget)
206 - [x] [开屏图片](APP_widget/splash.md)
207 - [ ] [个性装扮](garb)
208 - [x] [APP 主题](garb/skin.md)
209 - [x] [主题色](garb/color.md)
210 210
211 211 B站专栏同步推出[《B站api研究记》](https://www.bilibili.com/read/readlist/rl207146)系列(更新状态:咕咕......),~~欢迎关注~~
212 212
@@ -214,29 +214,29 @@ B站专栏同步推出[《B站api研究记》](https://www.bilibili.com/read/rea
214 214
215 215 # 相关协议基础
216 216
217 http协议:[传送门](https://www.cnblogs.com/an-wen/p/11180076.html)
217 http 协议:[传送门](https://www.cnblogs.com/an-wen/p/11180076.html)
218 218
219 json序列格式:[传送门](https://www.sojson.com/json/json_index.html)
219 json 序列格式:[传送门](https://www.sojson.com/json/json_index.html)
220 220
221 xml序列格式:[传送门](https://www.w3school.com.cn/xml/xml_intro.asp)
221 xml 序列格式:[传送门](https://www.w3school.com.cn/xml/xml_intro.asp)
222 222
223 protobuf序列格式:[传送门](https://www.jianshu.com/p/a24c88c0526a )
223 protobuf 序列格式:[传送门](https://www.jianshu.com/p/a24c88c0526a )
224 224
225 225 # 交流
226 226
227 227 <img src="imgs/up_face.jpg" width="100" height="100">
228 228
229 QQ粉丝交流群:[1136462265](https://jq.qq.com/?_wv=1027&k=s1M0LCcu)
229 QQ 粉丝交流群:[1136462265](https://jq.qq.com/?_wv=1027&k=s1M0LCcu)
230 230
231 Telegram讨论组:[bilibili_API_collect_community](https://t.me/bilibili_API_collect_community)
231 Telegram 讨论组:[@bilibili_API_collect_community](https://t.me/bilibili_API_collect_community)
232 232
233 B站空间:<https://space.bilibili.com/293793435>
233 B 站空间:<https://space.bilibili.com/293793435>
234 234
235 235 个人博客:<https://shakaianee.top>
236 236
237 237 # 发电
238 238
239 欢迎来py,大家的支持就是我继续开发的动力!
239 欢迎来~~交♂易~~,大家的支持就是我继续开发的动力!
240 240
241 241 ~~请可爱的易姐喝杯奶茶~~
242 242
Modified danmaku/buzzword.md +2 -2
@@ -337,8 +337,8 @@ curl -G 'http://api.bilibili.com/x/v2/dm/buzzword/list' \
337 337
338 338 | 字段 | 类型 | 内容 | 备注 |
339 339 | -------- | ---- | ------------ | -------- |
340 | aid | num | 视频 avid | |
341 | cid | num | 视频 1P cid | |
340 | aid | num | 稿件 avid | |
341 | cid | num | 视频 cid | |
342 342 | name | str | 视频标题 | |
343 343 | link | str | 空 | |
344 344 | play | num | 播放数 | |
Deleted other/API_auth.md +0 -69
@@ -1,69 +0,0 @@
1 # API认证与鉴权
2
3 - [Cookie方式(web端)](#Cookie方式(web端))
4 - [APP方式(手机客户端及TV端等)](#APP方式(手机客户端及TV端等))
5
6
7 ## Cookie方式(web端)
8
9 cookie中的值在访问登录接口成功登录时,用`set-cookie`写入
10
11 在访问api时为`Cookie`头的数据
12
13 Token有效期为1月,更改密码或过期失效
14
15 | cookie项 | 含义 | 备注 |
16 | ----------------- | ----------------- | ------------------------------------------ |
17 | DedeUserID | 当前用户mid | |
18 | DedeUserID__ckMd5 | 用户mid md5校验值 | |
19 | SESSDATA | 登录Token | 用于用户识别与鉴权<br />作用同`access_key` |
20 | bili_jct | CSRF Token | 用于操作性接口 |
21
22 ## APP方式(手机客户端及TV端等)
23
24 | 参数 | 含义 | 备注 |
25 | ------------- | ---------------- | ---------------------- |
26 | access_key | APP登录Token | 注意必须在第一个参数 |
27 | appkey | APP密钥 | |
28 | refresh_token | APP刷新登录Token | 仅在刷新时使用 |
29 | ts | 当前时间戳 | |
30 | sign | APP签名 | 注意必须在最后一个参数 |
31
32 **接口鉴权:**
33
34 使用`appkey`作为api的必要参数,并使用除`sign`外所有参数的url字串后连接相对应的盐值进行**md5校验**(32位小写),把计算结果作为sign的值,与前面参数一同发送
35
36 **appkey与appsec一一对应**
37
38 已知的appkey与签名:
39
40 | appkey | appsec(sign盐值) | 平台 | 应用 | 备注 |
41 | ---------------- | -------------------------------- | ---- | -------- | -------- |
42 | 07da50c9a0bf829f | 25bdede4e1581c836cab73a48790ca6e | 安卓 | 概念版 | |
43 | 1d8b6e7d45233436 | 560c52ccd288fed045859ed18bffd973 | 安卓 | 客户端 | 一般用途 |
44 | 178cf125136ca8ea | 34381a26236dd1171185c0beb042e1c6 | 安卓 | 概念版 | |
45 | 37207f2beaebf8d7 | e988e794d4d4b6dd43bc0e89d6e90c43 | 安卓 | biliLink | |
46 | 4409e2ce8ffd12b8 | 59b43e04ad6965f34319062b478f83dd | TV | 客户端 | |
47 | 57263273bc6b67f6 | a0488e488d1567960d3a765e8d129f90 | 安卓 | 客户端 | |
48 | 5dce947fe22167f9 | | 安卓 | 必剪 | |
49 | 7d336ec01856996b | a1ce6983bc89e20a36c37f40c4f1a0dd | 安卓 | 概念版 | |
50 | 85eb6835b0a1034e | 2ad42749773c441109bdc0191257a664 | | | |
51 | 8e16697a1b4f8121 | f5dd03b752426f2e623d7badb28d190a | 安卓 | 国际版 | |
52 | aae92bc66f3edfab | af125a0d5279fd576c1b4418a3e8276d | PC | 投稿工具 | |
53 | ae57252b0c09105d | c75875c596a69eb55bd119e74b07cfe3 | 安卓 | 国际版 | |
54 | bb3101000e232e27 | 36efcfed79309338ced0380abd824ac1 | 安卓 | 国际版 | |
55 | bca7e84c2d947ac6 | 60698ba2f68e01ce44738920a0ffe768 | 安卓 | 客户端 | 登录专用 |
56 | cc578d267072c94d | | 安卓 | 轻视频 | |
57 | cc8617fd6961e070 | | 安卓 | 漫画 | |
58 | iVGUTjsxvpLeuDCf | aHRmhWMLkdeMuILqORnYZocwMBpMEOdt | 安卓 | 客户端 | 取流专用 |
59
60 例如:
61
62 参数的url为`appkey=1d8b6e7d45233436&test=123`->连接盐值后为`appkey=1d8b6e7d45233436&test=123560c52ccd288fed045859ed18bffd973`->进行md5 32bit校验,结果为`8a3fdd74911862810f5c78f65afcce5d`->最终参数为`appkey=1d8b6e7d45233436&test=123&sign=8a3fdd74911862810f5c78f65afcce5d`
63
64 **身份认证:**
65
66 使用参数` access_key `进行身份验证,有效期为1月,作用同`SESSDATA`
67
68 可以使用` refresh_token `进行刷新
Added other/API_sign.md +83 -0
@@ -0,0 +1,83 @@
1 # API 签名与鉴权
2
3 部分客户端专用的 rest api 存在基于 sign 的鉴权,需要使用规定的`appkey`及其对应的`appsec`与原始请求参数进行签名计算
4
5 不同`appkey`对应不同的 app (如客户端、概念版、必剪、漫画、bililink等)
6
7 不同平台同 app 也会存在不同的 `appkey`(如安卓端、ios端、TV端等)
8
9 同平台同 app 下不同功能也会存在不同的 `appkey`(如登录专用、取流专用等)
10
11 **appkey与appsec一一对应**
12
13 - [API 签名的计算方式](#API 签名的计算方式)
14 - [已知的 APPKey](#已知的 APPKey)
15
16 ---
17
18 ## API 签名的计算方式
19
20 首先为参数中添加`appkey`字段,然后按照参数的 key 重新排序,再将重排序后的参数使用 url query 格式序列化拼接与该 appkey 相对应的 appsec (盐值) 进行**md5 hash计算**(32位小写),该 hash 便是 API 签名
21
22 为参数尾部增添`sign`字段,它的值为上一步计算所得的 hash,一并作为表单提交
23
24 **实例:**
25
26 使用 appkey = `1d8b6e7d45233436`, appsec = `560c52ccd288fed045859ed18bffd973` 对如下 `params` 参数进行签名
27
28 ```python
29 import hashlib
30 import urllib.parse
31
32 def appsign(params, appkey, appsec):
33 '为请求参数进行 api 签名'
34 params.update({'appkey': appkey})
35 params = dict(sorted(params.items())) # 重排序参数 key
36 query = urllib.parse.urlencode(params) # 序列化参数
37 sign = hashlib.md5((query+appsec).encode()).hexdigest() # 计算 api 签名
38 params.update({'sign':sign})
39 return params
40
41 appkey = '1d8b6e7d45233436'
42 appsec = '560c52ccd288fed045859ed18bffd973'
43 params = {
44 'id':114514,
45 'str':'1919810',
46 'test':'いいよ,こいよ',
47 }
48 signed_params = appsign(params, appkey, appsec)
49 query = urllib.parse.urlencode(signed_params)
50 print(signed_params)
51 print(query)
52 ```
53
54 输出以下内容,分别是进行 api 签名后参数的 dict 以及 url query 格式
55
56 ```
57 {'appkey': '1d8b6e7d45233436', 'id': 114514, 'str': '1919810', 'test': 'いいよ,こいよ', 'sign': '01479cf20504d865519ac50f33ba3a7d'}
58 appkey=1d8b6e7d45233436&id=114514&str=1919810&test=%E3%81%84%E3%81%84%E3%82%88%EF%BC%8C%E3%81%93%E3%81%84%E3%82%88&sign=01479cf20504d865519ac50f33ba3a7d
59 ```
60
61 ## 已知的 APPKey
62
63 | appkey | appsec(sign盐值) | 平台 | 应用 | 备注 |
64 | ---------------- | -------------------------------- | ---- | -------- | -------- |
65 | 07da50c9a0bf829f | 25bdede4e1581c836cab73a48790ca6e | 安卓 | 概念版 | |
66 | 1d8b6e7d45233436 | 560c52ccd288fed045859ed18bffd973 | 安卓 | 客户端 | 一般用途 |
67 | 178cf125136ca8ea | 34381a26236dd1171185c0beb042e1c6 | 安卓 | 概念版 | |
68 | 27eb53fc9058f8c3 | c2ed53a74eeefe3cf99fbd01d8c9c375 | ios | 客户端 | 一般用途 |
69 | 37207f2beaebf8d7 | e988e794d4d4b6dd43bc0e89d6e90c43 | 安卓 | biliLink | |
70 | 4409e2ce8ffd12b8 | 59b43e04ad6965f34319062b478f83dd | TV | 客户端 | |
71 | 57263273bc6b67f6 | a0488e488d1567960d3a765e8d129f90 | 安卓 | 客户端 | |
72 | 5dce947fe22167f9 | | 安卓 | 必剪 | |
73 | 7d336ec01856996b | a1ce6983bc89e20a36c37f40c4f1a0dd | 安卓 | 概念版 | |
74 | 85eb6835b0a1034e | 2ad42749773c441109bdc0191257a664 | | | |
75 | 8e16697a1b4f8121 | f5dd03b752426f2e623d7badb28d190a | 安卓 | 国际版 | |
76 | aae92bc66f3edfab | af125a0d5279fd576c1b4418a3e8276d | PC | 投稿工具 | |
77 | ae57252b0c09105d | c75875c596a69eb55bd119e74b07cfe3 | 安卓 | 国际版 | |
78 | bb3101000e232e27 | 36efcfed79309338ced0380abd824ac1 | 安卓 | 国际版 | |
79 | bca7e84c2d947ac6 | 60698ba2f68e01ce44738920a0ffe768 | 安卓 | 客户端 | 登录专用 |
80 | cc578d267072c94d | | 安卓 | 轻视频 | |
81 | cc8617fd6961e070 | | 安卓 | 漫画 | |
82 | iVGUTjsxvpLeuDCf | aHRmhWMLkdeMuILqORnYZocwMBpMEOdt | 安卓 | 客户端 | 取流专用 |
83 | YvirImLGlLANCLvM | JNlZNgfNGKZEpaDTkCdPQVXntXhuiJEM | ios | 客户端 | 取流专用 |