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

XFEstudio/bilibili-API-collect

add contributing guide

3893a32
SocialSisterYi <1440239038@qq.com>
提交于

代码差异

2 个文件 +219 -13
Modified README.md +23 -13
@@ -29,9 +29,7 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
29 29
30 30 联动项目:[Hsury/Bilibili-Toolkit](https://github.com/Hsury/Bilibili-Toolkit)
31 31
32
33 **声明**:
32 ## **⚠️声明**
34 33
35 34 1. 本项目遵守 CC-BY-NC 4.0 协议,禁止一切商业使用,如需转载请注明作者 ID
36 35 2. **请勿滥用,本项目仅用于学习和测试!请勿滥用,本项目仅用于学习和测试!请勿滥用,本项目仅用于学习和测试!**
@@ -39,9 +37,21 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
39 37 4. 由于本项目的特殊性,可能随时停止开发或删档
40 38 5. 本项目为开源项目,不接受任何形式的催单和索取行为,更不容许存在付费内容
41 39
40 ## 🌱参与贡献
41
42 欢迎各位 dalao 对本项目做出贡献,也希望每个使用者都能提出宝贵的意见
43
44 目前本项目存在的问题包括但不限于:
45
46 1. 文档二级目录尚未完成
47 2. 文档需要使用 Vue Press 构建 html 版本发布
48 3. 部分文档较旧,修改与更新没有跟进
49
50 更多信息请浏览 [贡献指南](contributing_guide.md)
51
52 ## 🍴目录
42 53
43 计划整理分类 & 目录:(文档已完结请选中 checkbox) 二级目录正在建设中.....
54 计划整理分类 & 目录:(文档已完结请选中 checkbox)
44 55
45 56 - [x] [API 签名](other/API_sign.md)
46 57 - [x] [公共错误码](other/errcode.md)
@@ -225,13 +235,13 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
225 235 - [x] [APP 主题](garb/skin.md)
226 236 - [x] [主题色](garb/color.md)
227 237
228 # 鸣谢
238 ## ✨鸣谢
229 239
230 240 你们的存在,让社区更美好
231 241
232 242 [![contributors](https://opencollective.com/bilibili-api-collect/contributors.svg?width=860&button=false)](https://github.com/SocialSisterYi/bilibili-API-collect/graphs/contributors)
233 243
234 # 相关协议基础
244 ## 📖相关协议基础
235 245
236 246 http 协议:[传送门](https://www.cnblogs.com/an-wen/p/11180076.html)
237 247
@@ -241,7 +251,7 @@ xml 序列格式:[传送门](https://www.w3school.com.cn/xml/xml_intro.asp)
241 251
242 252 protobuf 序列格式:[传送门](https://www.jianshu.com/p/a24c88c0526a )
243 253
244 # 交流
254 ## 💦交流
245 255
246 256 <img src="imgs/up_face.jpg" width="100" height="100">
247 257
@@ -255,7 +265,7 @@ B 站空间:<https://space.bilibili.com/293793435>
255 265
256 266 个人博客:<https://shakaianee.top>
257 267
258 # 发电
268 ## 🧋发电
259 269
260 270 欢迎来~~交♂易~~,大家的支持就是我继续开发的动力!
261 271
@@ -267,9 +277,9 @@ WeChat & Alipay:
267 277
268 278 OR Aifadian:https://afdian.net/@ShakaiAneE
269 279
270 # 相关项目推荐
280 ## 🔗相关项目推荐
271 281
272 ## 库及文档
282 ### 库及文档
273 283
274 284 - [jingyuexing/bilibiliAPI](https://github.com/jingyuexing/bilibiliAPI)
275 285 - [fython/BilibiliAPIDocs](https://github.com/fython/BilibiliAPIDocs)
@@ -285,7 +295,7 @@ OR Aifadian:https://afdian.net/@ShakaiAneE
285 295 - [ddiu8081/blive-message-listener](https://github.com/ddiu8081/blive-message-listener): Bilibili-live danmu listener with type. Bilibili 直播间弹幕监听库,支持类型输出。
286 296 - [Nemo2011/bilibili-api](https://github.com/Nemo2011/bilibili-api): 哔哩哔哩常用API调用。支持视频、番剧、用户、频道、音频等功能。工具齐全。
287 297
288 ## 成品
298 ### 成品
289 299
290 300 - [NullPointerException/AnimePipe](https://codeberg.org/NullPointerException/AnimePipe): 功能完善的Android流媒体综合客户端,支持Bilibili, Youtube, NicoNico
291 301 - [3Shain/BiliChat](https://github.com/3Shain/BiliChat) : 基于h5的B站直播弹幕姬
@@ -312,7 +322,7 @@ OR Aifadian:https://afdian.net/@ShakaiAneE
312 322 - [SocialSisterYi/bcut-asr](https://github.com/SocialSisterYi/bcut-asr): 使用必剪API的语音字幕识别
313 323 - [CzJam/Bili_Realtime_Data](https://github.com/CzJam/Bili_Realtime_Data): Bilibili粉丝与视频实时数据统计
314 324
315 ## 其他
325 ### 其他
316 326
317 327 - [kuresaru/geetest-validator](https://github.com/kuresaru/geetest-validator):geetest调试器
318 328
Added contributing_guide.md +196 -0
@@ -0,0 +1,196 @@
1 # bilibili-API-collect
2
3 欢迎来到 bilibili-API-collect 社区贡献指南,本文主要面向需要进行提交贡献文档内容的用户。
4
5 ## 总则
6
7 [bilibili-API-collect](https://github.com/SocialSisterYi/bilibili-API-collect) 项目(简称 BAC 或 b-a-c)是一个仅用于学习研究、社区开源、公益性质的 [B站(哔哩哔哩)](https://www.bilibili.com/) API(应用程序接口) 文档,使用 [CC-BY-NC 4.0 协议](LICENSE) 开源,它将无差别收集整理相关的**主站业务接口**。
8
9 该项目使用 [MarkDown](https://zh.wikipedia.org/zh-cn/Markdown) 语法进行文档书写,按照业务类型及功能以 **路径** + **文件** 形式索引,任何用户都可通过 Pull Request 提供自己分析出的接口地址与使用说明。
10
11 本项目收集的接口类型包括但不限于 REST API、gRPC、WebSocket,文档内统一优先使用安全套接字协议,如`https`、`securityRpc`、`wss`。
12
13 ## 目录与路径结构
14
15 ### 目录
16
17 文档目录以 **列表** 语法写在 [README.md](README.md) 中,使用缩进标识文档的层级,如`视频`下存在`基本信息`、`快照`、`推荐`等子分类
18
19 ### 路径
20
21 路径层级应当与文档目录一致,以文件夹的形式存放在项目中,命名统一使用英文,如`video`、`danmaku`、`comment`
22
23 二级、三级路径应当存在二级三级目录,以`README.md`的形式
24
25 ### 文件
26
27 各个子接口集整理为 md 文件,命名统一使用英文,如`info.md`、`action.md`、`list.md`
28
29 文档文件中用于存放相关的接口的说明,如`video/`下的`info.md`,存在`查询视频基本信息`、`查询视频简介`、`查询视频分P列表`等内容
30
31 ## 文档内容格式
32
33 注:以下文档范式可根据**实际情况**进行调整
34
35 ### 头部
36
37 文档首行为 **一级标签** 格式标题
38
39 标题下方为索引,与正文二级标题对应,使用 **列表** 语法与缩进,每项使用 **超链接** 语法实现 id 锚点跳转
40
41 头部结束应使用 **分隔线** 语法划线分割
42
43 ```markdown
44 # 视频
45
46 - [获取视频详细信息](#获取视频详细信息)
47 - [获取视频简介](#获取视频简介)
48
49 ---
50 ```
51
52 ### 接口说明
53
54 文档中可存在多个接口说明,应当遵守同一范式,依次排列在文档中
55
56 接口说明分为`标题`、`地址`、`说明`、`请求参数`、`响应正文`、`示例`这些部分
57
58 接口标题为 **二级以下** 的标签,接口地址使用 **引用** 语法,地址只保留 REST API 路径,不应携带 query 等内容
59
60 接口地址下方需要注明接口的请求方式,如`GET`、`POST`、`PUT`等,使用 **斜体** 语法
61
62 若接口存在认证或鉴权,需要在说明中注明,如`Cookie(SESSDATA)`、`APP`(认证是针对用户的,鉴权是针对接口使用的
63
64 其他使用说明也可写在这里,如`限制游客访问的视频需要登录`
65
66 eg:
67
68 ```markdown
69 ## 获取视频详细信息_web端
70
71 > https://api.bilibili.com/x/web-interface/view
72
73 *请求方式:GET*
74
75 认证方式:Cookie(SESSDATA)
76
77 限制游客访问的视频需要登录
78 ```
79
80 **请求参数**应在**接口说明**的下方,应注明参数类型 url 参数或 正文参数(正文参数应注明 content-type,如`application/x-www-form-urlencoded`或`multipart/form-data`),使用 **加粗** 语法
81
82 对象的字段及其含义使用 **表格** 进行整理,表头统一为`参数名`、`类型`、`内容`、`必要性`、`备注`,类型为`num`、`str`、`bool`、`nums`、`strs`、`file`等,必要性为`必要`、`非必要`、`必要(可选)`等,表格内每个字段为一行
83
84 eg:
85
86 | 参数名 | 类型 | 内容 | 必要性 | 备注 |
87 | ------ | ---- | --------- | ----------- | ----------------- |
88 | aid | num | 稿件 avid | 必要 (可选) | avid 与 bvid 任选 |
89 | bvid | str | 稿件 bvid | 必要 (可选) | avid 与 bvid 任选 |
90
91 **响应正文**应在**请求参数**的下方,接口响应的数据格式应标注,如`JSON回复`、`XML回复`、`Protobuf回复`,使用 **加粗** 语法
92
93 json object 或 protobuf message 应以对象的 **表格** 形式书写,表头为`根对象`或`xx中的yy对象`,若对象位于数组中为`xx数组中的对象`
94
95 表头统一为`字段`、`类型`、`内容`、`备注`,类型为 JSON / Protobuf 的标准类型
96
97 不明确定义的字段说明在末尾添加问号,如`播放数?`;定义尚未明确的字段使用问号包于括号中占位,如`(?)`
98
99 多个对象及数组,使用**遍历树**的顺序进行排列
100
101 eg:
102
103 `data`对象:
104
105 | 字段 | 类型 | 内容 | 备注 |
106 | ------ | ---- | ----------- | -------- |
107 | bvid | str | 稿件 bvid | |
108 | aid | num | 稿件 avid | |
109 | videos | num | 稿件分P总数 | 默认为 1 |
110 | tid | num | 分区 tid | |
111
112 json array 或 protobuf repeated 类型使用数组的 **表格** 形式书写,表头统一为`项`、`类型`、`内容`、`备注`,无限长度数组表尾需要添加**省略号**
113
114 数组每项内容若与实际数据有关联,`内容`字段则可标为`(n+1)P 视频内容`这样的形式
115
116 eg:
117
118 `data`中的`pages`数组:
119
120 | 项 | 类型 | 内容 | 备注 |
121 | ---- | ---- | --------------- | ------------- |
122 | 0 | obj | 1P 视频内容 | 无分P仅有此项 |
123 | n | obj | (n+1)P 视频内容 | |
124 | …… | obj | …… | …… |
125
126 **示例**部分位于所有**响应正文**部分下方,需要**加粗**格式,分为请求命令示例与响应体示例两部分
127
128 请求命令示例为一段可测试该接口的 curl 命令或 Python 脚本,使用 **代码块** 语法书写,命令应当尽可能简短、便于使人阅读
129
130 示例命令中的认证信息应做**脱敏处理**,如 Cookie、Token、access_key 等,可替换为`xxx`占位
131
132 示例命令前后可以适当添加一些文字说明
133
134 响应体示例为一段格式化后的 JSON 或 protobuf message,使用 **代码块** 语法书写,并使用`<details>`标签进行折叠
135
136 eg:
137
138 **示例:**
139
140 获取视频`av85440373`的基本信息
141
142 ```shell
143 curl -G 'https://api.bilibili.com/x/web-interface/view' \
144 --data-urlencode 'aid=85440373'
145 ```
146
147 ```html
148 <details>
149 <summary>查看响应示例:</summary>
150 ```
151
152 ```json
153 {
154 "code": 0,
155 "message": "0",
156 "ttl": 1,
157 "data": {
158 "bvid": "BV117411r7R1",
159 "aid": 85440373,
160 "videos": 1,
161 "tid": 28,
162 "tname": "原创音乐",
163 "copyright": 1,
164 ...
165 ```
166
167 ```html
168 </details>
169 ```
170
171 ### 枚举值与属性位
172
173 接口返回或请求中若存在一些 enum 类型或二进制属性位,应当单独进行探讨,如视频的属性位`attribute`或视频清晰度`qn`
174
175 这些值及其说明使用 **表格** 进行整理,表头统一为`位` / `代码` / `值`、`含义`、`备注`
176
177 这些枚举值或属性位的用法应附加文字说明
178
179 eg:
180
181 | 值 | 含义 | 备注 |
182 | ---- | ------------- | ------------------------------------------------------------ |
183 | 6 | 240P 极速 | 仅 MP4 格式支持<br />仅`platform=html5`时有效 |
184 | 16 | 360P 流畅 | |
185 | 32 | 480P 清晰 | |
186 | 64 | 720P 高清 | WEB 端默认值<br />B站前端需要登录才能选择,但是直接发送请求可以不登录就拿到 720P 的取流地址<br />**无 720P 时则为 720P60** |
187 | 74 | 720P60 高帧率 | 登录认证 |
188 | 80 | 1080P 高清 | TV 端与 APP 端默认值<br />登录认证 |
189
190 ## 文档提交
191
192 TODO
193
194 ## Issue与社群讨论
195
196 TODO