8
.gitignore
vendored
@ -1,7 +1 @@
|
||||
|
||||
login/password&SMS.md
|
||||
B站API.txt
|
||||
live/info_flow.md
|
||||
bangumi/info.md
|
||||
bangumi/ststus_number.md
|
||||
live/live_manage.md
|
||||
mkdocs/html/*
|
138
APP_widget/splash.md
Normal file
@ -0,0 +1,138 @@
|
||||
# APP端开屏图片
|
||||
|
||||
## 获取APP端开屏图片列表
|
||||
|
||||
> http://app.bilibili.com/x/v2/splash/brand/list
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
鉴权方式:APP
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ---------- | ----------- | ---- |
|
||||
| appkey | str | APP密钥 | APP方式必要 | |
|
||||
| ts | num | 当前时间戳 | APP方式必要 | |
|
||||
| sign | str | APP签名 | APP方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ---------------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-3:API校验密匙错误<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------- | ----- | ------------ | ------------ |
|
||||
| pull_interval | num | 1800 | 作用尚不明确 |
|
||||
| forcibly | bool | false | 作用尚不明确 |
|
||||
| rule | str | order | 作用尚不明确 |
|
||||
| list | array | 开屏图片列表 | |
|
||||
| show | array | 默认显示项 | |
|
||||
|
||||
`data`中的`list`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------- | ---- |
|
||||
| 0 | obj | 开屏图片1 | |
|
||||
| n | obj | 开屏图片(n+1) | |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`list`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | --------------------- | ---- |
|
||||
| id | num | 开屏图片ID | |
|
||||
| thumb | str | 开屏图片url | |
|
||||
| logo_url | str | “bilibili”logo图片url | |
|
||||
|
||||
`data`中的`show`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ---------- | ---- |
|
||||
| 0 | obj | 套了个娃? | |
|
||||
|
||||
`show`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | ---------- | ------------ |
|
||||
| id | num | 开屏图片ID | |
|
||||
| begin_time | num | 起始时间? | 时间戳 |
|
||||
| end_time | num | 结束时间? | 时间戳 |
|
||||
| probability | num | 0 | 作用尚不明确 |
|
||||
| duration | num | 显示时间? | 单位为毫秒 |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -G 'http://app.bilibili.com/x/v2/splash/brand/list' \
|
||||
--data-urlencode 'appkey=1d8b6e7d45233436' \
|
||||
--data-urlencode 'ts=0' \
|
||||
--data-urlencode 'sign=78a89e153cd6231a4a4d55013aa063ce'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"pull_interval": 1800,
|
||||
"forcibly": false,
|
||||
"rule": "order",
|
||||
"list": [
|
||||
{
|
||||
"id": 10,
|
||||
"thumb": "http://i0.hdslb.com/bfs/archive/e2d2f57e08b511d1a47203859f7bddb4ef9d4e16.png",
|
||||
"logo_url": "http://i0.hdslb.com/bfs/archive/ecc9b29bb4b803daf2a46fe5ef71bf530300162c.png"
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"thumb": "http://i0.hdslb.com/bfs/archive/fe737da5cdedf9dad038e5fd30e957be8a063bc2.png",
|
||||
"logo_url": "http://i0.hdslb.com/bfs/archive/ecc9b29bb4b803daf2a46fe5ef71bf530300162c.png"
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"thumb": "http://i0.hdslb.com/bfs/archive/574469a4a20f41ba4dc9ecd41d15f94eea875ed9.png",
|
||||
"logo_url": "http://i0.hdslb.com/bfs/archive/ecc9b29bb4b803daf2a46fe5ef71bf530300162c.png"
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"thumb": "http://i0.hdslb.com/bfs/archive/af0f4f611faa34340bd4f91def1973ccbfb8fbb3.png",
|
||||
"logo_url": "http://i0.hdslb.com/bfs/archive/ecc9b29bb4b803daf2a46fe5ef71bf530300162c.png"
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"thumb": "http://i0.hdslb.com/bfs/archive/1d40e975b09d5c87b11b3ae0c9ce6c6b82f63d9e.png",
|
||||
"logo_url": "http://i0.hdslb.com/bfs/archive/ecc9b29bb4b803daf2a46fe5ef71bf530300162c.png"
|
||||
}
|
||||
],
|
||||
"show": [
|
||||
{
|
||||
"id": 12,
|
||||
"begin_time": 1597564800,
|
||||
"end_time": 1630753108,
|
||||
"probability": 0,
|
||||
"duration": 700
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
如ID=11的图片为:
|
||||
|
||||
![]( http://i0.hdslb.com/bfs/archive/fe737da5cdedf9dad038e5fd30e957be8a063bc2.png )
|
||||
|
112
LICENSE
@ -1,21 +1,99 @@
|
||||
MIT License
|
||||
Creative Commons Attribution 4.0 International
|
||||
|
||||
Copyright (c) 2020 社会易姐QwQ
|
||||
Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
Using Creative Commons Public Licenses
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
Considerations for licensors: Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC-licensed material, or material used under an exception or limitation to copyright. More considerations for licensors : wiki.creativecommons.org/Considerations_for_licensors
|
||||
|
||||
Considerations for the public: By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensor's permission is not necessary for any reason–for example, because of any applicable exception or limitation to copyright–then that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described. Although not required by our licenses, you are encouraged to respect those requests where reasonable. More considerations for the public : wiki.creativecommons.org/Considerations_for_licensees
|
||||
|
||||
Creative Commons Attribution 4.0 International Public License
|
||||
|
||||
By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions.
|
||||
|
||||
Section 1 – Definitions.
|
||||
|
||||
a. Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image.
|
||||
b. Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License.
|
||||
c. Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.
|
||||
d. Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements.
|
||||
e. Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material.
|
||||
f. Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License.
|
||||
g. Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license.
|
||||
h. Licensor means the individual(s) or entity(ies) granting rights under this Public License.
|
||||
i. Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them.
|
||||
j. Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world.
|
||||
k. You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning.
|
||||
Section 2 – Scope.
|
||||
|
||||
a. License grant.
|
||||
1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to:
|
||||
A. reproduce and Share the Licensed Material, in whole or in part; and
|
||||
B. produce, reproduce, and Share Adapted Material.
|
||||
2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions.
|
||||
3. Term. The term of this Public License is specified in Section 6(a).
|
||||
4. Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material.
|
||||
5. Downstream recipients.
|
||||
A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License.
|
||||
B. No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material.
|
||||
6. No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i).
|
||||
b. Other rights.
|
||||
1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise.
|
||||
2. Patent and trademark rights are not licensed under this Public License.
|
||||
3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties.
|
||||
Section 3 – License Conditions.
|
||||
|
||||
Your exercise of the Licensed Rights is expressly made subject to the following conditions.
|
||||
|
||||
a. Attribution.
|
||||
1. If You Share the Licensed Material (including in modified form), You must:
|
||||
A. retain the following if it is supplied by the Licensor with the Licensed Material:
|
||||
i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated);
|
||||
ii. a copyright notice;
|
||||
iii. a notice that refers to this Public License;
|
||||
iv. a notice that refers to the disclaimer of warranties;
|
||||
v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable;
|
||||
B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and
|
||||
C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License.
|
||||
2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information.
|
||||
3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable.
|
||||
4. If You Share Adapted Material You produce, the Adapter's License You apply must not prevent recipients of the Adapted Material from complying with this Public License.
|
||||
Section 4 – Sui Generis Database Rights.
|
||||
|
||||
Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material:
|
||||
|
||||
a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database;
|
||||
b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and
|
||||
c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database.
|
||||
For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights.
|
||||
|
||||
Section 5 – Disclaimer of Warranties and Limitation of Liability.
|
||||
|
||||
a. Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You.
|
||||
b. To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You.
|
||||
c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability.
|
||||
Section 6 – Term and Termination.
|
||||
|
||||
a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically.
|
||||
b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates:
|
||||
1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or
|
||||
2. upon express reinstatement by the Licensor.
|
||||
c. For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License.
|
||||
d. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License.
|
||||
e. Sections 1, 5, 6, 7, and 8 survive termination of this Public License.
|
||||
Section 7 – Other Terms and Conditions.
|
||||
|
||||
a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed.
|
||||
b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License.
|
||||
Section 8 – Interpretation.
|
||||
|
||||
a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License.
|
||||
b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions.
|
||||
c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor.
|
||||
d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority.
|
||||
Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses.
|
||||
|
||||
Creative Commons may be contacted at creativecommons.org.
|
||||
|
208
README.md
@ -1,29 +1,55 @@
|
||||
<img src="/imgs/Mylogo.png" align="right" width="250" height="200"/>
|
||||
<p align="center">
|
||||
<img src="imgs/Mylogo.png" width="250" height="200">
|
||||
</p>
|
||||
<h1 align="center">哔哩哔哩-API收集整理</h1>
|
||||
<p align="center">
|
||||
<a href="https://github.com/SocialSisterYi/bilibili-API-collect/issues" style="text-decoration:none">
|
||||
<img src="https://img.shields.io/github/issues/SocialSisterYi/bilibili-API-collect.svg" alt="GitHub issues"/>
|
||||
</a>
|
||||
<a href="https://github.com/SocialSisterYi/bilibili-API-collect/stargazers" style="text-decoration:none" >
|
||||
<img src="https://img.shields.io/github/stars/SocialSisterYi/bilibili-API-collect.svg" alt="GitHub stars"/>
|
||||
</a>
|
||||
<a href="https://github.com/SocialSisterYi/bilibili-API-collect/network" style="text-decoration:none" >
|
||||
<img src="https://img.shields.io/github/forks/SocialSisterYi/bilibili-API-collect.svg" alt="GitHub forks"/>
|
||||
</a>
|
||||
<a href="https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/LICENSE" style="text-decoration:none" >
|
||||
<img src="https://img.shields.io/github/license/SocialSisterYi/bilibili-API-collect.svg" alt="GitHub license"/>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
# 哔哩哔哩-API收集整理
|
||||
|
||||
**野生API文档**
|
||||
<h3 align="center">野生API文档</h3>
|
||||
<h3 align="center">不断更新中....</h3>
|
||||
本项目旨在对B站web端、移动端以及TV端散落在世界各地的野生api进行收集整理,研究使用方法并对其进行说明,运用了黑箱法、控制变量法、js逆向分析法、网络抓包法等研究办法
|
||||
|
||||
**不断更新中....**
|
||||
所有api均为标准http协议,返回数据大都为json或protobuf
|
||||
|
||||
本项目对B站web端散落在世界各地的野生api进行收集整理,以及研究使用方法并对其进行说明
|
||||
PS:所有http协议地址均可使用https,文档中为了统一写作`http`,为了数据安全建议所有接口使用https
|
||||
|
||||
所有api均为标准http协议,返回值大都为json
|
||||
小小的Demo:[av583785685](https://www.bilibili.com/video/av583785685)
|
||||
|
||||
<img src="/imgs/bilibili.svg" width="200" height="100"/>
|
||||
---
|
||||
|
||||
计划整理分类&目录:(√代表已完成,x代表正在施工...)
|
||||
计划整理分类&目录:(√代表已完成,x代表正在施工...)二级目录正在建设中.....
|
||||
|
||||
- cookie
|
||||
- [API认证与鉴权(APP与Cookie方式)](other/API_auth.md)×
|
||||
- [公共错误码](other/errcode.md)√
|
||||
- [图片格式化](other/picture.md)√
|
||||
- [bvID说明](other/bvID.md)√
|
||||
- [登录](login)
|
||||
- [二维码登录](login/QR.md)√
|
||||
- 密码&短信登录
|
||||
- qq&微博登录
|
||||
- [登录操作(人机认证)](login/login_action)√
|
||||
+ [短信登录](login/login_action/SMS.md)√
|
||||
+ [密码登录](login/login_action/password.md)√
|
||||
+ [二维码登录](login/login_action/QR.md)√
|
||||
+ SNS登录(QQ&微博)
|
||||
- [登录基本信息](login/login_info.md)√
|
||||
- 在线用户
|
||||
- [消息](login/msg.md)x
|
||||
- [私信](login/private_msg.md)x
|
||||
- [个人中心](login/member_center.md)×
|
||||
- [注销登录](login/exit.md)×
|
||||
- [登录记录](login/login_notice.md)√
|
||||
- [消息中心](message)
|
||||
- [通知类消息](message/msg.md)×
|
||||
- [私信](message/private_msg.md)×
|
||||
- [设置](message/config.md)×
|
||||
- [用户](user)
|
||||
- [基本信息](user/info.md)√
|
||||
- [状态数](user/status_number.md)√
|
||||
@ -38,76 +64,112 @@
|
||||
- [点赞&投币&收藏](video/like_coin_fav.md)√
|
||||
- [TAG](video/tags.md)x
|
||||
- [视频推荐](video/recommend.md)√
|
||||
- 播放&下载地址
|
||||
- 互动视频
|
||||
- 实时观看人数
|
||||
- 高能进度条
|
||||
- 番剧(影视)
|
||||
- 基本信息
|
||||
- [播放&下载地址(视频流)](video/videostream_url.md)√
|
||||
- [互动视频](video/interact_video.md)×
|
||||
- [高能进度条](video/pbp.md)√
|
||||
- [信息上报(心跳及记录历史)](video/report.md)×
|
||||
- [剧集(番剧、影视)](bangumi)
|
||||
- [基本信息](bangumi/info.md)×
|
||||
- 状态数
|
||||
- 操作
|
||||
- [视频弹幕](danmaku)
|
||||
- [实时弹幕&弹幕格式](danmaku/danmaku.md)√
|
||||
- [历史弹幕](danmaku/history.md)√
|
||||
- [protobuf实时弹幕](danmaku/danmaku_proto.md)√
|
||||
- [protobuf弹幕元数据(BAS弹幕/互动弹幕)](danmaku/danmaku_view_proto.md)√
|
||||
- [xml实时弹幕](danmaku/danmaku_xml.md)√
|
||||
- [xml历史弹幕](danmaku/history.md)√
|
||||
- [快照](danmaku/snapshot.md)√
|
||||
- 弹幕操作
|
||||
- 专栏
|
||||
- 基本信息
|
||||
- 点赞&投币&收藏
|
||||
- 文集基本信息
|
||||
- 音频
|
||||
- 歌曲相关
|
||||
- 歌单相关
|
||||
- [弹幕操作](danmaku/action.md)×
|
||||
- 高级弹幕
|
||||
- 屏蔽管理
|
||||
- 智能防挡弹幕
|
||||
- 弹幕个人配置修改
|
||||
- [专栏](article)
|
||||
- 分区
|
||||
- [基本信息](article/info.md)×
|
||||
- [点赞&投币&收藏](article/like_coin_fav.md)×
|
||||
- [文集基本信息](article/articles.md)×
|
||||
- [音频](audio)
|
||||
- [歌曲基本信息](audio/info.md)√
|
||||
- [歌单&音频收藏夹详细信息](audio/music_list.md)×
|
||||
- [状态数](audio/status_number.md)×
|
||||
- [投币&收藏](audio/coin&fav.md)×
|
||||
- [播放&下载地址(音频流)](audio/musicstream_url.md)√
|
||||
- 音频榜单
|
||||
- [排行榜&最新动态](ranking&dynamic)
|
||||
- [排行榜](ranking&dynamic/ranking.md)x
|
||||
- [最新动态](ranking&dynamic/dynamic.md)x
|
||||
- 搜索
|
||||
- 普通搜索
|
||||
- 热搜
|
||||
- [排行榜&最新视频](ranking&dynamic)
|
||||
- [排行榜](ranking&dynamic/ranking.md)×
|
||||
- [最新视频](ranking&dynamic/dynamic.md)×
|
||||
- [搜索](search)
|
||||
- [搜索请求](search/search_request.md)√
|
||||
- [搜索结果](search/search_response.md)√
|
||||
- [默认搜索&热搜](search/hot.md)√
|
||||
- [搜索建议](search/suggest.md)√
|
||||
- [小黑屋](blackroom)
|
||||
- 基本信息
|
||||
- [封禁公示](blackroom/banlist.md)√
|
||||
- 仲裁信息
|
||||
- 评论区
|
||||
- 评论区明细
|
||||
- 表情
|
||||
- 发表评论
|
||||
- 评论操作
|
||||
- [风纪委员及众裁案件相关](blackroom/jury)
|
||||
- [风纪委员基本信息](blackroom/jury/base_info.md)√
|
||||
- [众裁案件基本信息](blackroom/jury/judgement_info.md)√
|
||||
- [裁决操作](blackroom/jury/action.md)√
|
||||
- [评论区](comment)√
|
||||
- [评论区明细](comment/list.md)√
|
||||
- [操作](comment/action.md)√
|
||||
- [表情](emote)
|
||||
- [表情及表情包信息](emote/emote_list.md)√
|
||||
- [操作](emote/action.md)√
|
||||
- [创作中心](creativecenter)
|
||||
- [统计与数据](creativecenter/statistics&data.md)x
|
||||
- [统计与数据](creativecenter/statistics&data.md)×
|
||||
- 列表查询相关
|
||||
- 电磁力相关
|
||||
- [电磁力数据](creativecenter/railgun.md)√
|
||||
- [实时广播(通讯协议)](broadcast)√
|
||||
- [视频内广播](broadcast/video_room.md)√
|
||||
- [充电](electric)
|
||||
- [B币方式](electric/Bcoin.md)√
|
||||
- [微信&支付宝方式](electric/WeChat&Alipay.md)√
|
||||
- [充电留言](electric/charge_msg.md)√
|
||||
- [充电列表](electric/charge_list.md)√
|
||||
- [动态](dynamic)
|
||||
- [发送&转载动态](dynamic/publish.md)x
|
||||
- [发送&转载动态](dynamic/publish.md)×
|
||||
- 动态列表
|
||||
- 动态内容
|
||||
- 小视频
|
||||
- 操作
|
||||
- 历史记录&稍后再看
|
||||
- 历史记录
|
||||
- 稍后再看
|
||||
- [历史记录&稍后再看](history&toview)
|
||||
- [历史记录](history&toview/history.md)√
|
||||
- [稍后再看](history&toview/toview.md)√
|
||||
- 收藏夹
|
||||
- 课程
|
||||
- [课程](cheese)
|
||||
- [课程基本信息](cheese/info.md)√
|
||||
- 已购课程
|
||||
- 分区推荐列表
|
||||
- 操作
|
||||
- [播放&下载地址(视频流)](cheese/videostream_url.md)√
|
||||
- [直播](live)
|
||||
- [直播间基本信息](live/info.md)x
|
||||
- 直播间管理
|
||||
- [直播间基本信息](live/info.md)×
|
||||
- [直播分区](live/live_area.md)×
|
||||
- [直播间管理](live/manage.md)×
|
||||
- 直播间操作
|
||||
- 直播视频流
|
||||
- 直播信息流
|
||||
- [直播视频流](live/live_stream.md)×
|
||||
- [直播信息流](live/message_stream.md)×
|
||||
- 答题
|
||||
- B币钱包
|
||||
- 基本信息
|
||||
- B币充值
|
||||
- 贝壳相关
|
||||
- 哔哩哔哩漫画
|
||||
- 哔哩哔哩游戏
|
||||
- 轻视频
|
||||
- [其他](other)
|
||||
- [ip位置查询](other/ip.md)√
|
||||
- [基于ip的地理位置查询](other/ip.md)√
|
||||
- [获取当前时间戳](other/time_stamp.md)√
|
||||
- [web端组件](web_widget)
|
||||
- [分区当日上传数](web_widget/zone_upload.md)√
|
||||
- [APP端组件](APP_widget)
|
||||
- [开屏图片](APP_widget/splash.md)√
|
||||
- [个性装扮](garb)
|
||||
- [主题及加载动画](garb/skin.md)√
|
||||
- [主题色](garb/color.md)√
|
||||
|
||||
B站专栏同步推出[《B站api研究记》](https://www.bilibili.com/read/readlist/rl207146)系列,欢迎关注
|
||||
B站专栏同步推出[《B站api研究记》](https://www.bilibili.com/read/readlist/rl207146)系列(更新状态:咕咕......),~~欢迎关注~~
|
||||
|
||||
**注意:请勿滥用,仅用于学习和测试!**
|
||||
|
||||
@ -117,7 +179,7 @@ B站专栏同步推出[《B站api研究记》](https://www.bilibili.com/read/rea
|
||||
|
||||
(重要的话说三遍,本人不承担任何责任)
|
||||
|
||||
<img src="https://i2.hdslb.com/bfs/face/480e2e98513aaeb65d2f2c76dbae750c4de722e9.jpg" width="100" height="100"/>
|
||||
<img src="imgs/up_face.jpg" width="100" height="100">
|
||||
|
||||
**--by [社会易姐QwQ](https://space.bilibili.com/293793435)**
|
||||
|
||||
@ -127,9 +189,9 @@ B站专栏同步推出[《B站api研究记》](https://www.bilibili.com/read/rea
|
||||
|
||||
不了解json的请移步,[传送门](https://www.sojson.com/json/json_index.html)
|
||||
|
||||
不了解protobuf的请移步,[传送门](https://www.jianshu.com/p/a24c88c0526a )
|
||||
|
||||
|
||||
**相关项目**:
|
||||
# 相关项目:
|
||||
|
||||
库及文档:
|
||||
|
||||
@ -143,10 +205,26 @@ https://github.com/Vespa314/bilibili-api
|
||||
|
||||
https://github.com/Hsury/Bilibili-Toolkit
|
||||
|
||||
https://github.com/whjstc/openbilibili-go-common-1
|
||||
|
||||
https://github.com/wnstar/bili-utils
|
||||
|
||||
https://github.com/lovelyyoshino/Bilibili-Live-API
|
||||
|
||||
https://github.com/flaribbit/bilibili-manga-spider
|
||||
|
||||
https://github.com/simon300000/bili-api
|
||||
|
||||
成品:
|
||||
|
||||
https://github.com/3Shain/BiliChat
|
||||
|
||||
https://github.com/AncientLysine/BiliLocal
|
||||
|
||||
https://github.com/zyzsdy/biliroku
|
||||
|
||||
https://github.com/otakustay/danmaku-to-ass
|
||||
|
||||
https://github.com/bilibili-helper/bilibili-helper-o
|
||||
|
||||
https://github.com/apachecn/BiliDriveEx
|
||||
@ -157,8 +235,20 @@ https://github.com/Hsury/BiliDrive
|
||||
|
||||
https://github.com/Tsuk1ko/bilibili-live-chat
|
||||
|
||||
https://github.com/ironmanic/crawler_target_users_good
|
||||
|
||||
https://github.com/dd-center/DDatElectron
|
||||
|
||||
https://github.com/dd-center/vtbs.moe
|
||||
|
||||
https://github.com/JunzhouLiu/BILIBILI-HELPER
|
||||
|
||||
https://github.com/the1812/Bilibili-Evolved
|
||||
|
||||
其他:
|
||||
|
||||
https://github.com/kuresaru/geetest-validator
|
||||
|
||||
https://github.com/Hsury/Geetest3-Crack
|
||||
|
||||
https://github.com/SocialSisterYi/bv2av_convert
|
||||
|
311
article/articles.md
Normal file
@ -0,0 +1,311 @@
|
||||
# 文集基本信息
|
||||
|
||||
## 获取文集基本信息
|
||||
|
||||
> http://api.bilibili.com/x/article/list/web/articles
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| id | num | 文集rlID | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ----------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误<br />-404:无此信息 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ----- | ---------------- | ------------------------------------------------------------ |
|
||||
| list | obj | 文集概览 | |
|
||||
| articles | array | 文集内的文章列表 | |
|
||||
| author | obj | 文集作者信息 | |
|
||||
| last | obj | - | 作用尚不明确<br />结构与data.articles[]中相似 |
|
||||
| attention | bool | 是否关注文集作者 | false:未关注<br />true:已关注<br />需要登录(Cookie) <br />未登录为false |
|
||||
|
||||
`data`中的`list`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------------- | ---- | --------------- | ------------ |
|
||||
| id | num | 文集rlID | |
|
||||
| mid | num | 文集作者UID | |
|
||||
| name | str | 文集名称 | |
|
||||
| image_url | str | 文集封面图片url | |
|
||||
| update_time | num | 文集更新时间 | 时间戳 |
|
||||
| ctime | num | 文集创建时间 | 时间戳 |
|
||||
| publish_time | num | 文集发布时间 | 时间戳 |
|
||||
| summary | str | 文集简介 | |
|
||||
| words | num | 文集字数 | |
|
||||
| read | num | 文集阅读量 | |
|
||||
| articles_count | num | 文集内文章数量 | |
|
||||
| state | num | 1或3 | 作用尚不明确 |
|
||||
| reason | str | 空 | 作用尚不明确 |
|
||||
| apply_time | str | 空 | 作用尚不明确 |
|
||||
| check_time | str | 空 | 作用尚不明确 |
|
||||
|
||||
`data`中的`articles`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------------- | ---- |
|
||||
| 0 | obj | 文集中第1篇文章 | |
|
||||
| n | obj | 文集中第(n+1)篇文章 | |
|
||||
|
||||
`data`中的`articles`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------ | ----- | -------------- | ------------------------------------------------------------ |
|
||||
| id | num | 专栏cvID | |
|
||||
| title | str | 文章标题 | |
|
||||
| state | num | 0 | 作用尚不明确 |
|
||||
| publish_time | num | 发布时间 | 秒时间戳 |
|
||||
| words | num | 文章字数 | |
|
||||
| image_urls | array | 文章封面 | |
|
||||
| category | obj | 文章标签 | |
|
||||
| categories | array | 文章标签列表 | |
|
||||
| summary | str | 文章摘要 | |
|
||||
| stats | obj | 文章状态数信息 | |
|
||||
| like_state | num | 是否点赞 | 0:未点赞<br />1:已点赞<br />需要登录(Cookie) <br />未登录为0 |
|
||||
|
||||
`articles`数组中的对象中的`stats`:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | ---------- | ---- |
|
||||
| view | num | 阅读数 | |
|
||||
| favorite | num | 收藏数 | |
|
||||
| like | num | 点赞数 | |
|
||||
| dislike | num | 点踩数 | |
|
||||
| reply | num | 评论数 | |
|
||||
| share | num | 分享数 | |
|
||||
| coin | num | 投币数 | |
|
||||
| dynamic | num | 动态转发数 | |
|
||||
|
||||
`articles`数组中的对象中的`author`:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------------- | ---- | -------------- | ---- |
|
||||
| mid | num | 作者UID | |
|
||||
| name | str | 作者昵称 | |
|
||||
| face | str | 作者头像url | |
|
||||
| official_verify | obj | 作者认证信息 | |
|
||||
| nameplate | obj | 作者勋章 | |
|
||||
| vip | obj | 作者大会员状态 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询文集`rl207146`的基本信息
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/article/list/web/articles' \
|
||||
--data-urlencode 'id=207146' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"list": {
|
||||
"id": 207146,
|
||||
"mid": 293793435,
|
||||
"name": "B站api研究笔记",
|
||||
"image_url": "https://i0.hdslb.com/bfs/article/96d2b3d2a72e6497a011c885ab9245c51507ce18.png",
|
||||
"update_time": 1585036952,
|
||||
"ctime": 1582718126,
|
||||
"publish_time": 1585045493,
|
||||
"summary": "",
|
||||
"words": 8697,
|
||||
"read": 1654,
|
||||
"articles_count": 3,
|
||||
"state": 1,
|
||||
"reason": "",
|
||||
"apply_time": "",
|
||||
"check_time": ""
|
||||
},
|
||||
"articles": [
|
||||
{
|
||||
"id": 4815593,
|
||||
"title": "【B站API】api研究笔记ep1-视频基本信息",
|
||||
"state": 0,
|
||||
"publish_time": 1582643908,
|
||||
"words": 2906,
|
||||
"image_urls": [
|
||||
"https://i0.hdslb.com/bfs/article/00497c8df7130f22e5b953694b8931a22d32f133.jpg"
|
||||
],
|
||||
"category": {
|
||||
"id": 26,
|
||||
"parent_id": 17,
|
||||
"name": "数码"
|
||||
},
|
||||
"categories": [
|
||||
{
|
||||
"id": 17,
|
||||
"parent_id": 0,
|
||||
"name": "科技"
|
||||
},
|
||||
{
|
||||
"id": 26,
|
||||
"parent_id": 17,
|
||||
"name": "数码"
|
||||
}
|
||||
],
|
||||
"summary": "各位小可爱们大家好啊,终于可以结束我长达一年的咕咕了.........在这蝠想联翩的日子里也闲的没事,除了上课就是睡觉,还不如搞点事情哪个猿不想拥有自己的B站爬虫呢(误),当然自制一个B站的综合信息台也是可以的,比如显示粉丝数 获赞数(掉粉警告)于是就萌生了这个研究B站api的想法,以后也会继续不定期分享我的主体思路是利用Chrome中的F12工具进行分析,再用curl进行验证先从视频下手吧qwq我们以av2075941为例network检测下,有各种图片、视频、网页、js。。。。。的传输记录",
|
||||
"stats": {
|
||||
"view": 578,
|
||||
"favorite": 19,
|
||||
"like": 26,
|
||||
"dislike": 0,
|
||||
"reply": 19,
|
||||
"share": 6,
|
||||
"coin": 10,
|
||||
"dynamic": 0
|
||||
},
|
||||
"like_state": 0
|
||||
},
|
||||
{
|
||||
"id": 4820548,
|
||||
"title": "【B站API】api研究笔记ep2-视频其他信息",
|
||||
"state": 0,
|
||||
"publish_time": 1582688189,
|
||||
"words": 4319,
|
||||
"image_urls": [
|
||||
"https://i0.hdslb.com/bfs/article/2416ee72759a5c2c8bba0f10d42e789fc0c0ae2b.jpg"
|
||||
],
|
||||
"category": {
|
||||
"id": 26,
|
||||
"parent_id": 17,
|
||||
"name": "数码"
|
||||
},
|
||||
"categories": [
|
||||
{
|
||||
"id": 17,
|
||||
"parent_id": 0,
|
||||
"name": "科技"
|
||||
},
|
||||
{
|
||||
"id": 26,
|
||||
"parent_id": 17,
|
||||
"name": "数码"
|
||||
}
|
||||
],
|
||||
"summary": "大家中午好鸭昨天我们研究了B站api的获取方法和使用方法 这一期我们继续分享另一个从网页中寻找api的方法以及研究视频的其他api接口以av170001为例首先打开视频,在F12的network下的监控中加载页面筛选XHR对象用搜索法的效率较低,不如我们直接进行筛选&观察通过对资源路径的观察可以猜到某些有关的项比如playurl有可能是播放的地址,pagelist可能是分P列表,view不就是昨天研究的『视频基本信息』吗通过继续分析我总结出了以下api这个可以在只想获取简介时应用,而不用处理多余",
|
||||
"stats": {
|
||||
"view": 737,
|
||||
"favorite": 14,
|
||||
"like": 18,
|
||||
"dislike": 0,
|
||||
"reply": 14,
|
||||
"share": 1,
|
||||
"coin": 1,
|
||||
"dynamic": 0
|
||||
},
|
||||
"like_state": 0
|
||||
},
|
||||
{
|
||||
"id": 5263184,
|
||||
"title": "【B站API】api研究笔记Special-AV与BV互转",
|
||||
"state": 0,
|
||||
"publish_time": 1585045493,
|
||||
"words": 1472,
|
||||
"image_urls": [
|
||||
"https://i0.hdslb.com/bfs/article/b520939046899303cfcac1511308eb87ede760d7.jpg"
|
||||
],
|
||||
"category": {
|
||||
"id": 26,
|
||||
"parent_id": 17,
|
||||
"name": "数码"
|
||||
},
|
||||
"categories": [
|
||||
{
|
||||
"id": 17,
|
||||
"parent_id": 0,
|
||||
"name": "科技"
|
||||
},
|
||||
{
|
||||
"id": 26,
|
||||
"parent_id": 17,
|
||||
"name": "数码"
|
||||
}
|
||||
],
|
||||
"summary": "昨天视频新编号BV上线了,所有视频的编号默认都变成了BVxxx,不再是avxxx,兼容在链接和搜索中输入av号,评论区和动态av和bv都可以一键传送显然日益增长的投稿量对于编号是个问题,int是有上限的,但一串“乱码”缺少了灵魂,还会让我们想到磁力链接或者熊掌盘的链接(手动狗头)看到av170001,我会想到“法克儿~~”,但看到BV17x411w7KC,我?????其实av号并没有消失,只不过它已经隐藏于大众的视野里了,av和bv本质上是可以双向转换的方法一(电脑版推荐):打开一个视频,会发现",
|
||||
"stats": {
|
||||
"view": 343,
|
||||
"favorite": 9,
|
||||
"like": 13,
|
||||
"dislike": 0,
|
||||
"reply": 9,
|
||||
"share": 0,
|
||||
"coin": 2,
|
||||
"dynamic": 0
|
||||
},
|
||||
"like_state": 0
|
||||
}
|
||||
],
|
||||
"author": {
|
||||
"mid": 293793435,
|
||||
"name": "社会易姐QwQ",
|
||||
"face": "http://i1.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
|
||||
"pendant": {
|
||||
"pid": 0,
|
||||
"name": "",
|
||||
"image": "",
|
||||
"expire": 0
|
||||
},
|
||||
"official_verify": {
|
||||
"type": -1,
|
||||
"desc": ""
|
||||
},
|
||||
"nameplate": {
|
||||
"nid": 4,
|
||||
"name": "青铜殿堂",
|
||||
"image": "http://i1.hdslb.com/bfs/face/2879cd5fb8518f7c6da75887994c1b2a7fe670bd.png",
|
||||
"image_small": "http://i1.hdslb.com/bfs/face/6707c120e00a3445933308fd9b7bd9fad99e9ec4.png",
|
||||
"level": "普通勋章",
|
||||
"condition": "单个自制视频总播放数>=1万"
|
||||
},
|
||||
"vip": {
|
||||
"type": 2,
|
||||
"status": 1,
|
||||
"due_date": 0,
|
||||
"vip_pay_type": 0,
|
||||
"theme_type": 0,
|
||||
"label": null
|
||||
}
|
||||
},
|
||||
"last": {
|
||||
"id": 0,
|
||||
"title": "",
|
||||
"state": 0,
|
||||
"publish_time": 0,
|
||||
"words": 0,
|
||||
"image_urls": [ ],
|
||||
"category": {
|
||||
"id": 0,
|
||||
"parent_id": 0,
|
||||
"name": ""
|
||||
},
|
||||
"categories": [ ],
|
||||
"summary": ""
|
||||
},
|
||||
"attention": true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
166
article/info.md
Normal file
@ -0,0 +1,166 @@
|
||||
# 专栏基本信息
|
||||
|
||||
## 获取专栏文章基本信息
|
||||
|
||||
> http://api.bilibili.com/x/article/viewinfo
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| id | num | 专栏cvID | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ----------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误<br />-404:无此信息 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------------- | ------ | ---------------- | ------------------------------------------------------------ |
|
||||
| like | num | 是否点赞 | 0:未点赞<br />1:已点赞<br />需要登录(Cookie) <br />未登录为0 |
|
||||
| attention | bool | 是否关注文章作者 | false:未关注<br />true:已关注<br />需要登录(Cookie) <br />未登录为false |
|
||||
| favorite | bool | 是否收藏 | false:未收藏<br />true:已收藏<br />需要登录(Cookie) <br />未登录为false |
|
||||
| coin | num | 为文章投币数 | |
|
||||
| stats | obj | 状态数信息 | |
|
||||
| title | str | 文章标题 | |
|
||||
| banner_url | str | 文章头图url | |
|
||||
| mid | num | 文章作者UID | |
|
||||
| author_name | str | 文章作者昵称 | |
|
||||
| is_author | bool | true | 作用尚不明确 |
|
||||
| image_urls | array | 动态封面 | |
|
||||
| origin_image_urls | array | 封面图片 | |
|
||||
| shareable | bool | true | 作用尚不明确 |
|
||||
| show_later_watch | bool | true | 作用尚不明确 |
|
||||
| show_small_window | bool | true | 作用尚不明确 |
|
||||
| in_list | bool | 是否收于文集 | false:否<br />true:是 |
|
||||
| pre | num | 上一篇文章cvID | 无为0 |
|
||||
| next | num | 下一篇文章cvID | 无为0 |
|
||||
| share_channels | array | 分享方式列表 | |
|
||||
|
||||
`stats`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | ---------- | ---- |
|
||||
| view | num | 阅读数 | |
|
||||
| favorite | num | 收藏数 | |
|
||||
| like | num | 点赞数 | |
|
||||
| dislike | num | 点踩数 | |
|
||||
| reply | num | 评论数 | |
|
||||
| share | num | 分享数 | |
|
||||
| coin | num | 投币数 | |
|
||||
| dynamic | num | 动态转发数 | |
|
||||
|
||||
`data`中的`image_urls`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | --------------- | ---- |
|
||||
| 0 | str | 动态封面图片url | |
|
||||
|
||||
`data`中的`origin_image_urls`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | --------------- | ---- |
|
||||
| 0 | str | 文章封面图片url | |
|
||||
|
||||
`data`中的`share_channels`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | -------------- | ---- |
|
||||
| 0 | obj | 分享项:qq | |
|
||||
| 1 | obj | 分享项:qq空间 | |
|
||||
| 2 | obj | 分享项:微信 | |
|
||||
| 3 | obj | 分享项:朋友圈 | |
|
||||
| 4 | obj | 分享项:微博 | |
|
||||
|
||||
`data`中的`share_channels`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------- | ---- | ----------- | ---- |
|
||||
| name | str | 分享名称 | |
|
||||
| picture | str | 分享图片url | |
|
||||
| share_channel | str | 分享代号 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询文章`cv2`的基本信息
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/article/viewinfo' \
|
||||
--data-urlencode 'id=2' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"like": 1,
|
||||
"attention": true,
|
||||
"favorite": false,
|
||||
"coin": 0,
|
||||
"stats": {
|
||||
"view": 317712,
|
||||
"favorite": 3249,
|
||||
"like": 10176,
|
||||
"dislike": 0,
|
||||
"reply": 1333,
|
||||
"share": 302,
|
||||
"coin": 2002,
|
||||
"dynamic": 28
|
||||
},
|
||||
"title": "专栏行为准则 ",
|
||||
"banner_url": "https://i0.hdslb.com/bfs/article/131b1d41b857d5308f5bff36591d117bddc48d96.jpg@90p.webp",
|
||||
"mid": 144900660,
|
||||
"author_name": "专栏小天使",
|
||||
"is_author": true,
|
||||
"image_urls": ["https://i0.hdslb.com/bfs/article/0a72422ce8e77d8512f010d93b1b7f9bc4e64e52.jpg"],
|
||||
"origin_image_urls": ["https://i0.hdslb.com/bfs/article/131b1d41b857d5308f5bff36591d117bddc48d96.jpg"],
|
||||
"shareable": true,
|
||||
"show_later_watch": true,
|
||||
"show_small_window": true,
|
||||
"in_list": false,
|
||||
"pre": 115914,
|
||||
"next": 38575,
|
||||
"share_channels": [{
|
||||
"name": "QQ",
|
||||
"picture": "https://i0.hdslb.com/bfs/album/114ccfb3a999df9c4d11f274c8c61a804c8f8803.png",
|
||||
"share_channel": "QQ"
|
||||
}, {
|
||||
"name": "QQ空间",
|
||||
"picture": "https://i0.hdslb.com/bfs/album/30e9608bbce725bca45b5910866f60ab4d5e18b3.png",
|
||||
"share_channel": "QZONE"
|
||||
}, {
|
||||
"name": "微信",
|
||||
"picture": "https://i0.hdslb.com/bfs/album/658af3c22431cd78bb7c50be3394f7c032eba12c.png",
|
||||
"share_channel": "WEIXIN"
|
||||
}, {
|
||||
"name": "朋友圈",
|
||||
"picture": "https://i0.hdslb.com/bfs/album/c1ebcec8c5302f29f792d15f04e0d6dcef53ec27.png",
|
||||
"share_channel": "WEIXIN_MONMENT"
|
||||
}, {
|
||||
"name": "微博",
|
||||
"picture": "https://i0.hdslb.com/bfs/album/3707fc23f7d3e24022712320284b0de9aa78c87d.png",
|
||||
"share_channel": "SINA"
|
||||
}]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
172
article/like_coin_fav.md
Normal file
@ -0,0 +1,172 @@
|
||||
# 专栏投币&点赞&收藏
|
||||
|
||||
**本页所有操作均需登录(Cookie)**
|
||||
|
||||
## 点赞文章
|
||||
|
||||
<img src="/imgs/like.svg" width="100" height="100"/>
|
||||
|
||||
> http://api.bilibili.com/x/article/like
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------------------- | ------ | ---------------------- |
|
||||
| id | num | 文章cvID | 必要 | |
|
||||
| type | num | 操作方式 | 必要 | 1:点赞<br />2:取消赞 |
|
||||
| csrf | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功 <br />-101:账号未登录<br />-111:csrf校验失败<br />-400:请求错误<br />10003:不存在该稿件<br />65006:已赞过<br />65004:取消点赞失败 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
为文章`cv5806746`点赞
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/article/like' \
|
||||
--data-urlencode 'id=5806746' \
|
||||
--data-urlencode 'type=1' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 投币文章
|
||||
|
||||
<img src="/imgs/coin.svg" width="100" height="100"/>
|
||||
|
||||
> http://api.bilibili.com/x/web-interface/coin/add
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| -------- | ---- | ------------------- | ------ | ------- |
|
||||
| aid | num | 文章cvID | 必要 | |
|
||||
| multiply | num | 投币数量 | 必要 | 上限为2 |
|
||||
| avtype | num | 2 | 必要 | 必须为2 |
|
||||
| csrf | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-102:账号被封停<br />-104:硬币不足<br />-111:csrf校验失败<br />-400:请求错误<br />10003:不存在该稿件<br />34002:不能给自己投币<br />34003:非法的投币数量<br />34005:超过投币上限 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
data 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------ | ----------------------------------------------------- |
|
||||
| like | bool | 是否点赞成功 | true:成功<br />false:失败<br />已赞过则附加点赞失败 |
|
||||
|
||||
**示例:**
|
||||
|
||||
为文章`cv5806746`投币1枚
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/web-interface/coin/add' \
|
||||
--data-urlencode 'aid=5806746' \
|
||||
--data-urlencode 'multiply=1' \
|
||||
--data-urlencode 'avtype=2' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"like": false
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 收藏文章
|
||||
|
||||
<img src="/imgs/fav.svg" width="100" height="100"/>
|
||||
|
||||
>http://api.bilibili.com/x/article/favorites/add
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------------------- | ------ | ---- |
|
||||
| id | num | 文章cvID | 必要 | |
|
||||
| csrf | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111:csrf校验失败<br />-400:请求错误<br />-404:无此项 |
|
||||
| message | str | 错误信息 | 正确为success |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
收藏文章`cv5806746`
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/article/favorites/add' \
|
||||
--data-urlencode 'id=5806746' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
101
audio/coin&fav.md
Normal file
@ -0,0 +1,101 @@
|
||||
# 音频投币&收藏
|
||||
|
||||
本页所有操作均需登录(SESSDATA)
|
||||
|
||||
## 查询音频收藏状态
|
||||
|
||||
> http://www.bilibili.com/audio/music-service-c/web/collections/songs-coll
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
鉴权方式:Cookie中`DedeUserID`存在且不为0
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| sid | num | 音频auID | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />72000000:参数错误<br />72010002:账号未登陆<br />7201006:该音频不存在或已被下架 |
|
||||
| msg | str | 错误信息 | 默认为success |
|
||||
| data | bool | 是否收藏 | false:未收藏<br />true:已收藏 |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询音频`au13598`的收藏状态
|
||||
|
||||
```shell
|
||||
curl -G 'http://www.bilibili.com/audio/music-service-c/web/collections/songs-coll' \
|
||||
--data-urlencode 'sid=13598' \
|
||||
-b 'SESSDATA=xxx;DedeUserID=1;'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"data": true
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 查询音频投币数
|
||||
|
||||
> http://www.bilibili.com/audio/music-service-c/web/coin/audio
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
鉴权方式:Cookie中`DedeUserID`存在且不为0
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| sid | num | 音频auID | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />72000000:参数错误<br />72010002:账号未登陆<br />7201006:该音频不存在或已被下架 |
|
||||
| msg | str | 错误信息 | 默认为success |
|
||||
| data | num | 投币数量 | 0为未投币,上限为2 |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询音频`au13598`的投币数
|
||||
|
||||
```shell
|
||||
curl -G 'http://www.bilibili.com/audio/music-service-c/web/coin/audio' \
|
||||
--data-urlencode 'sid=15664' \
|
||||
-b 'SESSDATA=xxx;DedeUserID=1;'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"data": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
425
audio/info.md
Normal file
@ -0,0 +1,425 @@
|
||||
# 歌曲基本信息
|
||||
|
||||
## 查询歌曲基本信息
|
||||
|
||||
> http://www.bilibili.com/audio/music-service-c/web/song/info
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| sid | num | 音频auID | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ----------------------------- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />72000000:参数错误<br />7201006:该音频不存在或已被下架<br />72010027:版权音乐重定向 |
|
||||
| msg | str | 错误信息 | 默认为success |
|
||||
| data | 正确时:obj<br />错误时:null | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------- | ------ | ------------------ | ------------------ |
|
||||
| id | num | 音频auID | |
|
||||
| uid | num | UP主UID | |
|
||||
| uname | str | UP主昵称 | |
|
||||
| author | str | 作者名 | |
|
||||
| title | str | 歌曲标题 | |
|
||||
| cover | str | 封面图片url | |
|
||||
| intro | str | 歌曲简介 | |
|
||||
| lyric | str | lrc歌词url | |
|
||||
| crtype | num | 1 | **作用尚不明确** |
|
||||
| duration | num | 歌曲时间长度 | 单位为秒 |
|
||||
| passtime | num | 歌曲发布时间 | 时间戳 |
|
||||
| curtime | num | 当前请求时间 | 时间戳 |
|
||||
| aid | num | 关联稿件avID | 无为0 |
|
||||
| bvid | str | 关联稿件bvID | 无为空 |
|
||||
| cid | num | 关联视频CID | 无为0 |
|
||||
| msid | num | 0 | **作用尚不明确** |
|
||||
| attr | num | 0 | **作用尚不明确** |
|
||||
| limit | num | 0 | **作用尚不明确** |
|
||||
| activityId | num | 0 | **作用尚不明确** |
|
||||
| limitdesc | str | 空 | **作用尚不明确** |
|
||||
| ctime | null | - | **作用尚不明确** |
|
||||
| statistic | obj | 状态数 | |
|
||||
| vipInfo | obj | UP主会员状态 | |
|
||||
| collectIds | array | 歌曲所在的收藏夹ID | 需要登录(SESSDATA) |
|
||||
| coin_num | num | 投币数 | |
|
||||
|
||||
`data`中的`statistic`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ---- |
|
||||
| sid | num | 音频auID | |
|
||||
| play | num | 播放次数 | |
|
||||
| collect | num | 收藏数 | |
|
||||
| comment | num | 评论数 | |
|
||||
| share | num | 分享数 | |
|
||||
|
||||
`data`中的`vipInfo`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------ | ---- | ------------ | ----------------------------------- |
|
||||
| type | num | 会员类型 | 0:无<br />1:月会员<br />2:年会员 |
|
||||
| status | num | 会员状态 | 0:无<br />1:有 |
|
||||
| due_date | num | 会员到期时间 | 时间戳 毫秒 |
|
||||
| vip_pay_type | num | 会员开通状态 | 0:无<br />1:有 |
|
||||
|
||||
`data`中的`collectIds`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------------------- | ---- |
|
||||
| 0 | num | 第1个所在的收藏夹ID | |
|
||||
| n | num | 第(n+1)个所在的收藏夹ID | |
|
||||
| …… | num | …… | …… |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询音频`au13598`的基本信息
|
||||
|
||||
```shell
|
||||
curl -G 'http://www.bilibili.com/audio/music-service-c/web/song/info' \
|
||||
--data-urlencode 'sid=13598' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"id": 13598,
|
||||
"uid": 486183,
|
||||
"uname": "排骨教主",
|
||||
"author": "排骨教主",
|
||||
"title": "牵丝戏",
|
||||
"cover": "http://i0.hdslb.com/bfs/music/cf50d93b4dc08bfc6d3112041d6de0e56045ac5b.jpg",
|
||||
"intro": "自制 这次要特别感谢山东省京剧院的各位年轻的老师们对我戏腔发声的悉心指导\n关注排骨的微博@排骨节操收割机\n排骨QQ群456237456\n感谢@妄北没睡够(新浪微博) 画的视频图,太美了!!!!!\n",
|
||||
"lyric": "http://i0.hdslb.com/bfs/music/150587810313598.lrc",
|
||||
"crtype": 1,
|
||||
"duration": 239,
|
||||
"passtime": 1501640683,
|
||||
"curtime": 1590154258,
|
||||
"aid": 2554020,
|
||||
"bvid": "BV1us411S7E6",
|
||||
"cid": 3990196,
|
||||
"msid": 0,
|
||||
"attr": 0,
|
||||
"limit": 0,
|
||||
"activityId": 0,
|
||||
"limitdesc": "",
|
||||
"ctime": null,
|
||||
"statistic": {
|
||||
"sid": 13598,
|
||||
"play": 1028516,
|
||||
"collect": 30914,
|
||||
"comment": 523,
|
||||
"share": 384
|
||||
},
|
||||
"vipInfo": {
|
||||
"type": 2,
|
||||
"status": 1,
|
||||
"due_date": 1620316800000,
|
||||
"vip_pay_type": 0
|
||||
},
|
||||
"collectIds": [
|
||||
15967839
|
||||
],
|
||||
"coin_num": 1777
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 查询歌曲TAG
|
||||
|
||||
> http://www.bilibili.com/audio/music-service-c/web/tag/song
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| sid | num | 音频auID | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ------ | -------- | ------------- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| msg | str | 错误信息 | 默认为success |
|
||||
| data | array | TAG列表 | 无为空 |
|
||||
|
||||
`data`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | -------- | ---- |
|
||||
| 0 | str | TAG1 | |
|
||||
| n | str | TAG(n+1) | |
|
||||
| …… | str | …… | …… |
|
||||
|
||||
`data`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | ---------- | ---------------- |
|
||||
| type | str | song | **作用尚不明确** |
|
||||
| subtype | num | ??? | **作用尚不明确** |
|
||||
| key | num | TAG ID?? | **作用尚不明确** |
|
||||
| info | str | TAG名 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询音频`au15664`的TAG
|
||||
|
||||
```shell
|
||||
curl -G 'http://www.bilibili.com/audio/music-service-c/web/tag/song' \
|
||||
--data-urlencode 'sid=15664'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"data": [
|
||||
{
|
||||
"type": "song",
|
||||
"subtype": 0,
|
||||
"key": 1,
|
||||
"info": "音乐"
|
||||
},
|
||||
{
|
||||
"type": "song",
|
||||
"subtype": 1,
|
||||
"key": 3,
|
||||
"info": "人声"
|
||||
},
|
||||
{
|
||||
"type": "song",
|
||||
"subtype": 2,
|
||||
"key": 2,
|
||||
"info": "翻唱"
|
||||
},
|
||||
{
|
||||
"type": "song",
|
||||
"subtype": 3,
|
||||
"key": 33,
|
||||
"info": "日语"
|
||||
},
|
||||
{
|
||||
"type": "song",
|
||||
"subtype": 5,
|
||||
"key": 41,
|
||||
"info": "网络歌曲"
|
||||
},
|
||||
{
|
||||
"type": "song",
|
||||
"subtype": 4,
|
||||
"key": 7,
|
||||
"info": "流行"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 查询歌曲创作成员列表
|
||||
|
||||
> http://www.bilibili.com/audio/music-service-c/web/member/song
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| sid | num | 音频auID | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ------ | ------------ | ------------- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| msg | str | 错误信息 | 默认为success |
|
||||
| data | array | 成员类型列表 | 无为空 |
|
||||
|
||||
`data`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------- | ---- |
|
||||
| 0 | str | 成员类型1 | |
|
||||
| n | str | 成员类型(n+1) | |
|
||||
| …… | str | …… | …… |
|
||||
|
||||
`data`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ------ | ------------ | ------------------------------------------------------------ |
|
||||
| list | array | 成员列表 | |
|
||||
| type | num | 成员类型代码 | 1:歌手<br />2:作词<br />3:作曲<br />4:编曲<br />5:后期/混音<br />7:封面制作<br />8:音源<br />9:调音<br />10:演奏<br />11:乐器<br />127:UP主 |
|
||||
|
||||
`data`数组中的对象中的`list`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | --------- | ---- |
|
||||
| 0 | str | 成员1 | |
|
||||
| n | str | 成员(n+1) | |
|
||||
| …… | str | …… | …… |
|
||||
|
||||
`list`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ---- | ---------- | ---------------- |
|
||||
| mid | num | 0 | **作用尚不明确** |
|
||||
| name | str | 成员名 | |
|
||||
| member_id | num | 成员ID?? | **作用尚不明确** |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询音频`au815861`的创作成员信息
|
||||
|
||||
```shell
|
||||
curl -G 'http://www.bilibili.com/audio/music-service-c/web/member/song' \
|
||||
--data-urlencode 'sid=815861'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"data": [
|
||||
{
|
||||
"list": [
|
||||
{
|
||||
"mid": 0,
|
||||
"name": "匀子Cyrena",
|
||||
"member_id": 164341
|
||||
}
|
||||
],
|
||||
"type": 1
|
||||
},
|
||||
{
|
||||
"list": [
|
||||
{
|
||||
"mid": 0,
|
||||
"name": "圣月樱泪 ",
|
||||
"member_id": 12349
|
||||
}
|
||||
],
|
||||
"type": 2
|
||||
},
|
||||
{
|
||||
"list": [
|
||||
{
|
||||
"mid": 0,
|
||||
"name": "Days的Wing翼",
|
||||
"member_id": 13777
|
||||
}
|
||||
],
|
||||
"type": 3
|
||||
},
|
||||
{
|
||||
"list": [
|
||||
{
|
||||
"mid": 0,
|
||||
"name": "Days的Wing翼",
|
||||
"member_id": 13777
|
||||
}
|
||||
],
|
||||
"type": 4
|
||||
},
|
||||
{
|
||||
"list": [
|
||||
{
|
||||
"mid": 0,
|
||||
"name": "嘟比Dubi",
|
||||
"member_id": 40902
|
||||
}
|
||||
],
|
||||
"type": 5
|
||||
},
|
||||
{
|
||||
"list": [
|
||||
{
|
||||
"mid": 0,
|
||||
"name": "匀子Cyrena",
|
||||
"member_id": 164222
|
||||
}
|
||||
],
|
||||
"type": 127
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 获取歌曲歌词
|
||||
|
||||
> http://www.bilibili.com/audio/music-service-c/web/song/lyric
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
同「查询歌曲基本信息」中的lrc歌词
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| sid | num | 音频auID | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ----------------------------- | --------------- | ------------- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| msg | str | 错误信息 | 默认为success |
|
||||
| data | 正确时:str<br />错误时:null | lrc格式歌词信息 | 无为空 |
|
||||
|
||||
**示例:**
|
||||
|
||||
获取音频`au15664`的歌词信息
|
||||
|
||||
```shell
|
||||
curl -G 'http://www.bilibili.com/audio/music-service-c/web/song/lyric' \
|
||||
--data-urlencode 'sid=15664' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"data": "[ar:萧忆情]\n\n[ti:威风堂堂]\n\n[00:26.64]引诱谁去摘下禁果\n\n[00:28.11]甜美滋味偷咬一口\n\n[00:30.03]触及到了最深处果核\n\n[00:31.82]身体开始颤抖\n\n[00:33.85]舌尖已濡湿双腿内侧\n\n[00:35.55]神经末梢警报响彻\n\n[00:37.39]自内而外逐渐变得火热\n\n[00:39.14]现在无须再遵守规则\n\n[00:42.14]还故作矜持说违心的话\n\n[00:45.84]为何动作不停下\n\n[00:47.85]停下来\n\n[00:48.39]已经快停不下来\n\n[00:49.42]还想索取更多\n\n[00:50.46]踩碎那PRIDE\n\n[00:51.41]忘记毫无意义的理智存在\n\n[00:53.27]让暧昧因子在四处的徘徊\n\n[00:55.19]给我收起你那\n\n[00:56.21]太虚伪的STYLE\n\n[00:57.01]直白赤裸的爱\n\n[00:58.00]最原始的DIVE\n\n[00:58.86]喘息中断续的声音叫期待\n\n[01:00.65]别掩饰此刻\n\n[01:01.50]那让人意乱情迷的SMILE\n\n[01:10.90]缓慢吐息迷惑双眼的雾\n\n[01:12.49]强制禁锢身下轻舔锁骨\n\n[01:14.23]就让封锁的心渐渐领悟\n\n[01:15.97]别继续装无辜\n\n[01:17.54]开始脱下的衬衫\n\n[01:19.08]最后的纽扣解开它\n\n[01:20.98]快感get\n\n[01:21.85]从此不顾一切\n\n[01:23.32]还在犹豫什么\n\n[01:24.78]Darling\n\n[01:26.54]站在自由世界的正中央\n\n[01:30.09]窥探你幻想的是否太过浪荡\n\n[01:33.99]太难耐\n\n[01:34.41]分分秒秒太难耐\n\n[01:35.61]床笫间的狩猎\n\n[01:36.63]充满野心的TRY\n\n[01:37.66]不承认口头上无理的摊牌\n\n[01:39.58]只想要在身体里深埋\n\n[01:41.34]现在由我掌控\n\n[01:42.36]随心所欲的LIFE\n\n[01:43.40]给你要的未来\n\n[01:44.41]永远不腐坏\n\n[01:45.32]所有的阴暗面统统藏起来\n\n[01:46.70]仅为你一人展现那能骄傲夸耀的MIND\n\n[01:49.90]将不安的情绪碾至粉末\n\n[01:53.14]抹在你胸口印上最鲜艳的红\n\n[02:21.06]别打算缩起来置身之外\n\n[02:22.64]无论何时\n\n[02:23.27]NO TIME\n\n[02:23.58]ALL RIGHT\n\n[02:24.21]打破一切的羞耻值\n\n[02:25.43]哪里奇怪\n\n[02:26.06]哪里奇怪\n\n[02:26.68]哪里奇怪\n\n[02:27.30]BURN BURN BURN\n\n[02:28.22]想要的就是那\n\n[02:29.17]啊 没错\n\n[02:29.87]再给我更多的触摸\n\n[02:31.62]顺位交换贴近肌肤的DANCE\n\n[02:33.34]好吧 肆无忌惮\n\n[02:34.98]停下来\n\n[02:35.35]已经快停不下来\n\n[02:36.50]还想索取更多\n\n[02:37.68]踩碎那PRIDE\n\n[02:38.38]忘记毫无意义的理智存在\n\n[02:40.27]让暧昧因子在四处的徘徊\n\n[02:42.11]给我收起你那\n\n[02:43.16]太虚伪的STYLE\n\n[02:44.00]直白赤裸的爱\n\n[02:45.06]最原始的DIVE\n\n[02:45.90]喘息中断续的声音叫期待\n\n[02:47.76]别掩饰此刻那让人意乱情迷的SMILE\n\n[02:50.64]将不安的情绪碾至粉末\n\n[02:54.09]抹在你胸口印上最鲜艳的红\n\n[02:58.35]抛弃所有只想拥有此刻\n\n"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
290
audio/music_list.md
Normal file
@ -0,0 +1,290 @@
|
||||
# 歌单&音频收藏夹详细信息
|
||||
|
||||
## 查询自己创建的歌单
|
||||
|
||||
> http://www.bilibili.com/audio/music-service-c/web/collections/list
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
鉴权方式:Cookie中`DedeUserID`存在且不为0
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| pn | num | 页码 | 必要 | |
|
||||
| ps | num | 每页项数 | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ----------------------------- | -------- | ----------------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />72000000:参数错误<br />72010002:未登录 |
|
||||
| msg | str | 错误信息 | 默认为success |
|
||||
| data | 正确时:obj<br />错误时:null | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ------ | ------------ | ---- |
|
||||
| curPage | num | 当前页码 | |
|
||||
| pageCount | num | 总计页数 | |
|
||||
| totalSize | num | 总计收藏夹数 | |
|
||||
| pageSize | num | 当前页面项数 | |
|
||||
| data | array | 歌单列表 | |
|
||||
|
||||
`data`中的`data`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------------- | ---- |
|
||||
| 0 | obj | 音频收藏夹ID1 | |
|
||||
| n | obj | 音频收藏夹ID(n+1) | |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`data`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ------ | ------------------------ | -------------------------------- |
|
||||
| id | num | 音频收藏夹ID | |
|
||||
| uid | num | 创建用户UID | |
|
||||
| uname | str | 创建用户昵称 | |
|
||||
| title | str | 歌单标题 | |
|
||||
| type | num | 收藏夹属性 | 0:普通收藏夹<br />1:默认收藏夹 |
|
||||
| published | num | 是否公开 | 0:不公开<br />1:公开 |
|
||||
| cover | str | 歌单封面图片url | |
|
||||
| ctime | num | 歌单创建时间 | 时间戳 |
|
||||
| song | num | 歌单中的音乐数量 | |
|
||||
| desc | str | 歌单备注信息 | |
|
||||
| sids | array | 歌单中的音乐 | |
|
||||
| menuId | num | 音频收藏夹对应的歌单amID | |
|
||||
| statistic | obj | 歌单状态数信息 | |
|
||||
|
||||
`data`中的`sids`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------------- | ---------------- |
|
||||
| 0 | num | 收藏的音频auID1 | |
|
||||
| n | num | 收藏的音频auID(n+1) | 按照歌单顺序排列 |
|
||||
| …… | num | …… | …… |
|
||||
|
||||
`data`中的`statistic`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | ------------------------ | ---- |
|
||||
| sid | num | 音频收藏夹对应的歌单amID | |
|
||||
| play | num | 播放次数 | |
|
||||
| collect | num | 点赞次数 | |
|
||||
| comment | null | - | |
|
||||
| share | num | 分享次数 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -G 'http://www.bilibili.com/audio/music-service-c/web/collections/list' \
|
||||
--data-urlencode 'ps=2' \
|
||||
--data-urlencode 'pn=1' \
|
||||
-b 'SESSDATA=xxx;DedeUserID=1;'
|
||||
```
|
||||
|
||||
共计创建了两个歌单,如下
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"curPage": 1,
|
||||
"pageCount": 1,
|
||||
"totalSize": 2,
|
||||
"pageSize": 2,
|
||||
"data": [
|
||||
{
|
||||
"id": 15967839,
|
||||
"uid": 293793435,
|
||||
"uname": "社会易姐QwQ",
|
||||
"title": "默认歌单",
|
||||
"type": 1,
|
||||
"published": 1,
|
||||
"cover": "http://i0.hdslb.com/bfs/music/1e079693701d2f525850c288fcc48fa4259a73f6.jpg",
|
||||
"ctime": 1519295502,
|
||||
"song": 13,
|
||||
"desc": "",
|
||||
"sids": [
|
||||
11673,
|
||||
276404,
|
||||
15664,
|
||||
737904,
|
||||
108588,
|
||||
1286999,
|
||||
658085,
|
||||
682118,
|
||||
736952,
|
||||
48716,
|
||||
15711,
|
||||
13598,
|
||||
57744
|
||||
],
|
||||
"menuId": 15958713,
|
||||
"statistic": {
|
||||
"sid": 15958713,
|
||||
"play": 0,
|
||||
"collect": 0,
|
||||
"comment": null,
|
||||
"share": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 30894022,
|
||||
"uid": 293793435,
|
||||
"uname": "社会易姐QwQ",
|
||||
"title": "test",
|
||||
"type": 0,
|
||||
"published": 1,
|
||||
"cover": "",
|
||||
"ctime": 1590154346,
|
||||
"song": 0,
|
||||
"desc": "test1",
|
||||
"sids": [],
|
||||
"menuId": 30866686,
|
||||
"statistic": {
|
||||
"sid": 30866686,
|
||||
"play": 0,
|
||||
"collect": 0,
|
||||
"comment": 0,
|
||||
"share": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 查询音频收藏夹(默认歌单)信息
|
||||
|
||||
> https://www.bilibili.com/audio/music-service-c/web/collections/info
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
鉴权方式:Cookie中`DedeUserID`存在且不为0
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------------ | ------ | ------------------ |
|
||||
| sid | num | 音频收藏夹ID | 必要 | 必须为默认收藏夹ID |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ----------------------------- | -------- | ----------------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />72000000:参数错误<br />72010002:未登录 |
|
||||
| msg | str | 错误信息 | 默认为success |
|
||||
| data | 正确时:obj<br />错误时:null | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ------ | ------------------------ | ---------------------- |
|
||||
| id | num | 音频收藏夹ID | |
|
||||
| uid | num | 创建用户UID | |
|
||||
| uname | str | 创建用户昵称 | |
|
||||
| title | str | 默认歌单 | 恒为`默认歌单` |
|
||||
| type | num | 1 | 恒为`1` |
|
||||
| published | num | 是否公开 | 0:不公开<br />1:公开 |
|
||||
| cover | str | 歌单封面图片url | |
|
||||
| ctime | num | 歌单创建时间 | 时间戳 |
|
||||
| song | num | 歌单中的音乐数量 | |
|
||||
| desc | str | 空 | 恒为空 |
|
||||
| sids | array | 歌单中的音乐 | |
|
||||
| menuId | num | 音频收藏夹对应的歌单amID | 与普通歌单不同通用 |
|
||||
| statistic | obj | 歌单状态数信息 | |
|
||||
|
||||
`data`中的`sids`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------------- | ---------------- |
|
||||
| 0 | num | 收藏的音频auID1 | |
|
||||
| n | num | 收藏的音频auID(n+1) | 按照歌单顺序排列 |
|
||||
| …… | num | …… | …… |
|
||||
|
||||
`data`中的`statistic`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | ------------------------ | ---- |
|
||||
| sid | num | 音频收藏夹对应的歌单amID | |
|
||||
| play | num | 0 | |
|
||||
| collect | num | 0 | |
|
||||
| comment | null | - | |
|
||||
| share | num | 0 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询我的默认歌单,ID为` 15967839 `
|
||||
|
||||
```shell
|
||||
curl -G 'http://www.bilibili.com/audio/music-service-c/web/collections/info' \
|
||||
--data-urlencode 'sid=15967839 ' \
|
||||
-b 'SESSDATA=xxx;DedeUserID=1;'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"id": 15967839,
|
||||
"uid": 293793435,
|
||||
"uname": "社会易姐QwQ",
|
||||
"title": "默认歌单",
|
||||
"type": 1,
|
||||
"published": 1,
|
||||
"cover": "http://i0.hdslb.com/bfs/music/1e079693701d2f525850c288fcc48fa4259a73f6.jpg",
|
||||
"ctime": 1519295502,
|
||||
"song": 13,
|
||||
"desc": "",
|
||||
"sids": [
|
||||
11673,
|
||||
276404,
|
||||
15664,
|
||||
737904,
|
||||
108588,
|
||||
1286999,
|
||||
658085,
|
||||
682118,
|
||||
736952,
|
||||
48716,
|
||||
15711,
|
||||
13598,
|
||||
57744
|
||||
],
|
||||
"menuId": 15958713,
|
||||
"statistic": {
|
||||
"sid": 15958713,
|
||||
"play": 0,
|
||||
"collect": 0,
|
||||
"comment": null,
|
||||
"share": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
|
276
audio/musicstream_url.md
Normal file
@ -0,0 +1,276 @@
|
||||
# 音频流URL
|
||||
|
||||
<img src="/imgs/download.svg" width="100" height="100"/>
|
||||
|
||||
音质`qn`参数:
|
||||
|
||||
| 代码 | 含义 |
|
||||
| ---- | -------------------- |
|
||||
| 0 | 流畅 128K |
|
||||
| 1 | 标准 192K |
|
||||
| 2 | 高品质 320K |
|
||||
| 3 | 无损 FLAC (大会员) |
|
||||
|
||||
## 获取音频流URL(无法获取付费音频)(web端)
|
||||
|
||||
> http://www.bilibili.com/audio/music-service-c/web/url
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**注:web端无法播放完整付费歌曲,付费歌曲为30s试听片段**
|
||||
|
||||
本接口仅能获取192K音质的音频
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| sid | num | 音频auID | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | -------- | ----------------------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />7201006:未找到或已下架<br />72000000:请求错误 |
|
||||
| msg | str | 错误信息 | 默认为success |
|
||||
| data | obj | 数据本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ----- | --------- | --------------------------------------- |
|
||||
| sid | num | 音频auID | |
|
||||
| type | num | 音质标识 | -1:试听片段(192K)<br />1:192K |
|
||||
| info | str | 空 | **作用尚不明确** |
|
||||
| timeout | num | 有效时长 | 单位为秒<br />一般为3h |
|
||||
| size | num | 文件大小 | 单位为字节<br />当`type`为-1时`size`为0 |
|
||||
| cdns | array | 音频流url | |
|
||||
| qualities | null | - | |
|
||||
| title | null | - | |
|
||||
| cover | null | - | |
|
||||
|
||||
`data`对象的`cdns`数组:
|
||||
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------- | ---- |
|
||||
| 0 | str | 音频流url | |
|
||||
| 1 | str | 备用音频流url | |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -G 'http://www.bilibili.com/audio/music-service-c/web/url' \
|
||||
--data-urlencode 'sid=sid=15664'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"sid": 15664,
|
||||
"type": 1,
|
||||
"info": "",
|
||||
"timeout": 10800,
|
||||
"size": 4853263,
|
||||
"cdns": [
|
||||
"https://upos-sz-mirrorkodo.bilivideo.com/ugaxcode/7bf6a3a3e94421ccc653f005457b1e8c-192k.m4a?deadline=1595331310&gen=uga&os=kodobv&uparams=deadline,gen,os&upsig=0ecd3c7a8d9539f260239d8fa4c093db",
|
||||
"https://upos-sz-mirrorks3.bilivideo.com/ugaxcode/7bf6a3a3e94421ccc653f005457b1e8c-192k.m4a?deadline=1595331310&gen=uga&os=ks3bv&uparams=deadline,gen,os&upsig=f3fe53aff56655b1b7264ae4ab65872e"
|
||||
],
|
||||
"qualities": null,
|
||||
"title": null,
|
||||
"cover": null
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 获取音频流URL(可获取付费音频)(双端)
|
||||
|
||||
> http://api.bilibili.com/audio/music-service-c/url
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:APP或Cookie(SESSDATA)
|
||||
|
||||
**注:付费音乐需要有带大会员或音乐包的账号登录(Cookie或APP),否则为试听片段**
|
||||
|
||||
无损音质需要登录的用户为会员
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------ | ----------- | -------------- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
| songid | num | 音频auID | 必要 | |
|
||||
| quality | num | 音质代码 | 必要 | **详情见上表** |
|
||||
| privilege | num | 必须为`2` | 必要 | |
|
||||
| mid | num | 当前用户UID | 必要 | 可为任意值 |
|
||||
| platform | str | 平台标识 | 必要 | 可为任意值 |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | -------- | ----------------------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />7201006:未找到或已下架<br />72000000:请求错误 |
|
||||
| msg | str | 错误信息 | 默认为success |
|
||||
| data | obj | 数据本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ----- | ----------- | ------------------------------------------------------------ |
|
||||
| sid | num | 音频auID | |
|
||||
| type | num | 音质标识 | -1:试听片段(192K)<br />0:128K<br />1:192K<br />2:320K<br />3:FLAC |
|
||||
| info | str | 空 | **作用尚不明确** |
|
||||
| timeout | num | 有效时长 | 单位为秒<br />一般为3h |
|
||||
| size | num | 文件大小 | 单位为字节<br />当`type`为-1时`size`为0 |
|
||||
| cdns | array | 音频流url | |
|
||||
| qualities | array | 音质列表 | |
|
||||
| title | str | 音频标题 | |
|
||||
| cover | str | 音频封面url | |
|
||||
|
||||
`data`对象的`cdns`数组:
|
||||
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------- | ---- |
|
||||
| 0 | str | 音频流url | |
|
||||
| 1 | str | 备用音频流url | |
|
||||
|
||||
`data`对象的`qualities`数组:
|
||||
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------- | ---------------- |
|
||||
| 0 | obj | 音质1 | 音质由高向低顺序 |
|
||||
| n | obj | 音质(n+1) | |
|
||||
|
||||
`qualities`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | ---------------- | ---------------------- |
|
||||
| type | num | 音质代码 | **详情见上表** |
|
||||
| desc | str | 音质名称 | |
|
||||
| size | num | 该音质的文件大小 | 单位为字节 |
|
||||
| bps | str | 比特率标签 | |
|
||||
| tag | str | 音质标签 | |
|
||||
| require | num | 是否需要会员权限 | 0:不需要<br />1:需要 |
|
||||
| requiredesc | str | 会员权限标签 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
获取音频`au682118`的音频流url,音质为`3(无损)`
|
||||
|
||||
Cookie方式:
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/audio/music-service-c/url
|
||||
--data-urlencode 'songid=682118' \
|
||||
--data-urlencode 'quality=3' \
|
||||
--data-urlencode 'privilege=2' \
|
||||
--data-urlencode 'platform=android' \
|
||||
--data-urlencode 'mid=293793435' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
APP方式:
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/audio/music-service-c/url
|
||||
--data-urlencode 'access_key=xxx' \
|
||||
--data-urlencode 'songid=682118' \
|
||||
--data-urlencode 'quality=3' \
|
||||
--data-urlencode 'privilege=2' \
|
||||
--data-urlencode 'platform=android' \
|
||||
--data-urlencode 'mid=293793435'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"sid": 682118,
|
||||
"type": 3,
|
||||
"info": "",
|
||||
"timeout": 10800,
|
||||
"size": 34456494,
|
||||
"cdns": [
|
||||
"https://upos-sz-mirrorkodo.bilivideo.com/ugaxcode/m190102ws2pzf6jitbem841vq2x0du5x-flac.flac?deadline=1595332269&gen=uga&os=kodobv&uparams=deadline,gen,os&upsig=ac2284d97a61ef8758681eccf621c56d",
|
||||
"https://upos-sz-mirrorks3.bilivideo.com/ugaxcode/m190102ws2pzf6jitbem841vq2x0du5x-flac.flac?deadline=1595332269&gen=uga&os=ks3bv&uparams=deadline,gen,os&upsig=3ac7d94dda5664f6f95dbfffeb289744"
|
||||
],
|
||||
"qualities": [
|
||||
{
|
||||
"type": 3,
|
||||
"desc": "无损音质",
|
||||
"size": 34456494,
|
||||
"bps": "",
|
||||
"tag": "SQ",
|
||||
"require": 1,
|
||||
"requiredesc": "付费享受"
|
||||
},
|
||||
{
|
||||
"type": 2,
|
||||
"desc": "高品质",
|
||||
"size": 10788682,
|
||||
"bps": "320kbit/s",
|
||||
"tag": "HQ",
|
||||
"require": 0,
|
||||
"requiredesc": ""
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"desc": "标准",
|
||||
"size": 6491973,
|
||||
"bps": "192kbit/s",
|
||||
"tag": "",
|
||||
"require": 0,
|
||||
"requiredesc": ""
|
||||
},
|
||||
{
|
||||
"type": 0,
|
||||
"desc": "流畅",
|
||||
"size": 4343667,
|
||||
"bps": "128kbit/s",
|
||||
"tag": "",
|
||||
"require": 0,
|
||||
"requiredesc": ""
|
||||
}
|
||||
],
|
||||
"title": "aLIEz",
|
||||
"cover": "http://i0.hdslb.com/bfs/music/61d3f8cfdce14d2d1b006af59559c9bd22a2d21b.jpg"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 音频流的获取
|
||||
|
||||
将`data`.`cdns`.`[0]`或`data`.`cdns`.`[1]`中的内容作为url进行GET操作
|
||||
|
||||
需要验证请求`user-agent` 不为空
|
||||
|
||||
**user-agent错误的情况会返回403 Forbidden**故无法获取**
|
||||
|
||||
**以上述音频url为例:**
|
||||
|
||||
```shell
|
||||
wget 'https://upos-sz-mirrorkodo.bilivideo.com/ugaxcode/m190102ws2pzf6jitbem841vq2x0du5x-flac.flac?deadline=1595332269&gen=uga&os=kodobv&uparams=deadline,gen,os&upsig=ac2284d97a61ef8758681eccf621c56d' \
|
||||
-O 'Download_music.flac'
|
||||
```
|
||||
|
||||
响应正文将返回一个flac文件
|
63
audio/status_number.md
Normal file
@ -0,0 +1,63 @@
|
||||
# 音频状态数
|
||||
|
||||
## 歌曲状态数
|
||||
|
||||
>http://www.bilibili.com/audio/music-service-c/web/stat/song
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
唯缺投币数2333333
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---- |
|
||||
| sid | num | 音频auID | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | -------- | ------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />72000000:参数错误 |
|
||||
| msg | str | 错误信息 | 默认为success |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ---- |
|
||||
| sid | num | 音频auID | |
|
||||
| play | num | 播放次数 | |
|
||||
| collect | num | 收藏数 | |
|
||||
| comment | num | 评论数 | |
|
||||
| share | num | 分享数 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询歌曲`au15664`的状态数
|
||||
|
||||
```shell
|
||||
curl -G 'http://www.bilibili.com/audio/music-service-c/web/stat/song' \
|
||||
--data-urlencode 'sid=15664'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"sid": 15664,
|
||||
"play": 1377390,
|
||||
"collect": 44340,
|
||||
"comment": 2756,
|
||||
"share": 4114
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
417
bangumi/info.md
Normal file
@ -0,0 +1,417 @@
|
||||
# 剧集基本信息
|
||||
|
||||
## 剧集基本信息(mdID方式)
|
||||
|
||||
|
||||
> http://api.bilibili.com/pgc/review/user
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
鉴权方式:Cookie(SESSDATA)或APP
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| -------- | ---- | -------- | ------ | ---- |
|
||||
| media_id | str | 剧集mdID | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误<br />-404:错误 |
|
||||
| message | str | 错误信息 | 默认为success |
|
||||
| result | obj | 信息本体 | |
|
||||
|
||||
`result`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------ | ---- | ------------ | ---------------- |
|
||||
| media | obj | 剧集信息 | |
|
||||
| review | obj | 用户操作信息 | 仅登录时存在此项 |
|
||||
|
||||
`result`中的`media`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ----- | -------------- | -------------------------- |
|
||||
| areas | array | 地区 | |
|
||||
| cover | str | 封面图片url | |
|
||||
| media_id | num | 剧集mdID | |
|
||||
| new_ep | obj | 最新一话信息 | |
|
||||
| rating | obj | 评分信息 | |
|
||||
| season_id | int | 剧集ssID | |
|
||||
| share_url | url | 剧集详情页连接 | |
|
||||
| title | str | 标题 | |
|
||||
| type_name | str | 剧集类型 | `番剧`、`国创`、`电影`等等 |
|
||||
|
||||
`media`中的`areas`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | --------------- | ---- |
|
||||
| 0 | obj | 地区信息1 | |
|
||||
| n | obj | 地区信息(n+1) | |
|
||||
| …… | obj | …… | |
|
||||
|
||||
`areas`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------ | ------------------------------------------------------------ |
|
||||
| id | num | 所属地区编号 | 1:中国大陆<br />2:日本<br />3:美国<br />4:英国<br />6:中国香港<br />8:韩国<br />9:法国<br />10:泰国<br />13:西班牙<br />15:德国<br />35:意大利<br />39:新西兰<br />43:澳大利亚 |
|
||||
| name | str | 所属地区名称 | |
|
||||
|
||||
`media`中的`new_ep`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------- | ---- | ---------------- | -------------------------- |
|
||||
| id | int | 最新一话的epID | |
|
||||
| index | str | 最新一话名称 | |
|
||||
| index_show | str | 最新一话显示名称 | eg. `第1话`、`更新至第4话` |
|
||||
|
||||
`media`中的`rating`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ---- | ------------ | ---- |
|
||||
| count | num | 总计评分人数 | |
|
||||
| score | num | 评分 | |
|
||||
|
||||
`result`中的`review`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | ---- | ------------ |
|
||||
| is_coin | num | 0 | 作用尚不明确 |
|
||||
| is_open | num | 1 | 作用尚不明确 |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询剧集`md28220978`的基本信息
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/pgc/review/user' \
|
||||
--data-urlencode 'media_id=28220978' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "success",
|
||||
"result": {
|
||||
"media": {
|
||||
"areas": [
|
||||
{
|
||||
"id": 2,
|
||||
"name": "日本"
|
||||
}
|
||||
],
|
||||
"cover": "http://i0.hdslb.com/bfs/bangumi/8aa0bfce050c72c6626b63d3093a88527c251026.jpg",
|
||||
"media_id": 28220978,
|
||||
"new_ep": {
|
||||
"id": 21278,
|
||||
"index": "14",
|
||||
"index_show": "全14话"
|
||||
},
|
||||
"rating": {
|
||||
"count": 53376,
|
||||
"score": 9.9
|
||||
},
|
||||
"season_id": 1172,
|
||||
"share_url": "https://www.bilibili.com/bangumi/media/md28220978",
|
||||
"title": "轻音少女 第一季",
|
||||
"type_name": "番剧"
|
||||
},
|
||||
"review": {
|
||||
"is_coin": 0,
|
||||
"is_open": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 获取剧集明细(web端)(ssID/epID方式)
|
||||
|
||||
> http://api.bilibili.com/pgc/view/web/season
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| --------- | ---- | -------- | ------------ | ------------------------ |
|
||||
| season_id | num | 番剧ssID | 必要(可选) | season_id与ep_id任选其一 |
|
||||
| ep_id | num | 剧集epID | 必要(可选) | season_id与ep_id任选其一 |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ----------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-404:错误 |
|
||||
| message | str | 错误信息 | 默认为success |
|
||||
| ttl | num | 1 | 作用尚不明确 |
|
||||
| result | obj | 信息本体 | |
|
||||
|
||||
`result`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------------- | ------ | -------------------------- | ------------------------------------------ |
|
||||
| activity | obj | 参与的活动 | |
|
||||
| alias | str | 空 | 作用尚不明确 |
|
||||
| bkg_cover | str | 网页背景图片url | 无则为空 |
|
||||
| cover | str | 剧集封面图片url | |
|
||||
| episodes | array | 正片剧集列表 | |
|
||||
| evaluate | str | 简介 | |
|
||||
| jp_title | str | 空 | 作用尚不明确 |
|
||||
| link | str | 简介页面url | |
|
||||
| media_id | num | 剧集mdID | |
|
||||
| mode | num | 2 | 作用尚不明确 |
|
||||
| new_ep | obj | 更新信息 | |
|
||||
| payment | obj | 会员&付费信息 | 若无相关内容则无此项 |
|
||||
| positive | obj | | |
|
||||
| publish | obj | 发布信息 | |
|
||||
| rating | obj | 评分信息 | 若无相关内容则无此项 |
|
||||
| record | str | 备案号 | 无则为空 |
|
||||
| rights | obj | 属性标志信息 | |
|
||||
| season_id | num | 番剧ssID | |
|
||||
| season_title | str | 剧集标题 | |
|
||||
| seasons | array | 同系列所以季信息 | |
|
||||
| section | array | 花絮、PV、番外等非正片内容 | 若无相关内容则无此项 |
|
||||
| series | obj | 系列信息 | |
|
||||
| share_copy | str | 《{标题}》+{备注} | |
|
||||
| share_sub_title | str | 备注 | |
|
||||
| share_url | str | 番剧播放页面url | |
|
||||
| show | obj | 网页全屏标志 | |
|
||||
| square_cover | str | 方形封面图片url | |
|
||||
| stat | obj | 状态数 | |
|
||||
| status | num | | |
|
||||
| subtitle | str | 剧集副标题 | |
|
||||
| title | str | 剧集标题 | |
|
||||
| total | num | 总计正片集数 | 未完结:大多为-1<br />已完结:正整数 |
|
||||
| type | num | 剧集类型 | 1:番剧<br />2:电影<br />3:纪录片<br />4:国创<br />5:电视剧<br />7:综艺 |
|
||||
| up_info | obj | UP主信息 | 若无相关内容则无此项 |
|
||||
|
||||
`result`中的`activity`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | -------- | ------------ |
|
||||
| head_bg_url | str | 空 | 作用尚不明确 |
|
||||
| id | num | 活动id | |
|
||||
| title | str | 活动标题 | |
|
||||
|
||||
`result`中的`episodes`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | --------------- | ------------ |
|
||||
| 0 | obj | 正片第1集 | |
|
||||
| n | obj | 正片第(n+1)集 | 按照顺序排列 |
|
||||
| …… | obj | | |
|
||||
|
||||
`episodes`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------ | ---- | --------------------------------- | -------------------- |
|
||||
| aid | num | 单集稿件avID | |
|
||||
| badge | str | 标签文字 | 例如`会员`、`限免`等 |
|
||||
| badge_info | obj | | |
|
||||
| badge_type | num | | |
|
||||
| bvid | str | 单集稿件bvID | |
|
||||
| cid | num | 视频CID | |
|
||||
| cover | str | 单集封面url | |
|
||||
| dimension | obj | 分辨率信息 | |
|
||||
| from | str | | |
|
||||
| id | num | 单集epID | |
|
||||
| link | str | 单集网页url | |
|
||||
| long_title | str | 单集完整标题 | |
|
||||
| pub_time | num | 发布时间 | 时间戳 |
|
||||
| pv | num | 0 | 作用尚不明确 |
|
||||
| release_date | str | 空 | 作用尚不明确 |
|
||||
| rights | obj | | |
|
||||
| share_copy | str | 《{标题}》+第n话+{单集完整标题} | |
|
||||
| share_url | str | 单集网页url | |
|
||||
| short_link | str | 单集网页url短链接 | |
|
||||
| status | num | | |
|
||||
| subtitle | str | 单集副标题 | 观看次数文字 |
|
||||
| title | str | 单集标题 | |
|
||||
| vid | str | 单集vID | vupload_+{CID} |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
`result`中的`new_ep`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------ | ---- | ------------ | ---------------- |
|
||||
| desc | str | 更新备注 | |
|
||||
| id | num | 最新一话epID | |
|
||||
| is_new | num | 是否最新发布 | 0:否<br />1:是 |
|
||||
| title | str | 最新一话标题 | |
|
||||
|
||||
`result`中的`payment`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------------- | ---- | ---- | ---- |
|
||||
| discount | num | | |
|
||||
| pay_type | obj | | |
|
||||
| price | str | | |
|
||||
| promotion | str | | |
|
||||
| tip | str | | |
|
||||
| vip_discount | num | | |
|
||||
| vip_first_promotion | str | | |
|
||||
| vip_promotion | str | | |
|
||||
|
||||
|
||||
|
||||
`result`中的`positive`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ---- | ---- | ---- |
|
||||
| id | num | | |
|
||||
| title | str | | |
|
||||
|
||||
`result`中的`publish`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------------- | ---- | ---------------- | ------------------------ |
|
||||
| is_finish | num | 完结状态 | 0:未完结<br />1:已完结 |
|
||||
| is_started | num | 是否发布 | 0:未发布<br />1:已发布 |
|
||||
| pub_time | str | 发布时间 | YYYY-MM-DDD hh:mm:ss |
|
||||
| pub_time_show | str | 发布时间文字介绍 | |
|
||||
| unknow_pub_date | num | 0 | 作用尚不明确 |
|
||||
| weekday | num | 0 | 作用尚不明确 |
|
||||
|
||||
`result`中的`rating`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ---- | ------------ | ---- |
|
||||
| count | num | 总计评分人数 | |
|
||||
| score | num | 评分 | |
|
||||
|
||||
`result`中的`rights`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------------- | ---- | -------- | ------------------------------- |
|
||||
| allow_bp | num | | |
|
||||
| allow_bp_rank | num | | |
|
||||
| allow_download | num | | |
|
||||
| allow_review | num | | |
|
||||
| area_limit | num | | |
|
||||
| ban_area_show | num | | |
|
||||
| can_watch | num | | |
|
||||
| copyright | str | 版权标志 | bilibili:授权<br />dujia:独家 |
|
||||
| forbid_pre | num | | |
|
||||
| is_cover_show | num | | |
|
||||
| is_preview | num | | |
|
||||
| only_vip_download | num | | |
|
||||
| resource | str | | |
|
||||
| watch_platform | num | | |
|
||||
|
||||
`result`中的`seasons`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------------- | ------------ |
|
||||
| 0 | obj | 同系列剧集1 | |
|
||||
| n | obj | 同系列剧集(n+1) | 按照顺序排列 |
|
||||
| …… | obj | | |
|
||||
|
||||
`seasons`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------ | ---- | ---- | ---- |
|
||||
| badge | str | | |
|
||||
| badge_info | obj | | |
|
||||
| badge_type | num | | |
|
||||
| cover | str | | |
|
||||
| media_id | str | | |
|
||||
| new_ep | num | | |
|
||||
| season_id | obj | | |
|
||||
| season_title | num | | |
|
||||
| season_type | str | | |
|
||||
| stat | obj | | |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
`result`中的`section`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------------- | ------------ |
|
||||
| 0 | obj | 其他内容块1 | |
|
||||
| n | obj | 其他内容块(n+1) | 按照顺序排列 |
|
||||
| …… | obj | | |
|
||||
|
||||
`section`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------- | ----- | -------- | ---- |
|
||||
| episode_id | num | 0 | |
|
||||
| episodes | array | 板块内容 | |
|
||||
| id | num | 板块ID? | |
|
||||
| title | str | 板块标题 | |
|
||||
| type | num | ? | |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
`result`中的`series`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------ | ---- | ------ | ---- |
|
||||
| series_id | num | 系列ID | |
|
||||
| series_title | str | 系列名 | |
|
||||
|
||||
`result`中的`show`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | -------- | -------------------- |
|
||||
| wide_screen | num | 是否全屏 | 0:正常<br />1:全屏 |
|
||||
|
||||
`result`中的`stat`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ---- | ------ | ---- |
|
||||
| coins | num | 投币数 | |
|
||||
| danmakus | num | 弹幕数 | |
|
||||
| favorites | num | 收藏数 | |
|
||||
| likes | num | 点赞数 | |
|
||||
| reply | num | 评论数 | |
|
||||
| share | num | 分享数 | |
|
||||
| views | num | 播放数 | |
|
||||
|
||||
`result`中的`up_info`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | ----------- | ---- |
|
||||
| avatar | str | 头像图片url | |
|
||||
| follower | num | 粉丝数 | |
|
||||
| is_follow | num | 0 | |
|
||||
| mid | num | UP主UID | |
|
||||
| pendant | obj | | |
|
||||
| theme_type | num | 0 | |
|
||||
| uname | str | UP主昵称 | |
|
||||
| verify_type | num | | |
|
||||
| vip_status | num | | |
|
||||
| vip_type | num | | |
|
||||
|
||||
##
|
@ -1,48 +1,71 @@
|
||||
# 封禁用户公示
|
||||
# 封禁公示
|
||||
|
||||
**违规类型总览:**
|
||||
**已知的违规类型代码总览:**
|
||||
|
||||
| 代码 | 含义 |
|
||||
| ---- | -------------------- |
|
||||
| 1 | 刷屏 |
|
||||
| 2 | 抢楼 |
|
||||
| 3 | 发布色情低俗信息 |
|
||||
| 4 | 发布赌博诈骗信息 |
|
||||
| 5 | 发布违禁相关信息 |
|
||||
| 6 | 发布垃圾广告信息 |
|
||||
| 7 | 发布人身攻击言论 |
|
||||
| 8 | 发布侵犯他人隐私信息 |
|
||||
| 9 | 发布引战言论 |
|
||||
| 10 | 发布剧透信息 |
|
||||
| 11 | 恶意添加无关标签 |
|
||||
| 12 | 恶意删除他人标签 |
|
||||
| 13 | 发布色情信息 |
|
||||
| 14 | 发布低俗信息 |
|
||||
| 15 | 发布暴力血腥信息 |
|
||||
| 16 | 涉及恶意投稿行为 |
|
||||
| 17 | 发布非法网站信息 |
|
||||
| 18 | 发布传播不实信息 |
|
||||
| 19 | 发布怂恿教唆信息 |
|
||||
| 20 | 恶意刷屏 |
|
||||
| 21 | 账号违规 |
|
||||
| 22 | 恶意抄袭 |
|
||||
| 23 | 冒充自制原创 |
|
||||
| 24 | 发布青少年不良内容 |
|
||||
| 25 | 破坏网络安全 |
|
||||
| 26 | 发布虚假误导信息 |
|
||||
| 27 | 仿冒官方认证账号 |
|
||||
| 28 | 发布不适宜内容 |
|
||||
| 29 | 违反运营规则 |
|
||||
| 30 | 恶意创建话题 |
|
||||
| 31 | 发布违规抽奖 |
|
||||
| 32 | 恶意冒充他人 |
|
||||
|
||||
**已知的违规来源代码:**
|
||||
|
||||
| 代码 | 含义 |
|
||||
| ---- | -------- |
|
||||
| 1 | 评论 |
|
||||
| 2 | 弹幕 |
|
||||
| 3 | 私信 |
|
||||
| 4 | 标签 |
|
||||
| 5 | 个人资料 |
|
||||
| 6 | 投稿 |
|
||||
| 8 | 专栏 |
|
||||
| 10 | 动态 |
|
||||
| 11 | 相簿 |
|
||||
|
||||
## 获取封禁用户公示列表
|
||||
|
||||
> http://api.bilibili.com/x/credit/blocked/list
|
||||
|
||||
*方式:GET*
|
||||
*请求方式:GET*
|
||||
|
||||
每页最多10项
|
||||
|
||||
**参数:**
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ------------------------------------------------------------ |
|
||||
| btype | url | 来源筛选 | 非必要 | 空:全部类型<br />0:系统封禁<br />1:风纪仲裁 |
|
||||
| otype | url | 类型筛选 | 非必要 | 0:全部类型<br />1:评论<br />2:弹幕<br />3:私信<br />4:标签<br />5:个人资料<br />6:投稿<br />8:专栏<br />10:动态<br />11:相簿 |
|
||||
| pn | url | 页码 | 非必要 | 默认为1 |
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ---------------------------------------------- |
|
||||
| btype | num | 来源筛选 | 非必要 | 空:全部类型<br />0:系统封禁<br />1:风纪仲裁 |
|
||||
| otype | num | 类型筛选 | 非必要 | **见上表**<br />**0:全部类型** |
|
||||
| pn | num | 页码 | 非必要 | 默认为1 |
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -52,8 +75,8 @@
|
||||
| ------- | ------ | -------- | ------------ |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | 作用尚不明确 |
|
||||
| data | arrary | 公示列表 | |
|
||||
| ttl | num | 1 | |
|
||||
| data | array | 公示列表 | |
|
||||
|
||||
`data`数组:
|
||||
|
||||
@ -65,39 +88,47 @@
|
||||
|
||||
`data`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------------- | ---- | --------------- | ------------------------------------------------------------ |
|
||||
| id | num | 封禁公示ID | |
|
||||
| uname | str | 对象用户名 | |
|
||||
| face | str | 对象用户头像url | |
|
||||
| uid | num | 对象用户UID | |
|
||||
| originTitle | str | 来源标题 | |
|
||||
| blockedRemark | str | | |
|
||||
| originUrl | str | 来源url | |
|
||||
| originContentModify | str | 裁决正文 | |
|
||||
| originType | num | 来源类型 | 0:全部类型<br />1:评论<br />2:弹幕<br />3:私信<br />4:标签<br />5:个人资料<br />6:投稿<br />8:专栏<br />10:动态<br />11:相簿 |
|
||||
| originTypeName | str | 来源名 | |
|
||||
| punishTitle | str | 公示标题 | |
|
||||
| punishTime | num | 处罚时间 | 时间戳 |
|
||||
| punishType | num | 处理手段类型 | 2:封禁<br />3:永久封禁 |
|
||||
| punishTypeName | str | 处理手段名 | |
|
||||
| moralNum | num | 0 | 作用尚不明确 |
|
||||
| blockedDays | num | 封禁天数 | 永封为0 |
|
||||
| publishStatus | num | 1 | 作用尚不明确 |
|
||||
| blockedType | num | 处理来源 | 0:系统封禁<br />1:风纪仲裁 |
|
||||
| blockedForever | num | 是否永封 | 0:非永封<br />1:永封 |
|
||||
| reasonType | num | 违规类型 | **违规类型见表** |
|
||||
| reasonTypeName | str | 违规类型名称 | |
|
||||
| operatorName | str | 空 | 作用尚不明确 |
|
||||
| caseId | num | 仲裁信息 | 心态封禁时为0 |
|
||||
| ctime | num | 创建时间 | 时间戳 |
|
||||
| commentSum | num | 该条目评论数 | |
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------------- | ---- | --------------- | ---------------------------- |
|
||||
| id | num | 封禁公示ID | |
|
||||
| uname | str | 对象用户名 | |
|
||||
| face | str | 对象用户头像url | |
|
||||
| uid | num | 对象用户UID | |
|
||||
| originTitle | str | 来源标题 | |
|
||||
| blockedRemark | str | | |
|
||||
| originUrl | str | 来源url | |
|
||||
| originContentModify | str | 裁决正文 | |
|
||||
| originType | num | 来源类型 | **见上表** |
|
||||
| originTypeName | str | 来源名 | |
|
||||
| punishTitle | str | 公示标题 | |
|
||||
| punishTime | num | 处罚时间 | 时间戳 |
|
||||
| punishType | num | 处理手段类型 | 2:封禁<br />3:永久封禁 |
|
||||
| punishTypeName | str | 处理手段名 | |
|
||||
| moralNum | num | 0 | 作用尚不明确 |
|
||||
| blockedDays | num | 封禁天数 | 永封为0 |
|
||||
| publishStatus | num | 1 | 作用尚不明确 |
|
||||
| blockedType | num | 处理来源 | 0:系统封禁<br />1:风纪仲裁 |
|
||||
| blockedForever | num | 是否永封 | 0:非永封<br />1:永封 |
|
||||
| reasonType | num | 违规类型 | **见上表** |
|
||||
| reasonTypeName | str | 违规类型名称 | |
|
||||
| operatorName | str | 空 | 作用尚不明确 |
|
||||
| caseId | num | 仲裁信息ID | 系统封禁时固定为0 |
|
||||
| ctime | num | 创建时间 | 时间戳 |
|
||||
| commentSum | num | 该条目评论数 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询所有类型,所有来源的第1页的封禁公示列表
|
||||
|
||||
http://api.bilibili.com/x/credit/blocked/list?btype=&otype=0&pn=1
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/credit/blocked/list' \
|
||||
--data-urlencode 'btype=' \
|
||||
--data-urlencode 'otype=0' \
|
||||
--data-urlencode 'pn=1'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -129,26 +160,52 @@ http://api.bilibili.com/x/credit/blocked/list?btype=&otype=0&pn=1
|
||||
"operatorName": "",
|
||||
"caseId": 0,
|
||||
"ctime": 1587494264,
|
||||
"commentSum": 566
|
||||
"commentSum": 606
|
||||
}, {
|
||||
"id": 1091621,
|
||||
"uname": "风纪委员会会长零八",
|
||||
"face": "http://i1.hdslb.com/bfs/face/6ea4296f7591b9a724f540a41d48df728a0881b0.jpg",
|
||||
"uid": 305542374,
|
||||
"originTitle": "巅峰赛大乔游走辅助,队友说自家法师湖南卫视都不敢像法师这么演哈哈!",
|
||||
"blockedRemark": "内容涉及传播不实信息",
|
||||
"originUrl": "https://www.bilibili.com/video/av882552073",
|
||||
"originContentModify": "<p>具体违规情况说明:</p><ol class=\" list-paddingleft-2\" style=\"list-style-type: decimal;\"><li><p>经查实确认,该账号<span style=\"text-decoration: underline;\">从未申请</span>亦<span style=\"text-decoration: underline;\">从未担任</span>过风纪委员职务。</p></li><li><p>发布多条 “您的稿件/评论涉及违规,即将下架/删除”的恐吓性言论。</p></li><li><p>谎称曾经封禁了某个up主,事实上风纪委员<span style=\"text-decoration: underline;\">无法封禁up主投稿</span>,且该up也从未被封禁。</p></li><li><p>威胁他人“要不要到小黑屋坐坐”,事实上风纪委员无法直接封禁用户。通过管理员封禁或风纪委员投票封禁的账号亦有据实申诉的机会。</p></li><li><p>故意挑衅他人“那你可以试着骂我,我们试试(举报)有没有用”。</p></li><li><p>误导他人“此评论区和弹幕无需保持礼仪”。</p></li></ol><p>批注:</p><p>如您发现:假冒风纪委员身份招摇撞骗、炫耀风纪委员身份、借风纪委员职务之便威胁恐吓他人、在风纪观点中发布违规内容等违规行为,请及时联系我们进行举报。您可直接将举报材料发送至judgement@bilibili.com。</p><p>(案例感想请发布在小黑屋评论区讨论,请勿骚扰被封禁的用户)</p><p>【本次判罚为管理员判定,请注意案件右上无蓝色标记(风纪委员众裁)】</p>",
|
||||
"originType": 1,
|
||||
"originTypeName": "评论",
|
||||
"punishTitle": "在评论中发布传播不实信息",
|
||||
"punishTime": 1585560309,
|
||||
"punishType": 2,
|
||||
"punishTypeName": "封禁",
|
||||
"moralNum": 0,
|
||||
"blockedDays": 15,
|
||||
"publishStatus": 1,
|
||||
"blockedType": 0,
|
||||
"blockedForever": 0,
|
||||
"reasonType": 18,
|
||||
"reasonTypeName": "发布传播不实信息",
|
||||
"operatorName": "",
|
||||
"caseId": 0,
|
||||
"ctime": 1585560309,
|
||||
"commentSum": 2379
|
||||
},
|
||||
……
|
||||
]
|
||||
…………
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
</details>
|
||||
|
||||
## 封禁处理公示详情
|
||||
|
||||
> http://api.bilibili.com/x/credit/blocked/info
|
||||
|
||||
*方式:GET*
|
||||
*请求方式:GET*
|
||||
|
||||
**参数:**
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ---------- | ------ | ---- |
|
||||
| id | url | 封禁公示ID | 必要 | |
|
||||
| id | num | 封禁公示ID | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -158,44 +215,50 @@ http://api.bilibili.com/x/credit/blocked/list?btype=&otype=0&pn=1
|
||||
| ------- | ---- | -------- | ----------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误<br />-404:无此信息 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | 作用尚不明确 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------------- | ---- | --------------- | ------------------------------------------------------------ |
|
||||
| id | num | 封禁公示ID | |
|
||||
| uname | str | 对象用户名 | |
|
||||
| face | str | 对象用户头像url | |
|
||||
| uid | num | 对象用户UID | |
|
||||
| originTitle | str | 来源标题 | |
|
||||
| blockedRemark | str | | |
|
||||
| originUrl | str | 来源url | |
|
||||
| originContentModify | str | 裁决正文 | |
|
||||
| originType | num | 来源类型 | 0:全部类型<br />1:评论<br />2:弹幕<br />3:私信<br />4:标签<br />5:个人资料<br />6:投稿<br />8:专栏<br />10:动态<br />11:相簿 |
|
||||
| originTypeName | str | 来源名 | |
|
||||
| punishTitle | str | 公示标题 | |
|
||||
| punishTime | num | 处罚时间 | 时间戳 |
|
||||
| punishType | num | 处理手段类型 | 2:封禁<br />3:永久封禁 |
|
||||
| punishTypeName | str | 处理手段名 | |
|
||||
| moralNum | num | 0 | 作用尚不明确 |
|
||||
| blockedDays | num | 封禁天数 | 永封为0 |
|
||||
| publishStatus | num | 1 | 作用尚不明确 |
|
||||
| blockedType | num | 处理来源 | 0:系统封禁<br />1:风纪仲裁 |
|
||||
| blockedForever | num | 是否永封 | 0:非永封<br />1:永封 |
|
||||
| reasonType | num | 违规类型 | **违规类型见表** |
|
||||
| reasonTypeName | str | 违规类型名称 | |
|
||||
| operatorName | str | 空 | 作用尚不明确 |
|
||||
| caseId | num | 仲裁信息 | 心态封禁时为0 |
|
||||
| ctime | num | 创建时间 | 时间戳 |
|
||||
| commentSum | num | 该条目评论数 | |
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------------- | ---- | --------------- | ---------------------------- |
|
||||
| id | num | 封禁公示ID | |
|
||||
| uname | str | 对象用户名 | |
|
||||
| face | str | 对象用户头像url | |
|
||||
| uid | num | 对象用户UID | |
|
||||
| originTitle | str | 来源标题 | |
|
||||
| blockedRemark | str | | |
|
||||
| originUrl | str | 来源url | |
|
||||
| originContentModify | str | 裁决正文 | |
|
||||
| originType | num | 来源类型 | **见上表** |
|
||||
| originTypeName | str | 来源名 | |
|
||||
| punishTitle | str | 公示标题 | |
|
||||
| punishTime | num | 处罚时间 | 时间戳 |
|
||||
| punishType | num | 处理手段类型 | 2:封禁<br />3:永久封禁 |
|
||||
| punishTypeName | str | 处理手段名 | |
|
||||
| moralNum | num | 0 | 作用尚不明确 |
|
||||
| blockedDays | num | 封禁天数 | 永封为0 |
|
||||
| publishStatus | num | 1 | 作用尚不明确 |
|
||||
| blockedType | num | 处理来源 | 0:系统封禁<br />1:风纪仲裁 |
|
||||
| blockedForever | num | 是否永封 | 0:非永封<br />1:永封 |
|
||||
| reasonType | num | 违规类型 | **违规类型见表** |
|
||||
| reasonTypeName | str | 违规类型名称 | |
|
||||
| operatorName | str | 空 | 作用尚不明确 |
|
||||
| caseId | num | 仲裁信息 | 系统封禁时固定为0 |
|
||||
| ctime | num | 创建时间 | 时间戳 |
|
||||
| commentSum | num | 该条目评论数 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询公示ID为`1091621`的公示详情
|
||||
|
||||
http://api.bilibili.com/x/credit/blocked/info?id=1091621
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/credit/blocked/info' \
|
||||
--data-urlencode 'id=1091621'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -227,8 +290,9 @@ http://api.bilibili.com/x/credit/blocked/info?id=1091621
|
||||
"operatorName": "",
|
||||
"caseId": 0,
|
||||
"ctime": 1585560309,
|
||||
"commentSum": 2358
|
||||
"commentSum": 2379
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
211
blackroom/jury/action.md
Normal file
@ -0,0 +1,211 @@
|
||||
# 仲裁操作
|
||||
|
||||
**本页所有操作均需登录(Cookie或APP)**
|
||||
|
||||
## 申请加入风纪委员会
|
||||
|
||||
> http://api.bilibili.com/x/credit/jury/apply
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
只有用户会员等级≥Lv4、90天内无违规、实名认证且非封禁状态才可以申请加入风纪委员会
|
||||
|
||||
每日10:00开放新名额
|
||||
|
||||
申请成功后可获得30天资格
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------------------ | -------------- | ---- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | ------ | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111:csrf 校验失败<br />25001:申请等级限制(会员等级<3)<br />25002:没有实名认证<br />25003:90天内有封禁记录<br />25013:不能重复申请风纪委资格<br />25016:当日风纪委员名额已发完 |
|
||||
| message | str | 信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
Cookie方式:
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/credit/jury/apply' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
APP方式:
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/credit/jury/apply' \
|
||||
--data-urlencode 'access_key=xxx'
|
||||
```
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 拉取新案件
|
||||
|
||||
> http://api.bilibili.com/x/credit/jury/caseObtain
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------------------ | -------------- | ---- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ------ | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br/>25005:不是风纪委员<br />25008:没有案件<br/>25014:已审满 |
|
||||
| message | str | 信息 | 默认为0 |
|
||||
| ttl | num | 1 | 作用尚不明确 |
|
||||
| data | object | 数据本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ---------- | ---- |
|
||||
| id | num | 仲裁案件ID | |
|
||||
|
||||
**示例:**
|
||||
|
||||
Cookie方式:
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/credit/jury/caseObtain' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
APP方式:
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/credit/jury/caseObtain' \
|
||||
--data-urlencode 'access_key=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"id": 1239790
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 进行仲裁投票
|
||||
|
||||
> http://api.bilibili.com/x/credit/jury/vote
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------------- | ---- | ------------------------ | -------------- | --------------------------------------- |
|
||||
| cid | num | 案件ID | 必要 | |
|
||||
| vote | num | 投票类型 | 必要 | 见「[众裁信息](judgement_info.md)」中表 |
|
||||
| content | str | 理由 | 非必要 | 见「[众裁信息](judgement_info.md)」中表 |
|
||||
| likes | nums | 支持的观点 | 非必要 | |
|
||||
| hates | nums | 反对的观点 | 非必要 | |
|
||||
| attr | num | 是否匿名 | 非必要 | 0:匿名<br />1:不匿名 |
|
||||
| apply_type | num | 是否更改原因 | 非必要 | 0:保持原来原因<br />1:投票给新原因 |
|
||||
| origin_reason | num | 原始原因 | 非必要 | 见「封禁公示」中表 |
|
||||
| apply_reason | num | 新原因 | 非必要 | 见「封禁公示」中表 |
|
||||
| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | ------ | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br/>-101:未登录<br />-111:csrf 错误<br />-400:请求错误(投票类型错误)<br />25005:不是风纪委员<br />25009: 案件不存在<br/>25011:投票类型错误<br />25012:重复投票 |
|
||||
| message | str | 信息 | 默认为0 |
|
||||
| ttl | num | 1 | 作用尚不明确 |
|
||||
|
||||
**示例:**
|
||||
|
||||
为案件`2333`投票,建议封禁,无理由,不匿名,无支持/反对观点,不修改投票原因
|
||||
|
||||
Cookie方式:
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/credit/jury/vote' \
|
||||
--data-urlencode 'cid=2333' \
|
||||
--data-urlencode 'vote=1' \
|
||||
--data-urlencode 'content=' \
|
||||
--data-urlencode 'likes=' \
|
||||
--data-urlencode 'hates=' \
|
||||
--data-urlencode 'attr=1' \
|
||||
--data-urlencode 'apply_type=0' \
|
||||
--data-urlencode 'origin_reason=' \
|
||||
--data-urlencode 'apply_reason=' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
APP方式:
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/credit/jury/vote' \
|
||||
--data-urlencode 'access_key=xxx' \
|
||||
--data-urlencode 'cid=2333' \
|
||||
--data-urlencode 'vote=1' \
|
||||
--data-urlencode 'content=' \
|
||||
--data-urlencode 'likes=' \
|
||||
--data-urlencode 'hates=' \
|
||||
--data-urlencode 'attr=1' \
|
||||
--data-urlencode 'apply_type=0' \
|
||||
--data-urlencode 'origin_reason=' \
|
||||
--data-urlencode 'apply_reason='
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
250
blackroom/jury/base_info.md
Normal file
@ -0,0 +1,250 @@
|
||||
# 风纪委员会用户基本信息
|
||||
|
||||
**本页所有操作均需登录(Cookie或APP)**
|
||||
|
||||
## 基本数据
|
||||
|
||||
> http://api.bilibili.com/x/credit/jury/jury
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------ | ----------- | ---- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ------ | -------- | ----------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录 |
|
||||
| message | str | 信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | object | 数据本体 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------- | ---- | -------------------- | ---------------------------- |
|
||||
| caseTotal | num | 总众裁数 | |
|
||||
| face | str | 用户头像url | |
|
||||
| restDays | num | 当前资格剩余天数 | |
|
||||
| rightRadio | num | 当前裁决正确率百分比 | 裁决数小于3时固定为50 |
|
||||
| status | num | 当前状态 | 1:具有资格<br />2:资格失效 |
|
||||
| uname | str | 用户昵称 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
Cookie方式:
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/credit/jury/jury' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
APP方式:
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/credit/jury/jury' \
|
||||
--data-urlencode 'access_key=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"caseTotal": 7,
|
||||
"face": "http://i1.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
|
||||
"restDays": 30,
|
||||
"rightRadio": 80,
|
||||
"status": 1,
|
||||
"uname": "社会易姐QwQ"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 统计信息
|
||||
|
||||
> http://api.bilibili.com/x/credit/jury/kpi
|
||||
|
||||
*方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------ | ----------- | ---- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ----- | -------- | ----------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录 |
|
||||
| message | str | 信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | array | 数据本体 | |
|
||||
|
||||
`data`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------------- | ---- |
|
||||
| 0 | obj | 第1个月统计 | |
|
||||
| n | obj | 第(n+1)个月统计 | |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`data` 数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------- | ---- | -------- | ---- |
|
||||
| id | num | 0 | |
|
||||
| mid | num | 用户id | |
|
||||
| number | num | 尚不明确 | |
|
||||
| day | num | 开始时间 | |
|
||||
| rate | num | 尚不明确 | |
|
||||
| rank | num | 尚不明确 | |
|
||||
| rankper | num | 尚不明确 | |
|
||||
| rankTotal | num | 尚不明确 | |
|
||||
| point | num | 32767 | |
|
||||
| activeDays | num | 活跃天数 | |
|
||||
| voteTotal | num | 投票总数 | |
|
||||
| voteRadio | num | 尚不明确 | |
|
||||
| blockedTotal | num | 尚不明确 | |
|
||||
| termStart | num | 尚不明确 | |
|
||||
| termEnd | num | 尚不明确 | |
|
||||
| opinion_likes | num | 观点获赞 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
Cookie方式:
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/credit/jury/kpi' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
APP方式:
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/credit/jury/kpi' \
|
||||
--data-urlencode 'access_key=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": [
|
||||
{
|
||||
"id": 0,
|
||||
"mid": 114343368,
|
||||
"number": 199046,
|
||||
"day": 1539792000,
|
||||
"rate": 1,
|
||||
"rank": 0,
|
||||
"rankper": 1,
|
||||
"rankTotal": 39584,
|
||||
"point": 32767,
|
||||
"activeDays": 23,
|
||||
"voteTotal": 422,
|
||||
"voteRadio": 0,
|
||||
"blockedTotal": 0,
|
||||
"termStart": 1537200000,
|
||||
"termEnd": 1539792000,
|
||||
"opinion_likes": 18
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 检查申请风纪委员会资格
|
||||
|
||||
> http://api.bilibili.com/x/credit/jury/requirement
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
只有用户会员等级≥Lv4、90天内无违规、实名认证且非封禁状态才可以申请加入风纪委员会
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------ | ----------- | ---- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ------ | -------- | ----------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录 |
|
||||
| message | str | 信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | object | 数据本体 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | ---------------- | ------------------------------------- |
|
||||
| blocked | bool | 是否被封禁 | true:是<br />false:否<br />**下同** |
|
||||
| cert | bool | 是否实名认证 | |
|
||||
| level | bool | 等级是否>=4 | |
|
||||
| rule | bool | 是否90天内无违规 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
Cookie方式:
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/credit/jury/requirement' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
APP方式:
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/credit/jury/requirement' \
|
||||
--data-urlencode 'access_key=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"blocked": false,
|
||||
"cert": true,
|
||||
"level": true,
|
||||
"rule": true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
544
blackroom/jury/judgement_info.md
Normal file
@ -0,0 +1,544 @@
|
||||
# 众裁信息
|
||||
|
||||
投票类型码总览:
|
||||
|
||||
| 代码 | 含义 |
|
||||
| - | ---- |
|
||||
| 0 | 未投票 |
|
||||
| 1 | 封禁 |
|
||||
| 2 | 否 |
|
||||
| 3 | 弃权 |
|
||||
| 4 | 删除 |
|
||||
|
||||
## 查询投票过的单个案件
|
||||
|
||||
> http://api.bilibili.com/x/credit/jury/juryCase
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
只能查询自己参与众裁的
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ------------ | ------ | ------------- | ------------- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
| cid | num | 案件ID | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ------ | -------- | ------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-400:请求错误<br />25010:没有权限查看案件 |
|
||||
| message | str | 信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 数据本体 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ------ | -------- | ------------ |
|
||||
| id | num | 案件ID | |
|
||||
| mid | num | 被举报用户UID | |
|
||||
| status | num | 裁决状态 | 1:投票中<br />2:停止发放<br />3:复核中(结案中)<br />4:已裁决<br />5:待重启<br />6:未裁决<br />7:冻结中<br />8:队列中 |
|
||||
| statusTitle | str | 封禁时间文字 | `judgeType`=1时有效 |
|
||||
| originType | num | 来源类型 | 见「封禁公示」中表 |
|
||||
| reasonType | num | 原因类型 | 见「封禁公示」中表 |
|
||||
| originContent | str | 被举报的原文 | |
|
||||
| punishResult | num | 处理结果 | 0:无<br />1:封禁3天<br />2:封禁7天<br />3:永封<br />4:其他封禁天数<br />5:封禁15天<br />6:仅删除不封禁 |
|
||||
| punishTitle | str | 处罚原因 | |
|
||||
| judgeType | num | 裁决类型 | `status`=4时有效<br />0:未裁决<br/>1:违规<br/>2:不违规 |
|
||||
| originUrl | str | 来源url | |
|
||||
| blockedDays | num | 封禁时间 | `judgeType`=1时有效 |
|
||||
| putTotal | num | ??? | 作用尚不明确 |
|
||||
| voteRule | num | 投票不违规人数 | |
|
||||
| voteBreak | num | 投票建议封禁人数 | |
|
||||
| voteDelete | num | 投票建议删除人数 | |
|
||||
| startTime | num | 裁决起始时间 | 时间戳 |
|
||||
| endTime | num | 裁决截止时间 | 时间戳<br />未结案固定为24小时 |
|
||||
| ctime | num | 举报创建时间 | 时间戳 |
|
||||
| mtime | num | 开始拉取时间 | 时间戳 |
|
||||
| originTitle | str | 来源标题 | |
|
||||
| relationId | str | 违规关系标识字 | {评论rpID}-{违规类型ID}-{来源对象ID} |
|
||||
| face | str | 被举报用户头像url | |
|
||||
| uname | str | 被举报用户昵称 | |
|
||||
| vote | num | 我的投票 | **见上表** |
|
||||
| case_type | num | 众裁类型 | 0:小众众裁<br />1:大众众裁 |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询案件`1239790`的信息
|
||||
|
||||
Cookie方式:
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/credit/jury/juryCase' \
|
||||
--data-urlencode 'cid=1239790' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
APP方式:
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/credit/jury/juryCase' \
|
||||
--data-urlencode 'access_key=xxx' \
|
||||
--data-urlencode 'cid=1239790' \
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"id": 1239790,
|
||||
"mid": 351783425,
|
||||
"status": 4,
|
||||
"statusTitle": "封禁7天",
|
||||
"originType": 1,
|
||||
"reasonType": 9,
|
||||
"originContent": "up主,在和平精英里的喷子是霰(xian)弹枪,不是散(san)弹枪。",
|
||||
"punishResult": 0,
|
||||
"punishTitle": "在评论中发布引战言论",
|
||||
"judgeType": 2,
|
||||
"originUrl": "https://www.bilibili.com/video/BV15x411X7eV/#reply1728344012",
|
||||
"blockedDays": 7,
|
||||
"putTotal": 272,
|
||||
"voteRule": 409,
|
||||
"voteBreak": 17,
|
||||
"voteDelete": 89,
|
||||
"startTime": 1594467941,
|
||||
"endTime": 1594471525,
|
||||
"ctime": 1594464499,
|
||||
"mtime": 1594471678,
|
||||
"originTitle": "和平精英揭秘真相68:氪金试水最新抽奖活动,到底是亏了还是赚了?",
|
||||
"relationId": "1728344012-1-57465308",
|
||||
"face": "http://i2.hdslb.com/bfs/face/e1018566c615059b664dc6eae3a5235c31cd92fe.jpg",
|
||||
"uname": "零酱a",
|
||||
"vote": 4,
|
||||
"case_type": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 查询案件众裁信息
|
||||
|
||||
> http://api.bilibili.com/x/credit/jury/caseInfo
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
注:该接口无需登录
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------ | ------ | ---- |
|
||||
| cid | num | 案件ID | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ----------------------------- | -------- | --------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误 |
|
||||
| message | str | 信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | 有效时:obj<br />无效时:null | 数据本体 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------- | ---- | ----------------- | ------------------------------------------------------------ |
|
||||
| id | num | 案件ID | |
|
||||
| mid | num | 被举报用户UID | |
|
||||
| status | num | 裁决状态 | 1:投票中<br />2:停止发放<br />3:复核中(结案中)<br />4:已裁决<br />5:待重启<br />6:未裁决<br />7:冻结中<br />8:队列中 |
|
||||
| originType | num | 来源类型 | 见「封禁公示」中表 |
|
||||
| reasonType | num | 原因类型 | 见「封禁公示」中表 |
|
||||
| originContent | str | 被举报的原文 | |
|
||||
| punishResult | num | 处理结果 | 0:无<br />1:封禁3天<br />2:封禁7天<br />3:永封<br />4:其他封禁天数<br />5:封禁15天<br />6:仅删除不封禁 |
|
||||
| judgeType | num | 裁决类型 | `status`=4时有效<br />0:未裁决<br/>1:违规<br/>2:不违规 |
|
||||
| originUrl | str | 来源url | |
|
||||
| blockedDays | num | 封禁时间 | `judgeType`=1时有效 |
|
||||
| putTotal | num | ??? | 作用尚不明确 |
|
||||
| voteRule | num | 投票不违规人数 | |
|
||||
| voteBreak | num | 投票建议封禁人数 | |
|
||||
| voteDelete | num | 投票建议删除人数 | |
|
||||
| startTime | num | 裁决起始时间 | 时间戳 |
|
||||
| endTime | num | 裁决截止时间 | 时间戳<br />未结案固定为24小时 |
|
||||
| ctime | num | 举报创建时间 | 时间戳 |
|
||||
| mtime | num | 开始拉取时间 | 时间戳 |
|
||||
| originTitle | str | 来源标题 | |
|
||||
| relationId | str | 违规关系标识字 | {评论rpID}-{违规类型ID}-{来源对象ID} |
|
||||
| face | str | 被举报用户头像url | |
|
||||
| uname | str | 被举报用户昵称 | |
|
||||
| vote | num | 0 | 固定为0 |
|
||||
| case_type | num | 众裁类型 | 0:小众众裁<br />1:大众众裁 |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询案件`1239790`的信息
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/credit/jury/juryCase' \
|
||||
--data-urlencode 'cid=1239790'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"id": 1239790,
|
||||
"mid": 351783425,
|
||||
"status": 4,
|
||||
"originType": 1,
|
||||
"reasonType": 9,
|
||||
"originContent": "up主,在和平精英里的喷子是霰(xian)弹枪,不是散(san)弹枪。",
|
||||
"punishResult": 0,
|
||||
"judgeType": 2,
|
||||
"originUrl": "https://www.bilibili.com/video/BV15x411X7eV/#reply1728344012",
|
||||
"blockedDays": 7,
|
||||
"putTotal": 272,
|
||||
"voteRule": 409,
|
||||
"voteBreak": 17,
|
||||
"voteDelete": 89,
|
||||
"startTime": 1594467941,
|
||||
"endTime": 1594471525,
|
||||
"ctime": 1594464499,
|
||||
"mtime": 1594471678,
|
||||
"originTitle": "和平精英揭秘真相68:氪金试水最新抽奖活动,到底是亏了还是赚了?",
|
||||
"relationId": "1728344012-1-57465308",
|
||||
"face": "http://i2.hdslb.com/bfs/face/e1018566c615059b664dc6eae3a5235c31cd92fe.jpg",
|
||||
"uname": "零酱a",
|
||||
"vote": 0,
|
||||
"case_type": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 查询我的众裁记录
|
||||
|
||||
> http://api.bilibili.com/x/credit/jury/caseList
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ------------ | ------ | ------------- | ------------- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
| pn | num | 页码 | 非必要 | 默认为1 |
|
||||
| ps | num | 每页显示数量 | 非必要 | 默认为30<br />最大30 |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ------ | -------- | ------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-400:请求错误 |
|
||||
| message | str | 信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | array | 仲裁记录列表 | |
|
||||
|
||||
`data`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | --------------- | ------------ |
|
||||
| 0 | obj | 仲裁记录1 | |
|
||||
| n | obj | 仲裁记录(n+1) | 按照时间顺序 |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`data`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------- | ---- | ----------------- | ------------------------------------------------------------ |
|
||||
| id | num | 案件ID | |
|
||||
| mid | num | 被举报用户UID | |
|
||||
| status | num | 裁决状态 | 1:投票中<br />2:停止发放<br />3:复核中(结案中)<br />4:已裁决<br />5:待重启<br />6:未裁决<br />7:冻结中<br />8:队列中 |
|
||||
| originType | num | 来源类型 | 见「封禁公示」中表 |
|
||||
| reasonType | num | 原因类型 | 见「封禁公示」中表 |
|
||||
| originContent | str | 被举报的原文 | |
|
||||
| punishResult | num | 处理结果 | 0:无<br />1:封禁3天<br />2:封禁7天<br />3:永封<br />4:其他封禁天数<br />5:封禁15天<br />6:仅删除不封禁 |
|
||||
| punishTitle | str | 处罚原因 | |
|
||||
| judgeType | num | 裁决类型 | `status`=4时有效<br />0:未裁决<br/>1:违规<br/>2:不违规 |
|
||||
| originUrl | str | 来源url | |
|
||||
| blockedDays | num | 封禁时间 | `judgeType`=1时有效 |
|
||||
| putTotal | num | ??? | 作用尚不明确 |
|
||||
| voteRule | num | 投票不违规人数 | |
|
||||
| voteBreak | num | 投票建议封禁人数 | |
|
||||
| voteDelete | num | 投票建议删除人数 | |
|
||||
| startTime | num | 裁决起始时间 | 时间戳 |
|
||||
| endTime | num | 裁决截止时间 | 时间戳<br />未结案固定为24小时 |
|
||||
| ctime | num | 举报创建时间 | 时间戳 |
|
||||
| mtime | num | 开始拉取时间 | 时间戳 |
|
||||
| originTitle | str | 来源标题 | |
|
||||
| relationId | str | 违规关系标识字 | {评论rpID}-{违规类型ID}-{来源对象ID} |
|
||||
| face | str | 被举报用户头像url | |
|
||||
| uname | str | 被举报用户昵称 | |
|
||||
| vote | num | 我的投票 | **见上表** |
|
||||
| voteTime | num | 我的裁决时间 | 毫秒 时间戳 |
|
||||
| case_type | num | 众裁类型 | 0:小众众裁<br />1:大众众裁 |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询我的历史众裁,第1页,每页显示1个案件
|
||||
|
||||
Cookie方式:
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/credit/jury/caseList' \
|
||||
--data-urlencode 'ps=1' \
|
||||
--data-urlencode 'pn=1' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
APP方式:
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/credit/jury/caseList' \
|
||||
--data-urlencode 'access_key=xxx' \
|
||||
--data-urlencode 'ps=1' \
|
||||
--data-urlencode 'pn=1'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": [
|
||||
{
|
||||
"id": 1241808,
|
||||
"mid": 298264370,
|
||||
"status": 4,
|
||||
"originType": 1,
|
||||
"reasonType": 9,
|
||||
"originContent": "别在发这种傻逼视频了好吗?真要搞到禁摩才甘心。",
|
||||
"punishResult": 6,
|
||||
"punishTitle": "在评论中发布引战言论",
|
||||
"judgeType": 1,
|
||||
"originUrl": "https://www.bilibili.com/video/av328669697/#reply3165369965",
|
||||
"blockedDays": 7,
|
||||
"putTotal": 251,
|
||||
"voteRule": 14,
|
||||
"voteBreak": 140,
|
||||
"voteDelete": 373,
|
||||
"startTime": 1594528662,
|
||||
"endTime": 1594530687,
|
||||
"ctime": 1594528108,
|
||||
"mtime": 1594530802,
|
||||
"originTitle": "我这里有记录仪!略略略略略略哈哈哈,干得漂亮!",
|
||||
"relationId": "3165369965-1-328669697",
|
||||
"face": "http://i1.hdslb.com/bfs/face/d69912bb2a51f08176bcdbf4ba15e4c2b0962ad9.jpg",
|
||||
"uname": "MyLSTicKnight",
|
||||
"vote": 4,
|
||||
"voteTime": 1594528700000,
|
||||
"case_type": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 众议观点
|
||||
|
||||
> http://api.bilibili.com/x/credit/jury/case/opinion
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ------------ | ------ | ------------- | ------------- |
|
||||
| cid | num | 案件id | 必要 | |
|
||||
| ps | num | 每页项数 | 非必要 | 默认为10 |
|
||||
| pn | num | 页码 | 非必要 | 默认为1 |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ------ | -------- | ------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误 |
|
||||
| message | str | 信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 数据本体 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ------ | -------- | ------------ |
|
||||
| count | num | 观点总数 | |
|
||||
| opinion | 有效时:array<br />无效时:null | 观点列表 | |
|
||||
|
||||
`data` 中的`opinion` 数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------- | ------------ |
|
||||
| 0 | obj | 观点1 | |
|
||||
| n | obj | 观点(n+1) | 按照时间顺序 |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`opinion` 数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ------ | -------- | ------------ |
|
||||
| mid | num | 用户UID | 仅非匿名有此项 |
|
||||
| face | str | 用户头像 | 仅非匿名有此项 |
|
||||
| name | str | 用户昵称 | 仅非匿名有此项 |
|
||||
| opid | num | 观点ID | |
|
||||
| vote | num | 投票选择 | **见上表** |
|
||||
| content | str | 观点内容 | |
|
||||
| attr | num | 是否匿名 | 0:匿名<br />1:不匿名 |
|
||||
| hate | num | 喜欢人数 | |
|
||||
| like | num | 不喜欢人数 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
查看案件`1239790`的众议观点,每页10项,查看第一页
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/credit/jury/case/opinion' \
|
||||
--data-urlencode 'cid=1239790' \
|
||||
--data-urlencode 'ps=10' \
|
||||
--data-urlencode 'pn=1' \
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"count": 23,
|
||||
"opinion": [
|
||||
{
|
||||
"opid": 250943982,
|
||||
"vote": 2,
|
||||
"content": "不懂,正常的科普也有人杠吗?没文化真可怕",
|
||||
"attr": 0,
|
||||
"hate": 0,
|
||||
"like": 0
|
||||
},
|
||||
{
|
||||
"mid": 59894,
|
||||
"face": "http://i2.hdslb.com/bfs/face/0cc48fc40867537d5a09a125e90f76183efbfdfa.gif",
|
||||
"name": "雷歐諾斯",
|
||||
"opid": 250956267,
|
||||
"vote": 2,
|
||||
"content": "这个虽然不是正确的说法,但本身是一种观点。而且已经成为一种梗了。不属于引战。",
|
||||
"attr": 1,
|
||||
"hate": 0,
|
||||
"like": 0
|
||||
},
|
||||
{
|
||||
"opid": 250956259,
|
||||
"vote": 2,
|
||||
"content": "正常科普,不构成引战。",
|
||||
"attr": 0,
|
||||
"hate": 0,
|
||||
"like": 0
|
||||
},
|
||||
{
|
||||
"mid": 215020429,
|
||||
"face": "http://i1.hdslb.com/bfs/face/1d43c302e67db4d21b9c5c0f0dc0b8786e8086d5.jpg",
|
||||
"name": "瞎子广_广告歌41",
|
||||
"opid": 250955160,
|
||||
"vote": 2,
|
||||
"content": "这个其实也没啥事真的",
|
||||
"attr": 1,
|
||||
"hate": 0,
|
||||
"like": 0
|
||||
},
|
||||
{
|
||||
"mid": 108194360,
|
||||
"face": "http://i0.hdslb.com/bfs/face/b78c92a69ff9977b7d08d4f7edc0a051a3d6ea3e.jpg",
|
||||
"name": "籽云奕",
|
||||
"opid": 250953998,
|
||||
"vote": 2,
|
||||
"content": "仅仅是科普评论,无过激言论",
|
||||
"attr": 1,
|
||||
"hate": 0,
|
||||
"like": 0
|
||||
},
|
||||
{
|
||||
"mid": 34503714,
|
||||
"face": "http://i2.hdslb.com/bfs/face/eb2d0853235a56d035303f4f3614dcb6e0cf66fa.jpg",
|
||||
"name": "十六夜紅月丶",
|
||||
"opid": 250950982,
|
||||
"vote": 2,
|
||||
"content": "无过激言论,正常科普罢了",
|
||||
"attr": 1,
|
||||
"hate": 0,
|
||||
"like": 0
|
||||
},
|
||||
{
|
||||
"opid": 250950973,
|
||||
"vote": 2,
|
||||
"content": "其实两种读法都是正确的,虽然想要纠正别人的错误。不过自己本身就错了。还是保留吧,没什么引战的",
|
||||
"attr": 0,
|
||||
"hate": 0,
|
||||
"like": 0
|
||||
},
|
||||
{
|
||||
"mid": 436136443,
|
||||
"face": "http://i1.hdslb.com/bfs/face/6b4151d8e030eddd073add6ef18ccbb00aa48d0f.jpg",
|
||||
"name": "兄弟好牛啤",
|
||||
"opid": 250950417,
|
||||
"vote": 2,
|
||||
"content": "有点经典的争议,但可能还会有人不知道",
|
||||
"attr": 1,
|
||||
"hate": 0,
|
||||
"like": 0
|
||||
},
|
||||
{
|
||||
"mid": 87385400,
|
||||
"face": "http://i2.hdslb.com/bfs/face/0f567e7fa49bcef22010f3ff78e90553d8fffb09.jpg",
|
||||
"name": "小学生de王者荣耀",
|
||||
"opid": 250950402,
|
||||
"vote": 2,
|
||||
"content": "合理纠正up主的错误,建议追究恶意举报者的责任",
|
||||
"attr": 1,
|
||||
"hate": 0,
|
||||
"like": 0
|
||||
},
|
||||
{
|
||||
"opid": 250949840,
|
||||
"vote": 2,
|
||||
"content": "正常科普,没有过激言论,建议保留",
|
||||
"attr": 0,
|
||||
"hate": 0,
|
||||
"like": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
184
broadcast/readme.md
Normal file
@ -0,0 +1,184 @@
|
||||
# 全站广播
|
||||
|
||||
可用的广播服务:
|
||||
|
||||
- [视频实时信息](video_room.md)√
|
||||
|
||||
## 获取广播服务器地址
|
||||
|
||||
> http://api.bilibili.com/x/web-interface/broadcast/servers
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| -------- | ---- | -------- | ------ | --------------------------------- |
|
||||
| platform | str | 平台选择 | 必要 | 为web时输出域名<br />其他时输出ip |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | --------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------- | ------ | ------------------ | ---- |
|
||||
| domain | str | 广播服务器url | |
|
||||
| tcp_port | num | tcp端口 | |
|
||||
| ws_port | num | websocket端口 | |
|
||||
| wss_port | num | websocket ssl端口 | |
|
||||
| heartbeat | num | 最大心跳包间隔时间 | |
|
||||
| nodes | array | 服务节点地址列表 | |
|
||||
| backoff | obj | ??? | |
|
||||
| heartbeat_max | num | ??? | |
|
||||
|
||||
`data`中的`nodes`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------- | ---- |
|
||||
| 0 | str | 服务节点1 | |
|
||||
| n | str | 服务节点(n+1) | |
|
||||
| …… | str | …… | |
|
||||
|
||||
`data`中的`backoff`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------- | ---- | ------ | ---- |
|
||||
| max_delay | num | ??? | |
|
||||
| base_delay | num | ??? | |
|
||||
| factor | num | ??? | |
|
||||
| jitter | num | ??? | |
|
||||
|
||||
示例:
|
||||
|
||||
当`platform`=`web`时,不显示节点ip
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/web-interface/broadcast/servers' \
|
||||
--data-urlencode 'platform=web'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"domain": "broadcast.chat.bilibili.com",
|
||||
"tcp_port": 7821,
|
||||
"ws_port": 7822,
|
||||
"wss_port": 7823,
|
||||
"heartbeat": 30,
|
||||
"nodes": ["broadcast.chat.bilibili.com"],
|
||||
"backoff": {
|
||||
"max_delay": 300,
|
||||
"base_delay": 3,
|
||||
"factor": 1.8,
|
||||
"jitter": 0.3
|
||||
},
|
||||
"heartbeat_max": 3
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
当`platform`=其他时,显示节点ip
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/web-interface/broadcast/servers' \
|
||||
--data-urlencode 'platform=1'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"domain": "broadcast.chat.bilibili.com",
|
||||
"tcp_port": 7821,
|
||||
"ws_port": 7822,
|
||||
"wss_port": 7823,
|
||||
"heartbeat": 30,
|
||||
"nodes": ["134.175.207.130", "120.92.150.90", "120.92.150.212", "192.144.173.136", "154.8.217.108"],
|
||||
"backoff": {
|
||||
"max_delay": 300,
|
||||
"base_delay": 3,
|
||||
"factor": 1.8,
|
||||
"jitter": 0.3
|
||||
},
|
||||
"heartbeat_max": 3
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 服务器数据包
|
||||
|
||||
连接服务器分为三种方式,分别是ws wss tcp,数据包分为上行和下行
|
||||
|
||||
单个数据包分为头部和正文
|
||||
|
||||
其中上行的有认证包 心跳包,下行的有认证包回复 心跳包回复 普通包
|
||||
|
||||
建立连接后超过30s内未发送认证包,或握手后30s内未发送心跳包,或发送了错误的认证包,都会被强制断开连接
|
||||
|
||||
操作流程:
|
||||
|
||||
1.发送认证包,等待接收认证回复
|
||||
|
||||
2.确认握手成功后,每30s内发送心跳包,并立即接收心跳包回复
|
||||
|
||||
3.空闲时间接收普通包
|
||||
|
||||
### 数据包结构
|
||||
|
||||
头部通用于上行和下行数据包
|
||||
|
||||
头部格式:
|
||||
|
||||
| 偏移量 | 长度(字节) | 类型 | 含义 |
|
||||
| ------ | ------------ | ------ | ---------------------------------------------------- |
|
||||
| 0x00 | 4 | uint32 | 封包总大小(头部大小+正文大小) |
|
||||
| 0x04 | 2 | uint16 | 头部大小(一般为0x0012,18字节) |
|
||||
| 0x06 | 2 | uint16 | 协议版本,可取常数1 |
|
||||
| 0x08 | 4 | uint32 | 操作码(包类型)<br />**见下表** |
|
||||
| 0x0C | 4 | uint32 | sequence(请求次数),可取常数1<br />对于普通包恒为0 |
|
||||
| 0x10 | 2 | uint16 | 保留,一般为0 |
|
||||
|
||||
操作码:
|
||||
|
||||
| 代码 | 含义 |
|
||||
| ---- | -------- |
|
||||
| 2 | 心跳 |
|
||||
| 3 | 心跳回复 |
|
||||
| 7 | 认证 |
|
||||
| 8 | 认证回复 |
|
||||
| 1000 | 实时弹幕 |
|
||||
|
||||
**示例:**
|
||||
|
||||
以下为一个认证包示例,正文为文本`test`
|
||||
|
||||
```
|
||||
00000000 00 00 00 16 00 12 00 01 00 00 00 07 00 00 00 01 |................|
|
||||
00000010 00 00 74 65 73 74 |..test|
|
||||
```
|
||||
|
||||
|
144
broadcast/video_room.md
Normal file
@ -0,0 +1,144 @@
|
||||
# 视频实时信息
|
||||
|
||||
## 认证包(上行)
|
||||
|
||||
**正文内容json:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ------ | -------- | ------------------------------ |
|
||||
| room_id | str | 目标视频 | `video://{稿件avID}/{视频CID}` |
|
||||
| platform | str | 平台标识 | 默认为`web` |
|
||||
| accepts | array | 操作标识 | |
|
||||
|
||||
`array`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ---- | ------------ |
|
||||
| 0 | num | 1000 | 作用尚不明确 |
|
||||
| 1 | num | 1015 | 作用尚不明确 |
|
||||
|
||||
**示例:**
|
||||
|
||||
发送视频`av706`(1P的CID为` 3724723 `)的认证包
|
||||
|
||||
```
|
||||
00000000 00 00 00 55 00 12 00 01 00 00 00 07 00 00 00 01 |...U............|
|
||||
00000010 00 00 7b 22 72 6f 6f 6d 5f 69 64 22 3a 22 76 69 |..{"room_id":"vi|
|
||||
00000020 64 65 6f 3a 2f 2f 37 30 36 2f 33 37 32 34 37 32 |deo://706/372472|
|
||||
00000030 33 22 2c 22 70 6c 61 74 66 72 6f 6d 22 3a 22 77 |3","platfrom":"w|
|
||||
00000040 65 62 22 2c 22 61 63 63 65 70 74 73 22 3a 5b 31 |eb","accepts":[1|
|
||||
00000050 30 30 30 2c 31 30 31 35 5d 7d |000,1015]}|
|
||||
```
|
||||
|
||||
## 认证包回复(下行)
|
||||
|
||||
**正文内容json:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | -------- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| message | str | 错误信息 | 默认为OK |
|
||||
| version | num | 版本号 | |
|
||||
|
||||
示例:
|
||||
|
||||
```
|
||||
00000000 00 00 00 37 00 12 00 01 00 00 00 08 00 00 00 01 |...7............|
|
||||
00000010 00 00 7b 22 63 6f 64 65 22 3a 30 2c 22 6d 65 73 |..{"code":0,"mes|
|
||||
00000020 73 61 67 65 22 3a 22 4f 4b 22 2c 22 76 65 72 73 |sage":"OK","vers|
|
||||
00000030 69 6f 6e 22 3a 31 7d |ion":1}|
|
||||
```
|
||||
|
||||
## 心跳包(上行)
|
||||
|
||||
正文可为任意内容或为空
|
||||
|
||||
**示例:**
|
||||
|
||||
正文为空的示例
|
||||
|
||||
```
|
||||
00000000 00 00 00 12 00 12 00 01 00 00 00 02 00 00 00 01 |................|
|
||||
00000010 00 00 |..|
|
||||
```
|
||||
|
||||
正文为`[object Object]`的示例
|
||||
|
||||
```
|
||||
00000000 00 00 00 21 00 12 00 01 00 00 00 02 00 00 00 01 |...!............|
|
||||
00000010 00 00 5b 6f 62 6a 65 63 74 20 4f 62 6a 65 63 74 |..[object Object|
|
||||
00000020 5d |]|
|
||||
```
|
||||
|
||||
## 心跳包回复(实时观看数)(下行)
|
||||
|
||||
**正文内容json:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | -------- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| message | str | 错误信息 | 默认为OK |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ---------------- | ---- |
|
||||
| room | obj | 视频实时观看信息 | |
|
||||
|
||||
`data`中的`room`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | ------------ | ------------------------------ |
|
||||
| online | num | 实时观看人数 | |
|
||||
| room_id | str | 目标视频 | `video://{稿件avID}/{视频CID}` |
|
||||
|
||||
**示例:**
|
||||
|
||||
当前视频`av706`实时观看人数为13
|
||||
|
||||
```
|
||||
00000000 00 00 00 68 00 12 00 01 00 00 00 03 00 00 00 01 |...h............|
|
||||
00000010 00 00 7b 22 63 6f 64 65 22 3a 30 2c 22 6d 65 73 |..{"code":0,"mes|
|
||||
00000020 73 61 67 65 22 3a 22 30 22 2c 22 64 61 74 61 22 |sage":"0","data"|
|
||||
00000030 3a 7b 22 72 6f 6f 6d 22 3a 7b 22 6f 6e 6c 69 6e |:{"room":{"onlin|
|
||||
00000040 65 22 3a 31 33 2c 22 72 6f 6f 6d 5f 69 64 22 3a |e":13,"room_id":|
|
||||
00000050 22 76 69 64 65 6f 3a 2f 2f 37 30 36 2f 33 37 32 |"video://706/372|
|
||||
00000060 34 37 32 33 22 7d 7d 7d |4723"}}}|
|
||||
```
|
||||
|
||||
## 普通包(实时弹幕)(下行)
|
||||
|
||||
**正文内容json:**
|
||||
|
||||
根数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------ | ------------------------------------------------------------ |
|
||||
| 0 | str | 弹幕属性信息 | 详见[「弹幕」中的属性 p](https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/danmaku/danmaku_xml.md) |
|
||||
| 1 | str | 弹幕内容 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
弹幕属性为`0.25,1,25,16777215,1588433046,1588431486568150,0,33ad5d91,32134068443807747`
|
||||
|
||||
弹幕内容为`此生无悔入东方,来世愿生幻想乡`
|
||||
|
||||
```
|
||||
00000000 00 00 00 91 00 12 00 01 00 00 03 e8 00 00 00 00 |................|
|
||||
00000010 00 00 5b 22 30 2e 32 35 2c 31 2c 32 35 2c 31 36 |..["0.25,1,25,16|
|
||||
00000020 37 37 37 32 31 35 2c 31 35 38 38 34 33 33 30 34 |777215,158843304|
|
||||
00000030 36 2c 31 35 38 38 34 33 31 34 38 36 35 36 38 31 |6,15884314865681|
|
||||
00000040 35 30 2c 30 2c 33 33 61 64 35 64 39 31 2c 33 32 |50,0,33ad5d91,32|
|
||||
00000050 31 33 34 30 36 38 34 34 33 38 30 37 37 34 37 22 |134068443807747"|
|
||||
00000060 2c 22 e6 ad a4 e7 94 9f e6 97 a0 e6 82 94 e5 85 |,"此 生 无 悔|
|
||||
00000070 a5 e4 b8 9c e6 96 b9 ef bc 8c e6 9d a5 e4 b8 96 |入 东 方 ,来 世 |
|
||||
00000080 e6 84 bf e7 94 9f e5 b9 bb e6 83 b3 e4 b9 a1 22 |愿 生 幻 想 乡"|
|
||||
00000090 5d |]|
|
||||
```
|
640
cheese/info.md
Normal file
@ -0,0 +1,640 @@
|
||||
# 课程基本信息
|
||||
|
||||
课程ssID与epID和番剧不互通
|
||||
|
||||
课程avID与普通视频绝大部分api接口不能互通,少部分互通接口如下:
|
||||
|
||||
1. 获取视频简介
|
||||
2. 查询视频状态数
|
||||
3. 查询分P列表
|
||||
4. 视频快照
|
||||
5. 获取弹幕(使用CID)
|
||||
6. 发送弹幕
|
||||
7. 高能进度条(使用CID)
|
||||
|
||||
## 获取课程基本信息
|
||||
|
||||
> http://api.bilibili.com/pugv/view/web/season
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
鉴权方式:referer为 `.bilibili.com`域名下
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| --------- | ---- | -------- | ------------ | -------------------------------------------------- |
|
||||
| season_id | num | 课程ssID | 必要(可选) | season_id与ep_id任选其一<br />**与番剧ssID不互通** |
|
||||
| ep_id | num | 课程epID | 必要(可选) | season_id与ep_id任选其一<br />**与番剧epID不互通** |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ----------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-404:错误 |
|
||||
| message | str | 错误信息 | 默认为success |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------------- | ------ | ----------------------------- | ------------------------------------------------------------ |
|
||||
| brief | obj | 课程概述信息 | |
|
||||
| coupon | obj | 优惠信息 | 若无优惠则无此项 |
|
||||
| cover | str | 课程封面url | |
|
||||
| episode_page | obj | 课程分集信息 | |
|
||||
| episode_sort | num | 1 | **作用尚不明确** |
|
||||
| episodes | array | 课程分集列表 | |
|
||||
| faq | obj | 常见问题信息1 | 合并格式 |
|
||||
| faq1 | obj | 常见问题信息2 | 分离格式 |
|
||||
| payment | obj | 付费信息 | |
|
||||
| purchase_note | obj | 购买须知信息 | |
|
||||
| purchase_protocol | obj | 付费内容协议信息 | |
|
||||
| release_bottom_info | str | 底部更新状态文字 | |
|
||||
| release_info | str | 更新状态文字+更新连载状态文字 | |
|
||||
| release_info2 | str | 更新连载状态文字 | |
|
||||
| release_status | str | 更新状态文字 | |
|
||||
| season_id | num | 课程ssID | **与番剧ssID不互通** |
|
||||
| share_url | str | 页面url | |
|
||||
| short_link | str | bilibili uri链接 | |
|
||||
| stat | obj | 播放数信息 | |
|
||||
| status | num | 10 | **作用尚不明确** |
|
||||
| subtitle | str | 课程简介信息 | |
|
||||
| title | str | 课程标题 | |
|
||||
| up_info | obj | UP主信息 | |
|
||||
| user_status | obj | 用户状态信息 | **需要登录(SESSDATA)且referer为`https://www.bilibili.com`** |
|
||||
|
||||
`data`中的`brief`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ------ | -------- | ---- |
|
||||
| content | str | 空 | |
|
||||
| img | array | 简介图片 | |
|
||||
| title | str | 课程概述 | |
|
||||
| type | num | 2 | |
|
||||
|
||||
`brief`中的`img`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | --------------- | ---- |
|
||||
| 0 | obj | 简介图片1 | |
|
||||
| n | obj | 简介图片(n+1) | |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`img`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------ | ---- | ----------- | ---------------- |
|
||||
| aspect_ratio | num | ??? | **作用尚不明确** |
|
||||
| url | str | 简介图片url | |
|
||||
|
||||
`data`中的`coupon`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | --------- | ------------------- |
|
||||
| amount | num | 折扣乘数 | |
|
||||
| expire_time | str | 结束时间 | YYYY-MM-DD HH:MM:SS |
|
||||
| start_time | str | 起始时间 | YYYY-MM-DD HH:MM:SS |
|
||||
| status | num | ??? | **作用尚不明确** |
|
||||
| title | str | 优惠标题 | |
|
||||
| token | str | 领取token | |
|
||||
|
||||
`data`中的`episode_page`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ---- | -------- | ---- |
|
||||
| next | bool | false | |
|
||||
| num | num | 1 | |
|
||||
| size | num | 总计集数 | |
|
||||
| total | num | 总计集数 | |
|
||||
|
||||
`data`中的`episodes`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | --------------- | ---- |
|
||||
| 0 | obj | 课程分集1 | |
|
||||
| n | obj | 课程分集(n+1) | |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`episodes`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------------- | ---- | ---------------- | ------------------------------------------------------------ |
|
||||
| aid | num | 课程分集avID | **与普通稿件avID部分不互通** |
|
||||
| cid | num | 课程分集CID | **与普通视频CID部分不互通** |
|
||||
| duration | num | 课程分集时间长度 | 单位为秒 |
|
||||
| from | str | pugv | |
|
||||
| id | num | 课程分集epID | **与番剧epID不互通** |
|
||||
| index | num | 课程分集数 | |
|
||||
| page | num | 1 | |
|
||||
| play | num | 课程分集播放量 | |
|
||||
| release_date | num | 课程分集发布时间 | 时间戳 |
|
||||
| status | num | 分集权限属性 | 1:可观看<br />2:不可观看 |
|
||||
| title | str | 课程分集标题 | |
|
||||
| watched | bool | 是否观看该集 | **需要登录(SESSDATA)且referer为`https://www.bilibili.com`**<br />false:未观看<br />true:已观看 |
|
||||
| watchedHistory | num | 该集观看历史 | **需要登录(SESSDATA)且referer为`https://www.bilibili.com`** |
|
||||
|
||||
`data`中的`faq`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | --------------- | ---- |
|
||||
| content | str | 常见问题信息 | |
|
||||
| link | str | 常见问题页面url | |
|
||||
| title | str | 常见问题 | |
|
||||
|
||||
`data`中的`faq1`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ------ | ------------ | ---- |
|
||||
| items | array | 常见问题列表 | |
|
||||
| title | str | 常见问题 | |
|
||||
|
||||
`faq1`中的`items`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | --------------- | ---- |
|
||||
| 0 | obj | 常见问题1 | |
|
||||
| n | obj | 常见问题(n+1) | |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`items`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | -------- | ---- |
|
||||
| answer | str | 回答信息 | |
|
||||
| question | str | 问题信息 | |
|
||||
|
||||
`data`中的`payment`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------------- | ---- | -------------------- | ----------------------- |
|
||||
| desc | str | 付费价格说明 | |
|
||||
| discount_desc | str | 折扣说明信息 | 若无优惠则无此项 |
|
||||
| discount_prefix | str | 折扣类型前缀 | 若无优惠则无此项 |
|
||||
| pay_shade | str | 观看所有视频付费说明 | |
|
||||
| price | num | 课程价格 | 单位为B币(折扣后价格) |
|
||||
| price_format | str | 课程价格 | 单位为B币折扣后价格) |
|
||||
|
||||
`data`中的`purchase_note`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------------------- | ---- |
|
||||
| content | str | 购买须知信息文字内容 | |
|
||||
| link | str | 购买须知页面url | |
|
||||
| title | str | 购买须知 | |
|
||||
|
||||
`data`中的`purchase_protocol`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ---- | ------------------- | ---- |
|
||||
| link | str | 付费内容协议页面url | |
|
||||
| title | str | 付费内容协议 | |
|
||||
|
||||
`data`中的`stat`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ---- | -------------- | ---- |
|
||||
| play | num | 播放量 | |
|
||||
| play_desc | str | 播放量文字信息 | |
|
||||
|
||||
`data`中的`up_info`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ---- | ------------ | ------------------------------------------------------------ |
|
||||
| avatar | str | UP主头像url | |
|
||||
| brief | str | UP主备注 | 非个人签名 |
|
||||
| follower | num | UP主粉丝数 | |
|
||||
| is_follow | num | 是否关注UP主 | **需要登录(SESSDATA)且referer为`https://www.bilibili.com`**<br />0:未关注<br />1:已关注 |
|
||||
| link | str | UP主空间url | |
|
||||
| mid | num | UP主uid | |
|
||||
| pendant | obj | ??? | **作用尚不明确** |
|
||||
| uname | str | UP主昵称 | |
|
||||
|
||||
`up_info`中的`pendant`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | ---- | ---------------- |
|
||||
| image | str | 空 | **作用尚不明确** |
|
||||
| name | str | 空 | **作用尚不明确** |
|
||||
| follower | num | 0 | **作用尚不明确** |
|
||||
|
||||
`data`中的`user_status`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------- | ---- | -------- | ------------------------ |
|
||||
| favored | num | 是否收藏 | 0:未收藏<br />1:已收藏 |
|
||||
| favored_count | num | 1 | **作用尚不明确** |
|
||||
| payed | num | 是否购买 | 0:未购买<br />1:已购买 |
|
||||
| progress | obj | 课程进度 | 未登录无此项 |
|
||||
|
||||
`user_status`中的`progress`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------- | ---- | ------------------ | -------- |
|
||||
| last_ep_id | num | 最后观看的epID | |
|
||||
| last_ep_index | str | 最后观看的标题 | |
|
||||
| last_time | num | 最后观看的时间进度 | 单位为秒 |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询课程`ss61`或分集`ep790`的信息
|
||||
|
||||
ssID方式:
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/pugv/view/web/season' \
|
||||
--data-urlencode 'season_id=61' \
|
||||
-b 'SESSDATA=xxx' \
|
||||
-e 'https://www.bilibili.com'
|
||||
```
|
||||
|
||||
epID方式:
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/pugv/view/web/season' \
|
||||
--data-urlencode 'ep_id=790' \
|
||||
-b 'SESSDATA=xxx' \
|
||||
-e 'https://www.bilibili.com'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"data": {
|
||||
"brief": {
|
||||
"content": "",
|
||||
"img": [
|
||||
{
|
||||
"aspect_ratio": 0.9375,
|
||||
"url": "http://i0.hdslb.com/bfs/archive/29942f338ee570632838403a09871bad130cfe9a.jpg"
|
||||
},
|
||||
{
|
||||
"aspect_ratio": 0.9375,
|
||||
"url": "http://i0.hdslb.com/bfs/archive/913e5c37d836d7954ae9ca19da62a43ba5b34219.jpg"
|
||||
},
|
||||
{
|
||||
"aspect_ratio": 1.3359375,
|
||||
"url": "http://i0.hdslb.com/bfs/archive/a974555bd4a52f0aa865bd192c1e3401ed4cb0ad.jpg"
|
||||
},
|
||||
{
|
||||
"aspect_ratio": 1.3359375,
|
||||
"url": "http://i0.hdslb.com/bfs/archive/73cd7669b251db9d2b62b921bee49a137c3d65dc.jpg"
|
||||
},
|
||||
{
|
||||
"aspect_ratio": 1.0625,
|
||||
"url": "http://i0.hdslb.com/bfs/archive/b084ac8f6710c8eddbc58770a4254508de75eb02.jpg"
|
||||
},
|
||||
{
|
||||
"aspect_ratio": 1.2890625,
|
||||
"url": "http://i0.hdslb.com/bfs/archive/44e32c2cf64b894563829ce65bbef199220f4121.jpg"
|
||||
},
|
||||
{
|
||||
"aspect_ratio": 1.3203125,
|
||||
"url": "http://i0.hdslb.com/bfs/archive/90764fd095810565713b92606dc9cd0cfb25adae.jpg"
|
||||
},
|
||||
{
|
||||
"aspect_ratio": 1.15234375,
|
||||
"url": "http://i0.hdslb.com/bfs/archive/c35ca0ced0ad075a2c13b8fdc1e47b88573bce45.jpg"
|
||||
}
|
||||
],
|
||||
"title": "课程概述",
|
||||
"type": 2
|
||||
},
|
||||
"coupon": {
|
||||
"amount": 0.66,
|
||||
"expire_time": "2020-06-30 00:00:00",
|
||||
"start_time": "2020-05-21 00:00:00",
|
||||
"status": 1,
|
||||
"title": "【上新限时6.6折】《唐盾:0-N4日语精讲》",
|
||||
"token": "B20200521135929161905873"
|
||||
},
|
||||
"cover": "http://i0.hdslb.com/bfs/archive/95d4de9e6691ccc2b18f087f5f654652dee3c01b.jpg",
|
||||
"episode_page": {
|
||||
"next": false,
|
||||
"num": 1,
|
||||
"size": 66,
|
||||
"total": 66
|
||||
},
|
||||
"episode_sort": 1,
|
||||
"episodes": [
|
||||
{
|
||||
"aid": 76973173,
|
||||
"cid": 132105993,
|
||||
"duration": 2223,
|
||||
"from": "pugv",
|
||||
"id": 790,
|
||||
"index": 1,
|
||||
"page": 1,
|
||||
"play": 2406406,
|
||||
"release_date": 1574762407,
|
||||
"status": 1,
|
||||
"title": "唐盾:一起从0基础学日语吧(含50音 词汇试听)",
|
||||
"watched": false,
|
||||
"watchedHistory": 0
|
||||
},
|
||||
{
|
||||
"aid": 77114885,
|
||||
"cid": 132110244,
|
||||
"duration": 3003,
|
||||
"from": "pugv",
|
||||
"id": 795,
|
||||
"index": 2,
|
||||
"page": 1,
|
||||
"play": 49100,
|
||||
"release_date": 1574766759,
|
||||
"status": 2,
|
||||
"title": "50音あ行假名/音调/送气与不送气音",
|
||||
"watched": false,
|
||||
"watchedHistory": 0
|
||||
},
|
||||
{
|
||||
"aid": 77120689,
|
||||
"cid": 131913553,
|
||||
"duration": 3253,
|
||||
"from": "pugv",
|
||||
"id": 797,
|
||||
"index": 3,
|
||||
"page": 1,
|
||||
"play": 49518,
|
||||
"release_date": 1574770029,
|
||||
"status": 2,
|
||||
"title": "50音图的か行、さ行、た行假名",
|
||||
"watched": false,
|
||||
"watchedHistory": 0
|
||||
},
|
||||
…………
|
||||
],
|
||||
"faq": {
|
||||
"content": "Q:课程在什么时间更新?\nA:课程更新频次以页面前端展示为准。购买成功后,课程更新将通过账号动态提示,方便及时观看。\n\nQ:课程购买后有收看时间限制吗?\nA:购买后除不可抗力因素外,课程均可永久收看,请您放心购买。\n\nQ:原价购买课程后,如遇到优惠折扣,是否可以退还差价或重新购买?\nA:虚拟商品付款后无法返还,请您随时留意各类课程折扣信息,按需购买。\n\nQ:购买课程后是否可以加入老师的粉丝群或者用户群?\nA:如老师设置用户群,我们将邀您加入,但我们无法承诺所有老师均提供用户群服务,感谢理解。",
|
||||
"link": "http://m.bilibili.com",
|
||||
"title": "常见问题"
|
||||
},
|
||||
"faq1": {
|
||||
"items": [
|
||||
{
|
||||
"answer": "课程更新频次以页面前端展示为准。购买成功后,课程更新将通过账号动态提示,方便及时观看。",
|
||||
"question": "课程在什么时间更新?"
|
||||
},
|
||||
{
|
||||
"answer": "购买后除不可抗力因素外,课程均可永久收看,请您放心购买。",
|
||||
"question": "课程购买后有收看时间限制吗?"
|
||||
},
|
||||
{
|
||||
"answer": "虚拟商品付款后无法返还,请您随时留意各类课程折扣信息,按需购买。",
|
||||
"question": "原价购买课程后,如遇到优惠折扣,是否可以退还差价或重新购买?"
|
||||
},
|
||||
{
|
||||
"answer": "如老师设置用户群,我们将邀您加入,但我们无法承诺所有老师均提供用户群服务,感谢理解。",
|
||||
"question": "购买课程后是否可以加入老师的粉丝群或者用户群?"
|
||||
}
|
||||
],
|
||||
"title": "常见问题"
|
||||
},
|
||||
"payment": {
|
||||
"desc": "券后 262.68 B币起/53期",
|
||||
"discount_desc": "262.68 B币",
|
||||
"discount_prefix": "券后",
|
||||
"pay_shade": "券后支付 262.68 B币即可观看所有视频",
|
||||
"price": 398.0,
|
||||
"price_format": "398"
|
||||
},
|
||||
"purchase_note": {
|
||||
"content": "1. 本内容为付费内容,购买成功后方可观看。<br/>2. 本内容为虚拟服务,已购买内容不支持退款,敬请谅解。<br/>3. 实际购买价格以页面展示的价格及订单结算页显示价格为准。<br/>4. 如您在购买付费内容时有任何疑问,可随时咨询在线客服。<br/>完整的购买协议,请点击阅读<a href=\"https://www.bilibili.com/blackboard/activity-y-SJTTYBp.html\" color=\"#0ba395\" target=\"_blank\">《bilibili付费内容购买协议》</a>",
|
||||
"link": "https://www.bilibili.com/blackboard/activity-y-SJTTYBp.html",
|
||||
"title": "购买须知"
|
||||
},
|
||||
"purchase_protocol": {
|
||||
"link": "https://www.bilibili.com/blackboard/activity-y-SJTTYBp.html",
|
||||
"title": "bilibili付费内容购买协议"
|
||||
},
|
||||
"release_bottom_info": "没有更多啦~",
|
||||
"release_info": "已完结,共53期",
|
||||
"release_info2": "共53期",
|
||||
"release_status": "已完结",
|
||||
"season_id": 61,
|
||||
"share_url": "https://m.bilibili.com/cheese/play/ss61",
|
||||
"short_link": "bilibili://cheese/season/61",
|
||||
"stat": {
|
||||
"play": 2878146,
|
||||
"play_desc": "287.8万播放"
|
||||
},
|
||||
"status": 10,
|
||||
"subtitle": "新东方名师唐盾的精品日语课,包含50音/N5/N4的词汇/语法/课文/练习精讲,让我们一起轻松学日语~",
|
||||
"title": "唐盾:0-N4日语精讲",
|
||||
"up_info": {
|
||||
"avatar": "http://i1.hdslb.com/bfs/face/564421428d1f74314ed50e16a8f570ad968828b0.jpg",
|
||||
"brief": "唐盾:前新东方日语名师,倾注日语教学、翻译14年。曾任新东方欧亚教育长沙中心总监。",
|
||||
"follower": 21333,
|
||||
"is_follow": 0,
|
||||
"link": "https://space.bilibili.com/19452605",
|
||||
"mid": 19452605,
|
||||
"pendant": {
|
||||
"image": "",
|
||||
"name": "",
|
||||
"pid": 0
|
||||
},
|
||||
"uname": "盾盾桑教你学日语"
|
||||
},
|
||||
"user_status": {
|
||||
"favored": 1,
|
||||
"favored_count": 1,
|
||||
"payed": 0,
|
||||
"progress": {
|
||||
"last_ep_id": 790,
|
||||
"last_ep_index": "唐盾:一起从0基础学日语吧(含50音 词汇试听)",
|
||||
"last_time": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"message": "success"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 获取课程分集列表
|
||||
|
||||
> http://api.bilibili.com/pugv/view/web/ep/list
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
鉴权方式:referer为 `.bilibili.com`域名下
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| --------- | ---- | -------- | ------ | -------------------- |
|
||||
| season_id | num | 课程ssID | 必要 | **与番剧ssID不互通** |
|
||||
| ps | num | 每页项数 | 非必要 | 默认为50 |
|
||||
| pn | num | 页码 | 非必要 | 默认为1 |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ----------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-404:错误 |
|
||||
| message | str | 错误信息 | 默认为success |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ------ | ------------ | ---- |
|
||||
| items | array | 课程分集列表 | |
|
||||
| page | obj | 列表分页信息 | |
|
||||
|
||||
`data`中的`items`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | --------------- | ---- |
|
||||
| 0 | obj | 课程分集1 | |
|
||||
| n | obj | 课程分集(n+1) | |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`items`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------------- | ---- | ---------------- | ------------------------------------------------------------ |
|
||||
| aid | num | 课程分集avID | **与普通稿件avID部分不互通** |
|
||||
| cid | num | 课程分集CID | **与普通视频CID部分不互通** |
|
||||
| duration | num | 课程分集时间长度 | 单位为秒 |
|
||||
| from | str | pugv | |
|
||||
| id | num | 课程分集epID | **与番剧epID不互通** |
|
||||
| index | num | 课程分集数 | |
|
||||
| page | num | 1 | |
|
||||
| play | num | 课程分集播放量 | |
|
||||
| release_date | num | 课程分集发布时间 | 时间戳 |
|
||||
| status | num | 分集权限属性 | 1:可观看<br />2:不可观看 |
|
||||
| title | str | 课程分集标题 | |
|
||||
| watched | bool | 是否观看该集 | **需要登录(SESSDATA)且referer为`https://www.bilibili.com`**<br />false:未观看<br />true:已观看 |
|
||||
| watchedHistory | num | 该集观看历史 | **需要登录(SESSDATA)且referer为`https://www.bilibili.com`** |
|
||||
|
||||
`data`中的`page`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ---- | -------------- | ----------------------------------------- |
|
||||
| next | bool | 是否存在下一页 | false:不存在下一页<br />true:存在下一页 |
|
||||
| num | num | 当前页码 | |
|
||||
| size | num | 每页项数 | |
|
||||
| total | num | 总价项数 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
按照每页5项查询课程`ss61`的分集列表第1页
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/pugv/view/web/ep/list' \
|
||||
--data-urlencode 'season_id=61' \
|
||||
--data-urlencode 'ps=5 ' \
|
||||
--data-urlencode 'pn=1' \
|
||||
-b 'SESSDATA=xxx' \
|
||||
-e 'https://www.bilibili.com'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"data": {
|
||||
"items": [
|
||||
{
|
||||
"aid": 76973173,
|
||||
"cid": 132105993,
|
||||
"duration": 2223,
|
||||
"from": "pugv",
|
||||
"id": 790,
|
||||
"index": 1,
|
||||
"page": 1,
|
||||
"play": 2406951,
|
||||
"release_date": 1574762407,
|
||||
"status": 1,
|
||||
"title": "唐盾:一起从0基础学日语吧(含50音 词汇试听)",
|
||||
"watched": false,
|
||||
"watchedHistory": 0
|
||||
},
|
||||
{
|
||||
"aid": 77114885,
|
||||
"cid": 132110244,
|
||||
"duration": 3003,
|
||||
"from": "pugv",
|
||||
"id": 795,
|
||||
"index": 2,
|
||||
"page": 1,
|
||||
"play": 49106,
|
||||
"release_date": 1574766759,
|
||||
"status": 2,
|
||||
"title": "50音あ行假名/音调/送气与不送气音",
|
||||
"watched": false,
|
||||
"watchedHistory": 0
|
||||
},
|
||||
{
|
||||
"aid": 77120689,
|
||||
"cid": 131913553,
|
||||
"duration": 3253,
|
||||
"from": "pugv",
|
||||
"id": 797,
|
||||
"index": 3,
|
||||
"page": 1,
|
||||
"play": 49522,
|
||||
"release_date": 1574770029,
|
||||
"status": 2,
|
||||
"title": "50音图的か行、さ行、た行假名",
|
||||
"watched": false,
|
||||
"watchedHistory": 0
|
||||
},
|
||||
{
|
||||
"aid": 77606110,
|
||||
"cid": 132897199,
|
||||
"duration": 2823,
|
||||
"from": "pugv",
|
||||
"id": 806,
|
||||
"index": 4,
|
||||
"page": 1,
|
||||
"play": 35800,
|
||||
"release_date": 1575128696,
|
||||
"status": 2,
|
||||
"title": "50音图的な行、は行、ま行假名",
|
||||
"watched": false,
|
||||
"watchedHistory": 0
|
||||
},
|
||||
{
|
||||
"aid": 78015255,
|
||||
"cid": 133651764,
|
||||
"duration": 2165,
|
||||
"from": "pugv",
|
||||
"id": 812,
|
||||
"index": 5,
|
||||
"page": 1,
|
||||
"play": 25842,
|
||||
"release_date": 1575446218,
|
||||
"status": 2,
|
||||
"title": "や行、ら行、わ行假名、拨音",
|
||||
"watched": false,
|
||||
"watchedHistory": 0
|
||||
}
|
||||
],
|
||||
"page": {
|
||||
"next": true,
|
||||
"num": 1,
|
||||
"size": 5,
|
||||
"total": 66
|
||||
}
|
||||
},
|
||||
"message": "success"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
265
cheese/videostream_url.md
Normal file
@ -0,0 +1,265 @@
|
||||
# 课程视频流URL
|
||||
|
||||
<img src="/imgs/download.svg" width="100" height="100"/>
|
||||
|
||||
## 获取课程视频流URL(web端)
|
||||
|
||||
> http://api.bilibili.com/pugv/player/web/playurl
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**注:本接口为课程视频专用,故与普通视频不互通**
|
||||
|
||||
---
|
||||
|
||||
关于视频流会员鉴权:
|
||||
|
||||
- 获取720P及以上清晰度视频时需要登录(Cookie)
|
||||
|
||||
- 获取高帧率(1080P60)/高码率(1080P+)视频时需要有大会员的账号登录(Cookie)
|
||||
- 获取正式课程视频(非试看)时需要有已经购买的账号登录(Cookie)
|
||||
|
||||
---
|
||||
|
||||
获取的url有效时间为120min,超时失效需要重新获取
|
||||
|
||||
**部分视频**会有**分段**,需要特别注意
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------------- | ------ | ------------------------------------------------------------ |
|
||||
| avid | num | 课程avID | 必要 | |
|
||||
| ep_id | num | 课程epID | 必要 | |
|
||||
| cid | num | 视频CID | 必要 | |
|
||||
| qn | num | 视频清晰度选择 | 非必要 | 未登录默认32(480P)<br />登录默认64(720P)<br />**值含义见下表** |
|
||||
| fourk | num | 是否允许4K视频 | 非必要 | 默认为0<br />画质最高1080P:0<br />画质最高4K:1 |
|
||||
|
||||
分辨率代码:
|
||||
|
||||
| 值 | 含义 |
|
||||
| ---- | ---------------------- |
|
||||
| 16 | 360P 流畅 |
|
||||
| 32 | 480P 清晰 |
|
||||
| 64 | 720P 高清(登录) |
|
||||
| 74 | 720P60 高清(大会员) |
|
||||
| 80 | 1080P 高清(登录) |
|
||||
| 112 | 1080P+ 高清(大会员) |
|
||||
| 116 | 1080P60 高清(大会员) |
|
||||
| 120 | 4K 超清(大会员) |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功 <br />-400:请求错误<br />-404:无视频<br />-403:权限不足(未购买) |
|
||||
| message | str | 错误信息 | 默认为success |
|
||||
| data | obj | 数据本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------------ | ------ | ---------------------- | ---------------------------------------- |
|
||||
| accept_format | str | 视频支持的分辨率的格式 | |
|
||||
| code | num | 0 | |
|
||||
| durl | array | 视频分段 | |
|
||||
| seek_param | str | start | |
|
||||
| no_rexcode | num | 0 | |
|
||||
| format | str | 视频格式 | |
|
||||
| fnval | num | 0 | |
|
||||
| video_project | bool | true | |
|
||||
| fnver | num | 0 | |
|
||||
| message | str | 空 | |
|
||||
| type | str | 视频格式 | |
|
||||
| accept_quality | array | 视频支持的分辨率列表 | |
|
||||
| quality | num | 视频分辨率代码 | **值含义见上表** |
|
||||
| timelength | num | 视频长度 | 单位为毫秒<br />不同分辨率可能有略微差异 |
|
||||
| result | str | suee | **作用尚不明确** |
|
||||
| seek_type | str | offset | **作用尚不明确** |
|
||||
| has_paid | bool | false | **作用尚不明确** |
|
||||
| supportFormats | array | 视频分辨率详细列表 | |
|
||||
| from | str | local | **作用尚不明确** |
|
||||
| video_codecid | num | ??? | **作用尚不明确** |
|
||||
| accept_description | array | 视频支持的分辨率列表 | |
|
||||
| status | num | 0 | **作用尚不明确** |
|
||||
|
||||
`data`中的`durl`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------------- | ---- |
|
||||
| 0 | obj | 视频分段1信息 | |
|
||||
| n | obj | 视频分段(n+1)信息 | |
|
||||
| …… | obj | …… | |
|
||||
|
||||
`durl`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------- | ------ | ------------ | ---------------------------------- |
|
||||
| size | num | 视频大小 | 单位为Byte |
|
||||
| ahead | str | 空 | 作用尚不明确 |
|
||||
| length | num | 视频长度 | 单位为毫秒 |
|
||||
| vhead | str | 空 | 作用尚不明确 |
|
||||
| backup_url | array | 备用视频流 | |
|
||||
| url | str | 视频流url | 链接有效时间为120min |
|
||||
| order | num | 视频分段序号 | 某些视频会分为多个片段 |
|
||||
|
||||
`durl`数组中的对象中的`backup_url`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------- | ---------------- |
|
||||
| 0 | str | 备用视频流url | 有效时间为120min |
|
||||
|
||||
`data`中的`supportFormats`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------------- | ---- |
|
||||
| 0 | obj | 分辨率详细信息1 | |
|
||||
| n | obj | 分辨率详细信息(n+1) | |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`supportFormats`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | ---------- | ---- |
|
||||
| format | str | 分辨率名称 | |
|
||||
| description | atr | 分辨率备注 | |
|
||||
| quality | num | 分辨率代码 | |
|
||||
|
||||
`data`中的`accept_description`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | --------------- | ---- |
|
||||
| 0 | str | 分辨率名称1 | |
|
||||
| n | str | 分辨率名称(n+1) | |
|
||||
| …… | str | …… | …… |
|
||||
|
||||
**示例:**
|
||||
|
||||
获取课程`ep790`(CID=`132105993`,avID=`76973173`)的视频流url,清晰度为1080P60
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/pugv/player/web/playurl' \
|
||||
--data-urlencode 'ep_id=790' \
|
||||
--data-urlencode 'avid=76973173' \
|
||||
--data-urlencode 'cid=132105993' \
|
||||
--data-urlencode 'qn=116' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"data": {
|
||||
"accept_format": "flv_p60,flv720_p60,flv,flv720,flv480,flv360",
|
||||
"code": 0,
|
||||
"durl": [
|
||||
{
|
||||
"size": 1105854161,
|
||||
"ahead": "",
|
||||
"length": 2222204,
|
||||
"vhead": "",
|
||||
"backup_url": [
|
||||
"https://upos-sz-mirrorks3c.bilivideo.com/upgcxcode/93/59/132105993/132105993_da2-1-116.flv?e=ig8euxZM2rNcNbNghzTBhwdlhbNz7bUVhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1591596728&gen=playurl&os=ks3cbv&oi=606633803&trid=76bea9a9e56f4cb89a9aff2f8213c9acu&platform=pc&upsig=b271bf493bff32ffe62969582c8d18b4&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=0&orderid=1,2&logo=40000000"
|
||||
],
|
||||
"url": "https://upos-sz-mirrorks3.bilivideo.com/upgcxcode/93/59/132105993/132105993_da2-1-116.flv?e=ig8euxZM2rNcNbNghzTBhwdlhbNz7bUVhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1591596728&gen=playurl&os=ks3bv&oi=606633803&trid=76bea9a9e56f4cb89a9aff2f8213c9acu&platform=pc&upsig=6a8ae3711bd0bb2a484ec2427d659b14&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=0&orderid=0,2&logo=80000000",
|
||||
"order": 1,
|
||||
"md5": ""
|
||||
}
|
||||
],
|
||||
"seek_param": "start",
|
||||
"no_rexcode": 0,
|
||||
"format": "flv_p60",
|
||||
"fnval": 0,
|
||||
"video_project": true,
|
||||
"fnver": 0,
|
||||
"message": "",
|
||||
"type": "FLV",
|
||||
"accept_quality": [
|
||||
116,
|
||||
74,
|
||||
80,
|
||||
64,
|
||||
32,
|
||||
16
|
||||
],
|
||||
"quality": 116,
|
||||
"timelength": 2222204,
|
||||
"result": "suee",
|
||||
"seek_type": "offset",
|
||||
"has_paid": false,
|
||||
"supportFormats": [
|
||||
{
|
||||
"format": "flv_p60",
|
||||
"description": "高清 1080P60",
|
||||
"quality": 116
|
||||
},
|
||||
{
|
||||
"format": "flv720_p60",
|
||||
"description": "高清 720P60",
|
||||
"quality": 74
|
||||
},
|
||||
{
|
||||
"format": "flv",
|
||||
"description": "高清 1080P",
|
||||
"quality": 80
|
||||
},
|
||||
{
|
||||
"format": "flv720",
|
||||
"description": "高清 720P",
|
||||
"quality": 64
|
||||
},
|
||||
{
|
||||
"format": "flv480",
|
||||
"description": "清晰 480P",
|
||||
"quality": 32
|
||||
},
|
||||
{
|
||||
"format": "flv360",
|
||||
"description": "流畅 360P",
|
||||
"quality": 16
|
||||
}
|
||||
],
|
||||
"from": "local",
|
||||
"video_codecid": 7,
|
||||
"accept_description": [
|
||||
"高清 1080P60",
|
||||
"高清 720P60",
|
||||
"高清 1080P",
|
||||
"高清 720P",
|
||||
"清晰 480P",
|
||||
"流畅 360P"
|
||||
],
|
||||
"status": 0
|
||||
},
|
||||
"message": "success"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
## 视频的获取
|
||||
|
||||
将`data`.`durl`.`[1-n]`.`url`或`data`.`durl`.`[1-n]`.`backup_url`.`[0]`中的内容作为url进行GET操作, 如果有多个视频, 需要手动合并处理
|
||||
|
||||
需要验证请求`referer`为 `.bilibili.com`域名下(防盗链),且`user-agent` 不为空
|
||||
|
||||
**referer或user-agent错误的情况会返回403 Forbidden**故无法获取
|
||||
|
||||
**以上述视频url为例:**
|
||||
|
||||
```shell
|
||||
wget 'https://upos-sz-mirrorks3c.bilivideo.com/upgcxcode/93/59/132105993/132105993_da2-1-116.flv?e=ig8euxZM2rNcNbNghzTBhwdlhbNz7bUVhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1591596728&gen=playurl&os=ks3cbv&oi=606633803&trid=76bea9a9e56f4cb89a9aff2f8213c9acu&platform=pc&upsig=b271bf493bff32ffe62969582c8d18b4&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=0&orderid=1,2&logo=40000000' \
|
||||
-e 'https://www.bilibili.com' \
|
||||
-O 'Download_video.flv'
|
||||
```
|
||||
|
||||
响应正文将返回一个flv文件
|
539
comment/action.md
Normal file
@ -0,0 +1,539 @@
|
||||
# 评论区操作
|
||||
|
||||
**本页所有操作均需登录(Cookie或APP)**
|
||||
|
||||
使用该登录token识别用户身份
|
||||
|
||||
## 发表评论
|
||||
|
||||
> http://api.bilibili.com/x/v2/reply/add
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------------------ | -------------- | ------------------------------------------------------------ |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
| type | num | 评论区类型代码 | 必要 | **[类型代码见表](readme.md#评论区类型代码)** |
|
||||
| oid | num | 目标评论区ID | 必要 | |
|
||||
| root | num | 根评论rpID | 非必要 | 二级评论以上使用 |
|
||||
| parent | num | 父评论rpID | 非必要 | 二级评论同根评论ID<br />大于二级评论为要回复的评论ID |
|
||||
| message | str | 发送评论内容 | 必要 | 最大1000字符<br />表情使用表情转义符 |
|
||||
| plat | num | 发送平台标识 | 非必要 | 1:web端<br />2:安卓客户端<br />3:ios客户端<br />4:wp客户端<br />默认为1 |
|
||||
| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-102:账号被封停<br />-111:csrf校验失败<br />-400:请求错误<br />-404:无此项<br />-509:请求过于频繁<br />12001:已经存在评论主题<br />12002:评论区已关闭<br />12003:禁止回复<br />12006:没有该评论<br />12009:评论主体的type不合法<br />12015:需要评论验证码<br />12016:评论内容包含敏感信息<br />12025:评论字数过多<br />12035:该账号被UP主列入评论黑名单<br />12051:重复评论,请勿刷屏<br />**(其他错误码有待补充)** |
|
||||
| message | str | 错误信息 | <br /> |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 数据本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------------- | ----------------------------- | -------------- | ------------------------------------------------------------ |
|
||||
| success_action | num | 0 | **作用尚不明确** |
|
||||
| success_toast | str | 状态文字 | |
|
||||
| need_captcha | bool | false | 评论需要验证码(未证实) |
|
||||
| url | str | 空 | **作用尚不明确** |
|
||||
| rpid | num | 评论rpID | |
|
||||
| rpid_str | str | 评论rpID | 字串格式 |
|
||||
| dialog | num | 回复对方rpID | 若为一级评论则为0<br />若为二级评论则为该评论ID<br />大于二级评论为上一级评论ID |
|
||||
| dialog_str | str | 回复对方rpID | 字串格式 |
|
||||
| root | num | 根评论rpID | 若为一级评论则为0<br />大于一级评论则为根评论ID |
|
||||
| root_str | str | 根评论rpID | 字串格式 |
|
||||
| parent | num | 回复父评论rpID | 若为一级评论则为0<br />若为二级评论则为根评论ID<br />大于二级评论为上一级评论ID |
|
||||
| parent_str | str | 回复父评论rpID | 字串格式 |
|
||||
| emote | obj | 表情转义符信息 | [对象定义见表](readme.md#评论条目对象) |
|
||||
| reply | 有效时:obj<br />无效时:null | | [对象定义见表](readme.md#评论条目对象) |
|
||||
|
||||
**示例:**
|
||||
|
||||
给视频`av243322853`发送内容为`测试test[泠鸢yousa_awsl]`的评论(带有表情转义符),平台标识为1(web端)
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/v2/reply/add' \
|
||||
--data-urlencode 'type=1' \
|
||||
--data-urlencode 'oid=243322853' \
|
||||
--data-urlencode 'message=测试test[泠鸢yousa_awsl]' \
|
||||
--data-urlencode 'plat=1' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"success_action": 0,
|
||||
"success_toast": "发送成功",
|
||||
"need_captcha": false,
|
||||
"url": "",
|
||||
"rpid": 3043212039,
|
||||
"rpid_str": "3043212039",
|
||||
"dialog": 0,
|
||||
"dialog_str": "0",
|
||||
"root": 0,
|
||||
"root_str": "0",
|
||||
"parent": 0,
|
||||
"parent_str": "0",
|
||||
"emote": {
|
||||
"[泠鸢yousa_awsl]": {
|
||||
"id": 2086,
|
||||
"package_id": 93,
|
||||
"state": 0,
|
||||
"type": 3,
|
||||
"attr": 0,
|
||||
"text": "[泠鸢yousa_awsl]",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/7663b729161bd4556c2ec318c07791000743eb56.png",
|
||||
"meta": {
|
||||
"size": 2
|
||||
},
|
||||
"mtime": 1589776042
|
||||
}
|
||||
},
|
||||
"reply": {
|
||||
"rpid": 3043212039,
|
||||
"oid": 243322853,
|
||||
"type": 1,
|
||||
"mid": 293793435,
|
||||
"root": 0,
|
||||
"parent": 0,
|
||||
"dialog": 0,
|
||||
"count": 0,
|
||||
"rcount": 0,
|
||||
"state": 0,
|
||||
"fansgrade": 0,
|
||||
"attr": 0,
|
||||
"ctime": 1592233764,
|
||||
"rpid_str": "3043212039",
|
||||
"root_str": "0",
|
||||
"parent_str": "0",
|
||||
"like": 0,
|
||||
"action": 0,
|
||||
"member": {
|
||||
"mid": "293793435",
|
||||
"uname": "社会易姐QwQ",
|
||||
"sex": "男",
|
||||
"sign": "高中技术宅一枚,爱好MC&电子&8-bit音乐&数码&编程,资深猿厨",
|
||||
"avatar": "http://i1.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
|
||||
"rank": "10000",
|
||||
"DisplayRank": "0",
|
||||
"level_info": {
|
||||
"current_level": 5,
|
||||
"current_min": 0,
|
||||
"current_exp": 0,
|
||||
"next_exp": 0
|
||||
},
|
||||
"pendant": {
|
||||
"pid": 1888,
|
||||
"name": "泠鸢yousa",
|
||||
"image": "http://i0.hdslb.com/bfs/garb/item/3e66e712b8e70c6b02393c54ad5fd8d993eb39f9.png",
|
||||
"expire": 0,
|
||||
"image_enhance": "http://i0.hdslb.com/bfs/garb/item/3e66e712b8e70c6b02393c54ad5fd8d993eb39f9.png"
|
||||
},
|
||||
"nameplate": {
|
||||
"nid": 0,
|
||||
"name": "",
|
||||
"image": "",
|
||||
"image_small": "",
|
||||
"level": "",
|
||||
"condition": ""
|
||||
},
|
||||
"official_verify": {
|
||||
"type": -1,
|
||||
"desc": ""
|
||||
},
|
||||
"vip": {
|
||||
"vipType": 2,
|
||||
"vipDueDate": 1612454400000,
|
||||
"dueRemark": "",
|
||||
"accessStatus": 0,
|
||||
"vipStatus": 1,
|
||||
"vipStatusWarn": "",
|
||||
"themeType": 0,
|
||||
"label": {
|
||||
"path": "",
|
||||
"text": "年度大会员",
|
||||
"label_theme": "annual_vip"
|
||||
}
|
||||
},
|
||||
"fans_detail": null,
|
||||
"following": 0,
|
||||
"is_followed": 0,
|
||||
"user_sailing": {
|
||||
"pendant": {
|
||||
"id": 1888,
|
||||
"name": "泠鸢yousa",
|
||||
"image": "http://i0.hdslb.com/bfs/garb/item/3e66e712b8e70c6b02393c54ad5fd8d993eb39f9.png",
|
||||
"jump_url": "",
|
||||
"type": "suit"
|
||||
},
|
||||
"cardbg": null,
|
||||
"cardbg_with_focus": null
|
||||
}
|
||||
},
|
||||
"content": {
|
||||
"message": "测试test[泠鸢yousa_awsl]",
|
||||
"plat": 1,
|
||||
"device": "",
|
||||
"members": [],
|
||||
"emote": {
|
||||
"[泠鸢yousa_awsl]": {
|
||||
"id": 2086,
|
||||
"package_id": 93,
|
||||
"state": 0,
|
||||
"type": 3,
|
||||
"attr": 0,
|
||||
"text": "[泠鸢yousa_awsl]",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/7663b729161bd4556c2ec318c07791000743eb56.png",
|
||||
"meta": {
|
||||
"size": 2
|
||||
},
|
||||
"mtime": 1589776042
|
||||
}
|
||||
},
|
||||
"jump_url": {},
|
||||
"max_line": 0
|
||||
},
|
||||
"replies": null,
|
||||
"assist": 0,
|
||||
"folder": {
|
||||
"has_folded": false,
|
||||
"is_folded": false,
|
||||
"rule": "https://www.bilibili.com/blackboard/foldingreply.html"
|
||||
},
|
||||
"up_action": {
|
||||
"like": false,
|
||||
"reply": false
|
||||
},
|
||||
"show_follow": false
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 点赞评论
|
||||
|
||||
> http://api.bilibili.com/x/v2/reply/action
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
点赞成功后会同时消去该评论的点踩
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------------------ | -------------- | -------------------------------------------- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
| type | num | 评论区类型代码 | 必要 | **[类型代码见表](readme.md#评论区类型代码)** |
|
||||
| oid | num | 目标评论区ID | 必要 | |
|
||||
| rpid | num | 目标评论rpID | 必要 | |
|
||||
| action | num | 操作代码 | 非必要 | 默认为0<br />0:取消赞<br />1:点赞 |
|
||||
| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-102:账号被封停<br />-111:csrf校验失败<br />-400:请求错误<br />-404:无此项<br />-509:请求过于频繁<br />12002:评论区已关闭<br />12004:禁止操作 赞或踩<br />12006:没有该评论<br />12009:评论主体的type不合法<br />12011:不合法的赞或踩<br />**(其他错误码有待补充)** |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
点赞视频`av243322853`下评论`rpID=3039053308`
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/v2/reply/action' \
|
||||
--data-urlencode 'type=1' \
|
||||
--data-urlencode 'oid=243322853' \
|
||||
--data-urlencode 'rpid=3039053308' \
|
||||
--data-urlencode 'action=1' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 点踩评论
|
||||
|
||||
> http://api.bilibili.com/x/v2/reply/hate
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
点踩成功后会同时消去该评论的点赞
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------------------ | -------------- | -------------------------------------------- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
| type | num | 评论区类型代码 | 必要 | **[类型代码见表](readme.md#评论区类型代码)** |
|
||||
| oid | num | 目标评论区ID | 必要 | |
|
||||
| rpid | num | 目标评论rpID | 必要 | |
|
||||
| action | num | 操作代码 | 非必要 | 默认为0<br />0:取消踩<br />1:点踩 |
|
||||
| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-102:账号被封停<br />-111:csrf校验失败<br />-400:请求错误<br />-404:无此项<br />-509:请求过于频繁<br />12002:评论区已关闭<br />12004:禁止操作 赞或踩<br />12006:没有该评论<br />12009:评论主体的type不合法<br />12011:不合法的赞或踩<br />**(其他错误码有待补充)** |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
点踩视频`av243322853`下评论`rpID=3039053308`
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/v2/reply/hate' \
|
||||
--data-urlencode 'type=1' \
|
||||
--data-urlencode 'oid=243322853' \
|
||||
--data-urlencode 'rpid=3039053308' \
|
||||
--data-urlencode 'action=1' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 删除评论
|
||||
|
||||
> http://api.bilibili.com/x/v2/reply/del
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
只能删除自己的评论,或自己管理的评论区下的评论
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------------------ | -------------- | -------------------------------------------- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
| type | num | 评论区类型代码 | 必要 | **[类型代码见表](readme.md#评论区类型代码)** |
|
||||
| oid | num | 目标评论区ID | 必要 | |
|
||||
| rpid | num | 目标评论rpID | 必要 | |
|
||||
| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-102:账号被封停<br />-111:csrf校验失败<br />-400:请求错误<br />-403:权限不足<br />-404:无此项<br />-509:请求过于频繁<br />12002:评论区已关闭<br />12009:评论主体的type不合法<br />12022:已经被删除了<br />**(其他错误码有待补充)** |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | **作用尚不明确** |
|
||||
|
||||
**示例:**
|
||||
|
||||
删除`av243322853`下评论`rpID=3039053308`
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/v2/reply/del' \
|
||||
--data-urlencode 'type=1' \
|
||||
--data-urlencode 'oid=243322853' \
|
||||
--data-urlencode 'rpid=3039053308' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 置顶评论
|
||||
|
||||
> http://api.bilibili.com/x/v2/reply/top
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
只能置顶自己管理的评论区中的一级评论
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------------------ | -------------- | -------------------------------------------- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
| type | num | 评论区类型代码 | 必要 | **[类型代码见表](readme.md#评论区类型代码)** |
|
||||
| oid | num | 目标评论区ID | 必要 | |
|
||||
| rpid | num | 目标评论rpID | 必要 | |
|
||||
| action | num | 操作代码 | 非必要 | 默认为0<br />0:取消置顶<br />1:设为置顶 |
|
||||
| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-102:账号被封停<br />-111:csrf校验失败<br />-400:请求错误<br />-403:权限不足<br />-404:无此项<br />-509:请求过于频繁<br />12002:评论区已关闭<br />12006:没有该评论<br />12009:评论主体的type不合法<br />12029:已经有置顶评论<br />12030:不能置顶非一级评论<br />**(其他错误码有待补充)** |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
置顶视频`av243322853`下评论`rpID=2940645593`
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/v2/reply/top' \
|
||||
--data-urlencode 'type=1' \
|
||||
--data-urlencode 'oid=243322853' \
|
||||
--data-urlencode 'rpid=2940645593' \
|
||||
--data-urlencode 'action=1' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 举报评论
|
||||
|
||||
> http://api.bilibili.com/x/v2/reply/report
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------------------ | -------------- | -------------------------------------------- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
| type | num | 评论区类型代码 | 必要 | **[类型代码见表](readme.md#评论区类型代码)** |
|
||||
| oid | num | 目标评论区ID | 必要 | |
|
||||
| rpid | num | 目标评论rpID | 必要 | |
|
||||
| reason | num | 举报类型 | 必要 | **类型代码见下表** |
|
||||
| content | str | 其他举报备注 | 非必要 | `reason=0`时有效 |
|
||||
| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
|
||||
|
||||
举报类型`reason`:
|
||||
|
||||
| 代码 | 含义 |
|
||||
| ---- | -------------- |
|
||||
| 0 | 其他 |
|
||||
| 1 | 垃圾广告 |
|
||||
| 2 | 色情 |
|
||||
| 3 | 刷屏 |
|
||||
| 4 | 引战 |
|
||||
| 5 | 剧透 |
|
||||
| 6 | 政治 |
|
||||
| 7 | 人身攻击 |
|
||||
| 8 | 内容不相关 |
|
||||
| 9 | 违法违规 |
|
||||
| 10 | 低俗 |
|
||||
| 11 | 非法网站 |
|
||||
| 12 | 赌博诈骗 |
|
||||
| 13 | 传播不实信息 |
|
||||
| 14 | 怂恿教唆信息 |
|
||||
| 15 | 侵犯隐私 |
|
||||
| 16 | 抢楼 |
|
||||
| 17 | 青少年不良信息 |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-102:账号被封停<br />-111:csrf校验失败<br />-400:请求错误<br />-403:权限不足<br />-404:无此项<br />-509:请求过于频繁<br />12002:评论区已关闭<br />12006:没有该评论<br />12008:已经举报过了<br />12009:评论主体的type不合法<br />12019:举报过于频繁<br />**(其他错误码有待补充)** |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
举报视频` av752881391 `下评论`rpID=3062537442`,理由是`引战`
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/v2/reply/report' \
|
||||
--data-urlencode 'type=1' \
|
||||
--data-urlencode 'oid=752881391' \
|
||||
--data-urlencode 'rpid=3062537442' \
|
||||
--data-urlencode 'reason=4' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
7126
comment/list.md
Normal file
270
comment/readme.md
Normal file
@ -0,0 +1,270 @@
|
||||
# 评论区
|
||||
|
||||
<img src="/imgs/comment.svg" width="100" height="100"/>
|
||||
|
||||
评论区接口分为**查询**与**操作**两大类
|
||||
|
||||
- [查询类](list.md)
|
||||
- [操作类](action.md)
|
||||
|
||||
## 评论区类型代码
|
||||
|
||||
(PS:以下部分内容来源不明,有待验证)
|
||||
|
||||
| 代码 | 评论区类型 | oid的意义 |
|
||||
| ---- | ----------------------- | ---------- |
|
||||
| 1 | 视频稿件 | 稿件avID |
|
||||
| 2 | 话题 | 话题ID |
|
||||
| 4 | 活动 | 活动ID |
|
||||
| 5 | 小视频 | 小视频ID |
|
||||
| 6 | 小黑屋封禁信息 | 封禁公示ID |
|
||||
| 7 | 公告信息 | 公告ID |
|
||||
| 8 | 直播活动 | 直播间ID |
|
||||
| 9 | 活动稿件 | |
|
||||
| 10 | 直播公告 | |
|
||||
| 11 | 相簿(图片动态) | 相簿ID |
|
||||
| 12 | 专栏 | 专栏cvID |
|
||||
| 13 | 票务 | |
|
||||
| 14 | 音频 | 音频auID |
|
||||
| 15 | 风纪委员会 | 众裁项目ID |
|
||||
| 16 | 点评 | |
|
||||
| 17 | 动态(纯文字动态&分享) | 动态ID |
|
||||
| 18 | 播单 | |
|
||||
| 19 | 音乐播单 | |
|
||||
| 20 | 漫画 | |
|
||||
| 21 | 漫画 | |
|
||||
| 22 | 漫画 | 漫画mcID |
|
||||
| 33 | 课程 | 课程epID |
|
||||
|
||||
## 评论条目对象
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ------------------------------- | ---------------- | ------------------------------------------------------------ |
|
||||
| rpid | num | 评论rpID | |
|
||||
| oid | num | 目标评论区rpID | |
|
||||
| type | num | 评论区类型代码 | **类型代码见上表** |
|
||||
| mid | num | 评论发送者UID | |
|
||||
| root | num | 根评论rpID | 若为一级评论则为0<br />大于一级评论则为根评论ID |
|
||||
| parent | num | 回复父评论rpID | 若为一级评论则为0<br />若为二级评论则为根评论rpID<br />大于二级评论为上一级评论rpID |
|
||||
| dialog | num | 回复对方rpID | 若为一级评论则为0<br />若为二级评论则为该评论rpID<br />大于二级评论为上一级评论rpID |
|
||||
| count | num | 评论回复条数 | |
|
||||
| rcount | num | 评论回复条数 | |
|
||||
| floor | num | 评论楼层号 | **重要:若不支持楼层则无此项** |
|
||||
| state | num | 0 | **作用尚不明确** |
|
||||
| fansgrade | num | 是否具有粉丝标签 | 0:无<br />1:有 |
|
||||
| attr | num | ??? | **作用尚不明确** |
|
||||
| ctime | num | 评论发送时间 | 时间戳 |
|
||||
| rpid_str | str | 评论rpID | 字串格式 |
|
||||
| root_str | str | 根评论rpID | 字串格式 |
|
||||
| parent_str | str | 回复父评论rpID | 字串格式 |
|
||||
| like | num | 评论获赞数 | |
|
||||
| action | num | 当前用户操作状态 | 需要登录(SESSDATA) <br />否则恒为0<br />0:无<br />1:已点赞<br />2:已点踩 |
|
||||
| member | obj | 评论发送者信息 | |
|
||||
| content | obj | 评论信息 | |
|
||||
| replies | 无效时:null<br />有效时:array | 评论回复条目预览 | **仅嵌套一层**<br />否则为null |
|
||||
| assist | num | | **作用尚不明确** |
|
||||
| folder | obj | ??? | |
|
||||
| up_action | obj | 评论UP主操作信息 | |
|
||||
| show_follow | bool | false | **作用尚不明确** |
|
||||
|
||||
`评论条目`中的`member`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------------- | ----------------------------- | ---------------------- | ------------------------------------------------------------ |
|
||||
| mid | str | 发送者UID | |
|
||||
| uname | str | 发送者昵称 | |
|
||||
| sex | str | 发送者性别 | 男 女 保密 |
|
||||
| sign | str | 发送者签名 | |
|
||||
| avatar | str | 发送者头像 | |
|
||||
| rank | str | 10000 | **作用尚不明确** |
|
||||
| DisplayRank | str | 0 | **作用尚不明确** |
|
||||
| level_info | obj | 发送者等级 | |
|
||||
| pendant | obj | 发送者头像框信息 | |
|
||||
| nameplate | obj | 发送者勋章信息 | |
|
||||
| official_verify | obj | 发送者认证信息 | |
|
||||
| vip | obj | 发送者会员信息 | |
|
||||
| fans_detail | 无效时:null<br />有效时:obj | 发送者粉丝标签 | |
|
||||
| following | num | 是否关注该用户 | 需要登录(SESSDATA) <br />否则恒为0<br />0:未关注<br />1:已关注 |
|
||||
| is_followed | num | 是否被该用户关注 | 需要登录(SESSDATA) <br />否则恒为0<br />0:未关注<br />1:已关注 |
|
||||
| user_sailing | obj | 发送者评论条目装扮信息 | |
|
||||
|
||||
`member`中的`level_info`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------- | ---- | -------- | ---------------- |
|
||||
| current_level | num | 用户等级 | |
|
||||
| current_min | num | 0 | **作用尚不明确** |
|
||||
| current_exp | num | 0 | **作用尚不明确** |
|
||||
| next_exp | num | 0 | **作用尚不明确** |
|
||||
|
||||
`member`中的`pendant`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------- | ---- | ------------- | -------------------- |
|
||||
| pid | num | 头像框id | **详细说明有待补充** |
|
||||
| name | str | 头像框名称 | |
|
||||
| image | str | 头像框图片url | |
|
||||
| expire | num | 0 | **作用尚不明确** |
|
||||
| image_enhance | str | 头像框图片url | |
|
||||
|
||||
`member`中的`nameplate`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | ---------------- | -------------------- |
|
||||
| nid | num | 勋章id | **详细说明有待补充** |
|
||||
| name | str | 勋章名称 | |
|
||||
| image | str | 挂件图片url 正常 | |
|
||||
| image_small | str | 勋章图片url 小 | |
|
||||
| level | str | 勋章等级 | |
|
||||
| condition | str | 勋章条件 | |
|
||||
|
||||
`member`中的`official_verify`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | -------- | ------------------- |
|
||||
| type | num | 是否认证 | -1:无<br />0:认证 |
|
||||
| desc | str | 认证信息 | 无为空 |
|
||||
|
||||
`member`中的`vip`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------- | ---- | -------------- | ----------------------------------- |
|
||||
| vipType | num | 大会员类型 | 0:无<br />1:月会员<br />2:年会员 |
|
||||
| vipDueDate | num | 大会员到期时间 | 毫秒 时间戳 |
|
||||
| dueRemark | str | 空 | **作用尚不明确** |
|
||||
| accessStatus | num | 0 | **作用尚不明确** |
|
||||
| vipStatus | num | 大会员状态 | 0:无<br />1:有 |
|
||||
| vipStatusWarn | str | 空 | **作用尚不明确** |
|
||||
| theme_type | num | 0 | **作用尚不明确** |
|
||||
| label | obj | ??? | |
|
||||
|
||||
`vip`中的`label`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | ------------ | ---------------- |
|
||||
| path | str | 空 | **作用尚不明确** |
|
||||
| text | str | 会员类型信息 | |
|
||||
| label_theme | str | 会员类型 | |
|
||||
|
||||
`member`中的`fans_detail`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------- | ---- | ------------ | -------------------- |
|
||||
| uid | num | 用户UID | |
|
||||
| medal_id | num | 粉丝标签ID | **详细说明有待补充** |
|
||||
| medal_name | str | 粉丝标签名 | |
|
||||
| score | num | 0 | **作用尚不明确** |
|
||||
| level | num | 当前标签等级 | |
|
||||
| intimacy | num | 0 | **作用尚不明确** |
|
||||
| master_status | num | 1 | **作用尚不明确** |
|
||||
| is_receive | num | 1 | **作用尚不明确** |
|
||||
|
||||
`member`中的`user_sailing`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------------- | ----------------------------- | ------------ | ---------------- |
|
||||
| pendant | 无效时:null<br />有效时:obj | 头像框信息 | |
|
||||
| cardbg | 无效时:null<br />有效时:obj | 评论条目装扮 | |
|
||||
| cardbg_with_focus | null | - | **作用尚不明确** |
|
||||
|
||||
`user_sailing`中的`pendant`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | ------------- | ------------------------------------- |
|
||||
| id | num | 头像框ID | |
|
||||
| name | str | 头像框名称 | |
|
||||
| image | str | 头像框图片url | |
|
||||
| jump_url | str | 空 | |
|
||||
| type | str | 装扮类型 | suit:一般装扮<br />vip_suit:vip装扮 |
|
||||
|
||||
`user_sailing`中的`cardbg`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | ----------------------- | ------------------------------------- |
|
||||
| id | num | 评论条目装扮ID | |
|
||||
| name | str | 评论条目装扮名称 | |
|
||||
| image | str | 评论条目装扮图片url | |
|
||||
| jump_url | str | 评论条目装扮商城页面url | |
|
||||
| fan | obj | 粉丝专属信息 | |
|
||||
| type | str | 装扮类型 | suit:一般装扮<br />vip_suit:vip装扮 |
|
||||
|
||||
`cardbg`中的`fan`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | ------------------ | ---------------- |
|
||||
| is_fan | num | 是否为粉丝专属装扮 | 0:否<br />1:是 |
|
||||
| number | num | 粉丝专属编号 | |
|
||||
| color | str | 数字颜色 | 颜色码 |
|
||||
| name | str | 装扮名称 | |
|
||||
| num_desc | str | 粉丝专属编号 | 字串格式 |
|
||||
|
||||
`评论条目`中的`content`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ----- | -------------------- | ------------------------------------------------------------ |
|
||||
| message | str | 评论内容 | **重要** |
|
||||
| plat | num | 评论发送平台 | 1:web端<br />2:安卓客户端<br />3:ios客户端<br />4:wp客户端 |
|
||||
| device | str | 评论发送平台设备 | |
|
||||
| members | array | 评论中at到的用户信息 | |
|
||||
| emote | obj | 表情转义符信息 | 评论内容无表情则无此项 |
|
||||
| jump_url | obj | 空 | **作用尚不明确** |
|
||||
| max_line | num | 6 | **作用尚不明确** |
|
||||
|
||||
`content`中的`members`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | --------------- | -------------------------------- |
|
||||
| 0 | obj | at到的用户1 | 基本同`评论条目`中的`member`对象 |
|
||||
| n | obj | at到的用户(n+1) | 项数为at到的不同的用户数 |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`content`中的`emote`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------ | ---- | --------------- | -------- |
|
||||
| {表情转义符} | obj | 表情转义符信息1 | |
|
||||
| …… | obj | 表情转义符信息n | 向下扩展 |
|
||||
|
||||
`emote`中的`{表情转义符}`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------- | ---- | ------------ | -------------------------------------------------------- |
|
||||
| id | num | 表情ID | |
|
||||
| package_id | num | 表情包ID | |
|
||||
| state | num | 0 | |
|
||||
| type | num | 表情类型 | 1:免费<br />2:会员专属<br />3:购买所得<br />4:颜文字 |
|
||||
| attr | num | 0 | **作用尚不明确** |
|
||||
| text | str | 表情转义符 | |
|
||||
| url | str | 表情图片url | |
|
||||
| meta | obj | 属性信息 | |
|
||||
| mtime | num | 表情创建时间 | 时间戳 |
|
||||
|
||||
`{表情转义符}`中的`meta`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ---- | ------------ | ---------------- |
|
||||
| size | num | 表情尺寸信息 | 1:小<br />2:大 |
|
||||
| alias | str | 简写名 | 无则无此项 |
|
||||
|
||||
`评论条目`中的`replies`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | --------- | ------------------------------------------------------------ |
|
||||
| 0 | obj | 回复条目1 | **为本对象的递归嵌套**<br />**仅嵌套一层**<br />按照热度顺序排列 |
|
||||
| 1 | obj | 回复条目2 | |
|
||||
| 2 | obj | 回复条目3 | 最后一项 |
|
||||
|
||||
`评论条目`中的`folder`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------- | ---- | ------ | ---------------- |
|
||||
| has_folded | bool | false | **作用尚不明确** |
|
||||
| is_folded | bool | false | **作用尚不明确** |
|
||||
| rule | str | ??? | **作用尚不明确** |
|
||||
|
||||
`评论条目`中的`up_action`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ---- | ---------------- | ----------------------- |
|
||||
| like | bool | 是否UP主觉得很赞 | false:否<br />true:是 |
|
||||
| reply | bool | 是否被UP主回复 | false:否<br />true:是 |
|
271
creativecenter/railgun.md
Normal file
@ -0,0 +1,271 @@
|
||||
# 电磁力相关
|
||||
|
||||
**本页所有操作均需登录(Cookie或APP)**
|
||||
|
||||
电磁力每周日下午刷新
|
||||
|
||||
## 获取电磁力等级(web端)
|
||||
|
||||
> http://member.bilibili.com/x/web/elec/user
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:仅可Cookie(SESSDATA)
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ----------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------ | ---- | ----------- | ---------------- |
|
||||
| mid | num | 当前用户UID | |
|
||||
| state | num | 电磁力等级 | |
|
||||
| reason | str | 空 | **作用尚不明确** |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl 'http://member.bilibili.com/x/web/elec/user' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"mid": 293793435,
|
||||
"state": 2,
|
||||
"reason": ""
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 获取电磁力详细数值(双端)
|
||||
|
||||
> http://api.bilibili.com/studio/up-rating/rating/summary
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------ | ----------- | ---- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | ------- | ----------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------------- | ---- | -------------- | ---- |
|
||||
| date | str | 数据刷新时间 | YYYY-MM-DD |
|
||||
| level | obj | 电磁力等级 | |
|
||||
| creative | obj | 创作力 | |
|
||||
| influence | obj | 影响力 | |
|
||||
| credit | obj | 信用分 | |
|
||||
|
||||
`data`中的`level` `creative` `influence` `credit`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | -------- | ---- |
|
||||
| data | num | 数值 | |
|
||||
| prev | num | ??? | **作用尚不明确** |
|
||||
| desc | str | 描述 | |
|
||||
| date | num | 刷新时间 | 时间戳 |
|
||||
|
||||
**示例:**
|
||||
|
||||
Cookie方式:
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/studio/up-rating/rating/summary' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
APP方式:
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/studio/up-rating/rating/summary' \
|
||||
--data-urlencode 'access_key=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"date": "2020-07-05",
|
||||
"level": {
|
||||
"data": 1,
|
||||
"prev": 0,
|
||||
"desc": "正式开启创作之路,希望未来的路上我们携手相伴,创作更多优质内容~",
|
||||
"date": 1593878400
|
||||
},
|
||||
"creative": {
|
||||
"data": 39,
|
||||
"prev": 39,
|
||||
"desc": "考察近一年来的创作行为,良好的原创投稿行为和互动数据有助于提升创作力。",
|
||||
"date": 1593878400
|
||||
},
|
||||
"influence": {
|
||||
"data": 54,
|
||||
"prev": 54,
|
||||
"desc": "根据近一年活跃粉丝数据进行评估,良好的粉丝活跃度是影响力的基础。",
|
||||
"date": 1593878400
|
||||
},
|
||||
"credit": {
|
||||
"data": 100,
|
||||
"prev": 100,
|
||||
"desc": "良好的投稿记录将维持较高的信用分,违反投稿公约的行为将扣除信用分。",
|
||||
"date": 1594106147
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 获取电磁力数值历史变化(双端)
|
||||
|
||||
> http://api.bilibili.com/studio/up-rating/rating/history
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------ | ----------- | -------------- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
| type | num | 目标数据类型 | 必要 | 类型代码见下表 |
|
||||
|
||||
类型代码`type`:
|
||||
|
||||
| 代码 | 含义 |
|
||||
| ---- | ------ |
|
||||
| 1 | 创作力 |
|
||||
| 2 | 影响力 |
|
||||
| 3 | 信用分 |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ----- | ------------ | -------- |
|
||||
| date | array | 数据记录时间 | 每周更新 |
|
||||
| score | array | 电磁力等级 | 每周更新 |
|
||||
|
||||
`data`中的`date`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------------- | -------------- |
|
||||
| 0 | str | 1周前的日期 | MM-DD |
|
||||
| n | str | (n+1)周前的日期 | 与数值一一对应 |
|
||||
| …… | str | …… | …… |
|
||||
| 7 | str | 8周前的日期 | 最后一条 |
|
||||
|
||||
`data`中的`score`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------------- | -------------- |
|
||||
| 0 | num | 1周前的数值 | |
|
||||
| n | num | (n+1)周前的数值 | 与日期一一对应 |
|
||||
| …… | num | …… | …… |
|
||||
| 7 | num | 8周前的数值 | 最后一条 |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询创作力的历史变化
|
||||
|
||||
Cookie方式:
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/studio/up-rating/rating/history' \
|
||||
--data-urlencode 'type=1' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
APP方式:
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/studio/up-rating/rating/history' \
|
||||
--data-urlencode 'type=1' \
|
||||
--data-urlencode 'access_key=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"date": [
|
||||
"05-17",
|
||||
"05-24",
|
||||
"05-31",
|
||||
"06-07",
|
||||
"06-14",
|
||||
"06-21",
|
||||
"06-28",
|
||||
"07-05"
|
||||
],
|
||||
"score": [
|
||||
48,
|
||||
48,
|
||||
49,
|
||||
49,
|
||||
49,
|
||||
49,
|
||||
49,
|
||||
49
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
@ -1,6 +1,6 @@
|
||||
# 统计与数据
|
||||
|
||||
本页所有操作均需登录(SESSDATA)
|
||||
本页所有操作均需登录(Cookie)
|
||||
|
||||
统计与数据次日中午12刷新
|
||||
|
||||
@ -8,7 +8,9 @@
|
||||
|
||||
> http://member.bilibili.com/x/web/index/stat
|
||||
|
||||
*方式:GET*
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:仅可Cookie(SESSDATA)
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -68,7 +70,13 @@
|
||||
|
||||
**示例:**
|
||||
|
||||
http://member.bilibili.com/x/web/index/stat
|
||||
```shell
|
||||
curl 'http://member.bilibili.com/x/web/index/stat' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -154,13 +162,15 @@ http://member.bilibili.com/x/web/index/stat
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
</details>
|
||||
|
||||
## UP主专栏状态数据
|
||||
|
||||
> http://member.bilibili.com/x/web/data/article
|
||||
|
||||
*方式:GET*
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:仅可Cookie(SESSDATA)
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -192,7 +202,13 @@ http://member.bilibili.com/x/web/index/stat
|
||||
|
||||
**示例:**
|
||||
|
||||
http://member.bilibili.com/x/web/data/article
|
||||
```shell
|
||||
curl 'http://member.bilibili.com/x/web/data/article' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -216,21 +232,23 @@ http://member.bilibili.com/x/web/data/article
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
</details>
|
||||
|
||||
## 视频数据增量趋势
|
||||
|
||||
> http://member.bilibili.com/x/web/data/article/thirty
|
||||
|
||||
*方式:GET*
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:仅可Cookie(SESSDATA)
|
||||
|
||||
数据为前30天
|
||||
|
||||
**参数:**
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------------ | ------ | -------------- |
|
||||
| type | url | 目标数据类型 | 必要 | 类型代码见下表 |
|
||||
| type | num | 目标数据类型 | 必要 | 类型代码见下表 |
|
||||
|
||||
类型代码`type`:
|
||||
|
||||
@ -276,7 +294,14 @@ http://member.bilibili.com/x/web/data/article
|
||||
|
||||
查询30天前的视频播放增量趋势,可知`2020-04-05`的播放增量为`46`,`2020-04-04`的播放增量为`58`
|
||||
|
||||
http://member.bilibili.com/x/web/data/pandect?type=1
|
||||
```shell
|
||||
curl -G 'http://member.bilibili.com/x/web/data/pandect' \
|
||||
--data-urlencode 'type=1' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -307,21 +332,23 @@ http://member.bilibili.com/x/web/data/pandect?type=1
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
</details>
|
||||
|
||||
## 专栏数据增量趋势
|
||||
|
||||
> http://member.bilibili.com/x/web/data/article/thirty
|
||||
|
||||
*方式:GET*
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:仅可Cookie(SESSDATA)
|
||||
|
||||
数据为前30天
|
||||
|
||||
**参数:**
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------------ | ------ | -------------- |
|
||||
| type | url | 目标数据类型 | 必要 | 类型代码见下表 |
|
||||
| type | num | 目标数据类型 | 必要 | 类型代码见下表 |
|
||||
|
||||
类型代码`type`:
|
||||
|
||||
@ -365,7 +392,14 @@ http://member.bilibili.com/x/web/data/pandect?type=1
|
||||
|
||||
查询30天前的文章阅读增量趋势,可知`2020-04-05`的阅读增量为`6`,`2020-04-04`的阅读增量为`6`
|
||||
|
||||
http://member.bilibili.com/x/web/data/article/thirty?type=1
|
||||
```shell
|
||||
curl -G 'http://member.bilibili.com/x/web/data/article/thirty' \
|
||||
--data-urlencode 'type=1' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -393,21 +427,23 @@ http://member.bilibili.com/x/web/data/article/thirty?type=1
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
</details>
|
||||
|
||||
## 稿件操作来源占比情况
|
||||
|
||||
> http://member.bilibili.com/x/web/data/survey
|
||||
|
||||
*方式:GET*
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:仅可Cookie(SESSDATA)
|
||||
|
||||
数据为上一天的
|
||||
|
||||
**参数:**
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------------ | ------ | -------------- |
|
||||
| type | url | 目标数据类型 | 必要 | 类型代码见下表 |
|
||||
| type | num | 目标数据类型 | 必要 | 类型代码见下表 |
|
||||
|
||||
类型代码`type`:
|
||||
|
||||
@ -443,7 +479,7 @@ http://member.bilibili.com/x/web/data/article/thirty?type=1
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ------ | ------------ | ---- |
|
||||
| arc_inc | arrary | 稿件情况 | |
|
||||
| arc_inc | array | 稿件情况 | |
|
||||
| total_inc | num | 总计增长情况 | |
|
||||
| type_rank | obj | 分区排名情况 | |
|
||||
|
||||
@ -478,7 +514,14 @@ http://member.bilibili.com/x/web/data/article/thirty?type=1
|
||||
|
||||
查询我的稿件来源占比情况
|
||||
|
||||
http://member.bilibili.com/x/web/data/survey?type=1
|
||||
```shell
|
||||
curl -G 'http://member.bilibili.com/x/web/data/survey' \
|
||||
--data-urlencode 'type=1' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -525,13 +568,15 @@ http://member.bilibili.com/x/web/data/survey?type=1
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
</details>
|
||||
|
||||
## 播放来源占比情况(平台及方式)
|
||||
|
||||
> http://member.bilibili.com/x/web/data/playsource
|
||||
|
||||
*方式:GET*
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:仅可Cookie(SESSDATA)
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -553,14 +598,14 @@ http://member.bilibili.com/x/web/data/survey?type=1
|
||||
|
||||
`data`中的`page_source`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------- | ---- | ------------ | ---- |
|
||||
| dynamic | num | 通过动态 | |
|
||||
| other | num | 其他方式 | |
|
||||
| related_video | num | 通过推荐列表 | |
|
||||
| search | num | 通过搜索 | |
|
||||
| space | num | 空间列表播放 | |
|
||||
| tenma | num | ??? | |
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------- | ---- | ------------------------- | ---- |
|
||||
| dynamic | num | 通过动态 | |
|
||||
| other | num | 其他方式 | |
|
||||
| related_video | num | 通过推荐列表 | |
|
||||
| search | num | 通过搜索 | |
|
||||
| space | num | 空间列表播放 | |
|
||||
| tenma | num | 天马(APP推荐信息流)来源 | |
|
||||
|
||||
`data`中的`play_proportion`对象:
|
||||
|
||||
@ -574,7 +619,13 @@ http://member.bilibili.com/x/web/data/survey?type=1
|
||||
|
||||
**示例:**
|
||||
|
||||
http://member.bilibili.com/x/web/data/playsource
|
||||
```shell
|
||||
curl 'http://member.bilibili.com/x/web/data/playsource' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -601,13 +652,15 @@ http://member.bilibili.com/x/web/data/playsource
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
</details>
|
||||
|
||||
## 播放分布情况(粉丝与路人)
|
||||
|
||||
> http://member.bilibili.com/x/web/data/base
|
||||
|
||||
*方式:GET*
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:仅可Cookie(SESSDATA)
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -701,7 +754,13 @@ http://member.bilibili.com/x/web/data/playsource
|
||||
|
||||
**示例:**
|
||||
|
||||
http://member.bilibili.com/x/web/data/base
|
||||
```shell
|
||||
curl 'http://member.bilibili.com/x/web/data/base' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -819,3 +878,4 @@ http://member.bilibili.com/x/web/data/base
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
808
danmaku/action.md
Normal file
@ -0,0 +1,808 @@
|
||||
# 弹幕操作
|
||||
|
||||
## 发送视频弹幕
|
||||
|
||||
> http://api.bilibili.com/x/v2/dm/post
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
此接口与漫画弹幕相同
|
||||
|
||||
`mode=6`的逆向弹幕与`mode=8`的代码弹幕不可发送
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------------------ | -------------- | ------------------------------------------------------------ |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
| type | num | 弹幕类选择 | 必要 | 1:视频弹幕 |
|
||||
| oid | num | 视频CID | 必要 | |
|
||||
| msg | str | 弹幕内容 | 必要 | 长度小于100字符 |
|
||||
| bvid | str | 稿件bvID | 必要(可选) | avID与bvID任选一个 |
|
||||
| aid | num | 稿件avID | 必要(可选) | avID与bvID任选一个 |
|
||||
| progress | num | 弹幕出现在视频内的时间 | 非必要 | 单位为毫秒<br />默认为0 |
|
||||
| color | num | 弹幕颜色设置 | 非必要 | 十进制RGB888值<br />默认为16777215(#FFFFFF)白色 |
|
||||
| fontsize | num | 弹幕字号设置 | 非必要 | 默认为25<br />极小:12<br />超小:16<br />小:18<br />标准:25<br />大:36<br />超大:45<br />极大:64 |
|
||||
| pool | num | 弹幕池选择 | 非必要 | 0:普通池<br />1:字幕池<br />2:特殊池(代码/BAS弹幕)<br />默认为0 |
|
||||
| mode | num | 弹幕类型选择 | 必要 | 1:普通弹幕<br />4:底部弹幕<br />5:顶部弹幕<br />7:高级弹幕<br />9:BAS弹幕(`pool`必须为2) |
|
||||
| rnd | num | 当前时间戳*1000000 | 非必要 | **若无此项,则发送弹幕冷却时间限制为90s**<br />若有此项,则发送弹幕冷却时间限制为5s |
|
||||
| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-102:账号被封停<br />-111:csrf校验失败<br />-400:请求错误<br />-404:无此项<br />36700:系统升级中<br />36701:弹幕包含被禁止的内容<br />36702:弹幕长度大于100<br />36703:发送频率过快<br />36704:禁止向未审核的视频发送弹幕<br />36705:您的等级不足,不能发送弹幕<br />36706:您的等级不足,不能发送顶端弹幕<br />36707:您的等级不足,不能发送底端弹幕<br />36708:您的等级不足,不能发送彩色弹幕<br />36709:您的等级不足,不能发送高级弹幕<br />36710:您的权限不足,不能发送这种样式的弹幕<br />36711:该视频禁止发送弹幕<br />36712:level 1用户发送弹幕的最大长度为20<br />36713:稿件未付费<br />36714:弹幕发送时间不合法<br />36715:当日操作数量超过上限 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | -------- | ------------ |
|
||||
| action | str | 空 | 作用尚不明确 |
|
||||
| dmid | num | 弹幕dmID | |
|
||||
| dmid_str | str | 弹幕dmID | 字串形式 |
|
||||
| visible | bool | true | 作用尚不明确 |
|
||||
|
||||
**示例:**
|
||||
|
||||
为视频`av2`/`BV1xx411c7mD`(CID为`62131`)的5000ms位置发送一条弹幕`前来考古`(颜色为#FFFFFF,字号25,普通弹幕,游动弹幕)
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/v2/dm/post' \
|
||||
--data-urlencode 'type=1' \
|
||||
--data-urlencode 'oid=62131' \
|
||||
--data-urlencode 'msg=前来考古' \
|
||||
--data-urlencode 'aid=2' \
|
||||
--data-urlencode 'progress=5000' \
|
||||
--data-urlencode 'color=16777215' \
|
||||
--data-urlencode 'fontsize=25' \
|
||||
--data-urlencode 'pool=0' \
|
||||
--data-urlencode 'mode=1' \
|
||||
--data-urlencode 'rnd=3456789987654321' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code":0,
|
||||
"message":"0",
|
||||
"ttl":1,
|
||||
"data":{
|
||||
"action":"",
|
||||
"dmid":32161968826613767,
|
||||
"dmid_str":"32161968826613767",
|
||||
"visible":true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 发送互动弹幕
|
||||
|
||||
> http://api.bilibili.com/x/v2/dm/command/post
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
2020-09-25 B站更新了互动弹幕功能,包括UP主头像弹幕、关联视频弹幕、视频内嵌引导关注按钮三大功能
|
||||
|
||||
详情见:
|
||||
|
||||
[【客户端更新】6.10版本更新!UP主支持发布关联视频弹幕]( https://www.bilibili.com/read/cv7728299 )
|
||||
|
||||
[引导关注卡片]( https://www.bilibili.com/blackboard/activity-c8a0iDRQy.html )
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------------------ | -------------- | ------------------------------------------------------------ |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
| type | num | 互动弹幕类型 | 必要 | 1:UP主头像弹幕<br />2:关联视频弹幕<br />5:视频内嵌引导关注按钮 |
|
||||
| aid | num | 稿件avID | 必要 | |
|
||||
| cid | num | 视频CID | 必要 | |
|
||||
| progress | num | 弹幕出现在视频内的时间 | 非必要 | 单位为毫秒<br />默认为0 |
|
||||
| plat | num | 平台标识 | 必要 | 1:web端<br />2:安卓端<br />8:视频管理页面 |
|
||||
| data | str | json序列 | 必要 | |
|
||||
| dmid | num | 修改互动弹幕的弹幕ID | 非必要 | 注:修改弹幕`plat`必须为8 |
|
||||
| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
|
||||
|
||||
`data`参数json序列:
|
||||
|
||||
类型为【UP主头像弹幕】时:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | -------- | ---- |
|
||||
| msg | str | 弹幕内容 | |
|
||||
|
||||
类型为【关联视频弹幕】时:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | -------------- | ---- |
|
||||
| msg | str | 弹幕内容 | |
|
||||
| bvid | str | 关联视频的bvID | |
|
||||
|
||||
类型为【视频内嵌引导关注按钮】时:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | -------- | --------------- |
|
||||
| duration | num | 持续时间 | 单位为毫秒 |
|
||||
| posX | num | X坐标 | 区间:[118-549] |
|
||||
| posY | num | Y坐标 | 区间:[82-293] |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ----------------------------- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-102:账号被封停<br />-111:csrf校验失败<br />-400:请求错误<br />-404:无此项<br />-500:服务器错误<br />36711:该视频禁止发送弹幕<br />79026:发送失败,请勿填写当前稿件BVID<br />79024:发送失败,请输入正确的BVID<br />79036:该指令弹幕超出限制<br />79037:关注弹幕坐标溢出 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | 正确时:obj<br />错误时:null | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | ---------------------- | ------------------------------------------------------------ |
|
||||
| command | str | 指令? | UP主头像弹幕:#UP#<br />关联视频弹幕:#LINK#<br />视频内嵌引导关注按钮:#ATTENTION# |
|
||||
| content | str | 弹幕内容 | |
|
||||
| extra | str | 弹幕数据 | json序列 |
|
||||
| id | num | 弹幕dmID | |
|
||||
| idStr | str | 弹幕dmID | 字串形式 |
|
||||
| mid | num | 用户UID | |
|
||||
| oid | num | 视频CID | |
|
||||
| progress | num | 弹幕出现在视频内的时间 | |
|
||||
| type | num | 互动弹幕类型 | 1:UP主头像弹幕<br />2:关联视频弹幕<br />5:视频内嵌引导关注按钮 |
|
||||
|
||||
`extra`序列数据:
|
||||
|
||||
类型为【UP主头像弹幕】时:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------- | ---- |
|
||||
| icon | str | UP主头像url | |
|
||||
|
||||
类型为【关联视频弹幕】时:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ---- | -------------- | ---- |
|
||||
| aid | num | 关联视频的avID | |
|
||||
| title | str | 关联视频的标题 | |
|
||||
| bvid | str | 关联视频的bvID | |
|
||||
|
||||
类型为【视频内嵌引导关注按钮】时:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | ----------- | ---------------------------------- |
|
||||
| duration | num | 持续时间 | 单位为毫秒 |
|
||||
| posX | num | X坐标 | 区间:[118-549] |
|
||||
| posY | num | Y坐标 | 区间:[82-293] |
|
||||
| icon | str | 按钮图片url | 不应该是关注按钮吗,但这个是圆形的 |
|
||||
|
||||
**示例:**
|
||||
|
||||
为视频`av201947622`(CID为`230709860`)的5000ms位置发送一条UP主头像弹幕`test`
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/v2/dm/command/post' \
|
||||
--data-urlencode 'type=1' \
|
||||
--data-urlencode 'aid=201947622' \
|
||||
--data-urlencode 'cid=230709860' \
|
||||
--data-urlencode 'progress=5000' \
|
||||
--data-urlencode 'plat=1' \
|
||||
--data-urlencode 'data={"msg":"test"}' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"id": 39053842117558279,
|
||||
"oid": 230709860,
|
||||
"mid": 293793435,
|
||||
"type": 1,
|
||||
"command": "#UP#",
|
||||
"content": "test",
|
||||
"extra": "{\"icon\":\"http://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg\"}",
|
||||
"idStr": "39053842117558279"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
为视频`av201947622`(CID为`230709860`)的5000ms位置发送一条发送关联视频弹幕`测试1234`关联视频为`BV1kz4y1X7XP`
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/v2/dm/command/post' \
|
||||
--data-urlencode 'type=2' \
|
||||
--data-urlencode 'aid=201947622' \
|
||||
--data-urlencode 'cid=230709860' \
|
||||
--data-urlencode 'progress=5000' \
|
||||
--data-urlencode 'plat=1' \
|
||||
--data-urlencode 'data={"bvid":"BV1kz4y1X7XP","msg":"测试1234"}' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"id": 39054383689236483,
|
||||
"oid": 230709860,
|
||||
"mid": 293793435,
|
||||
"type": 2,
|
||||
"command": "#LINK#",
|
||||
"content": "测试1234",
|
||||
"progress": 11925,
|
||||
"extra": "{\"aid\":583785685,\"title\":\"【cmd】访问api 命令行也能上B站\",\"bvid\":\"BV1kz4y1X7XP\"}",
|
||||
"idStr": "39054383689236483"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
为视频`av201947622`(CID为`230709860`)的5000ms位置发送视频内嵌引导关注按钮,X坐标为118,Y坐标为82,持续时间为5000ms
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/v2/dm/command/post' \
|
||||
--data-urlencode 'type=5' \
|
||||
--data-urlencode 'aid=201947622' \
|
||||
--data-urlencode 'cid=230709860' \
|
||||
--data-urlencode 'progress=5000' \
|
||||
--data-urlencode 'plat=1' \
|
||||
--data-urlencode 'data={"duration":5000,"posX":118,"posY":82}' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"id": 39055158405496839,
|
||||
"oid": 230709860,
|
||||
"mid": 293793435,
|
||||
"type": 5,
|
||||
"command": "#ATTENTION#",
|
||||
"progress": 5000,
|
||||
"extra": "{\"duration\":5000,\"posX\":118,\"posY\":82}",
|
||||
"idStr": "39055158405496839"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
## 撤回弹幕
|
||||
|
||||
> http://api.bilibili.com/x/dm/recall
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
仅能撤回自己两分钟内的弹幕,且每天只有3次机会
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------------------ | -------------- | ---- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
| dmid | num | 弹幕dmID | 必要 | |
|
||||
| cid | num | 视频CID | 必要 | |
|
||||
| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-102:账号被封停<br />-111:csrf校验失败<br />-400:请求错误<br />-404:无此项<br />36301:撤回失败,弹幕发送已过2分钟<br />36302:撤回失败,弹幕已经被删除或撤回<br />36303:撤回失败,今天撤回的机会已经用完<br />36304:撤回失败,服务器出错 |
|
||||
| message | str | 错误信息 | 成功后显示剩余次数 |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
撤回`CID=168901231`下的弹幕`32310301474947077`的弹幕
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/dm/recall' \
|
||||
--data-urlencode 'cid=168901231' \
|
||||
--data-urlencode 'dmid=32310301474947077' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "撤回成功,你还有3次撤回机会"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 购买高级弹幕发送权限
|
||||
|
||||
> http://api.bilibili.com/x/dm/adv/buy
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
购买一次需要2硬币,同时向up主发送请求
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------------------ | -------------- | ---- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
| mode | str | sp | 必要 | |
|
||||
| cid | num | 视频CID | 必要 | |
|
||||
| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-102:账号被封停<br />-111:csrf校验失败<br />-107:硬币不足<br />-400:请求错误<br />36007:不允许购买<br />36009:正在确认中<br />36010:已购买 |
|
||||
| message | str | 返回信息 | |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
示例:
|
||||
|
||||
购买视频CID为`168901231`的高级弹幕发送权限
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/dm/adv/buy' \
|
||||
--data-urlencode 'cid=168901231' \
|
||||
--data-urlencode 'mode=sp' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code":0,
|
||||
"message":"已成功购买"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 检测高级弹幕发送权限
|
||||
|
||||
> http://api.bilibili.com/x/dm/adv/state
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------ | ----------- | ---- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
| mode | str | sp | 必要 | |
|
||||
| cid | num | 视频CID | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ----------------------------- | ---------------- | -------------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />--400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | 有效时:obj<br />无效时:null | 有效时:信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | ---------------- | ------------------------------------------ |
|
||||
| coins | num | 需要支付的硬币数 | |
|
||||
| confirm | num | 是否同意 | 1:同意<br />2:未同意<br />未购买时无此项 |
|
||||
| accept | bool | 是否允许申请 | true:允许<br />false:不允许 |
|
||||
| hasBuy | bool | 是否已购买 | true:已购买<br />未购买时无此项 |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询视频CID为`168901231`的视频高级弹幕权限购买状态
|
||||
|
||||
当前状态为已购买且同意
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/dm/adv/state' \
|
||||
--data-urlencode 'cid=168901231' \
|
||||
--data-urlencode 'mode=sp' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"coins": 2,
|
||||
"confirm": 1,
|
||||
"accept": true,
|
||||
"hasBuy": true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 查询弹幕点赞数
|
||||
|
||||
> http://api.bilibili.com/x/v2/dm/thumbup/stats
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
**url参数:**
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------ | ----------- | ------------------- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
| oid | num | 视频CID | 必要 | |
|
||||
| ids | nums | 弹幕dmID列表 | 必要 | 多个ID之间用`,`分隔 |
|
||||
|
||||
**json回复**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | --------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | ---------------- | --------------------------------- |
|
||||
| {弹幕ID} | obj | 弹幕id对应的信息 | id分别对应请求参数中的`ids`,下同 |
|
||||
| …… | obj | 弹幕id对应的信息 | |
|
||||
|
||||
`{弹幕ID}`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| likes | num | 点赞数 | |
|
||||
| user_like | num | 是否点赞 | 0:未点赞<br />1:已点赞<br />需要登录(Cookie或APP) <br />未登录恒为0 |
|
||||
| id_str | str | 弹幕dmID | |
|
||||
|
||||
**示例**
|
||||
|
||||
查询`CID=236871317`下的弹幕`35600074482384899`、`38880975220375559`、`39052528418553863`点赞数
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/v2/dm/thumbup/stats' \
|
||||
--data-urlencode 'oid=236871317' \
|
||||
--data-urlencode 'ids=39019145405661191,38880975220375559,39052528418553863' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"38880975220375559": {
|
||||
"likes": 1,
|
||||
"user_like": 1,
|
||||
"id_str": "38880975220375559"
|
||||
},
|
||||
"39019145405661191": {
|
||||
"likes": 3,
|
||||
"user_like": 1,
|
||||
"id_str": "39019145405661191"
|
||||
},
|
||||
"39052528418553863": {
|
||||
"likes": 2,
|
||||
"user_like": 0,
|
||||
"id_str": "39052528418553863"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 点赞弹幕
|
||||
|
||||
> http://api.bilibili.com/x/v2/dm/thumbup/add
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------------------ | -------------- | ------------------------ |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
| dmid | num | 弹幕dmID | 必要 | |
|
||||
| oid | num | 视频CID | 必要 | |
|
||||
| op | num | 操作 | 必要 | 1:点赞<br />2:取消点赞 |
|
||||
| platform | str | 平台 | 非必要 | |
|
||||
| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111:csrf 校验失败<br />-400:请求错误<br />65004:取消赞失败 未点赞过<br />65006:已赞过 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| tll | num | 1 | |
|
||||
|
||||
**示例**
|
||||
|
||||
为`CID=145928946`下的弹幕`35600074482384899`点赞
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/v2/dm/thumbup/add' \
|
||||
--data-urlencode 'dmid=35600074482384899' \
|
||||
--data-urlencode 'oid=145928946' \
|
||||
--data-urlencode 'op=1' \
|
||||
--data-urlencode 'platform=web_player' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code":0,
|
||||
"message":"0",
|
||||
"ttl":1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 举报弹幕
|
||||
|
||||
> http://api.bilibili.com/x/dm/report/add
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------------------ | -------------- | ------------------ |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
| cid | num | 视频CID | 必要 | |
|
||||
| dmid | num | 弹幕dmID | 必要 | |
|
||||
| reason | num | 举报类型 | 必要 | **类型代码见下表** |
|
||||
| content | str | 其他举报备注 | 非必要 | `reason=11`时有效 |
|
||||
| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
|
||||
|
||||
举报类型`reason`:
|
||||
|
||||
| 代码 | 含义 |
|
||||
| ---- | ---------- |
|
||||
| 1 | 违法违禁 |
|
||||
| 2 | 色情低俗 |
|
||||
| 3 | 赌博诈骗 |
|
||||
| 4 | 人身攻击 |
|
||||
| 5 | 侵犯隐私 |
|
||||
| 6 | 垃圾广告 |
|
||||
| 7 | 引战 |
|
||||
| 8 | 剧透 |
|
||||
| 9 | 恶意刷屏 |
|
||||
| 10 | 视频无关 |
|
||||
| 11 | 其他 |
|
||||
| 12 | 青少年不良 |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111:csrf 校验失败<br />-400:请求错误<br />36201:举报弹幕不存在<br />36203:举报原因类型错误<br />36204:已举报 |
|
||||
| message | str | 错误信息 | 默认为空 |
|
||||
| tll | num | 1 | 举报失败时 |
|
||||
|
||||
**示例**
|
||||
|
||||
举报`CID=145928946`下的弹幕`35600074482384899`,理由是`引战`
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/dm/report/add' \
|
||||
--data-urlencode 'cid=145928946' \
|
||||
--data-urlencode 'dmid=35600074482384899' \
|
||||
--data-urlencode 'reason=7' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code":0,
|
||||
"message":""
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 保护&删除弹幕
|
||||
|
||||
> http://api.bilibili.com/x/v2/dm/edit/state
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA) 或APP
|
||||
|
||||
注:只能操作自己的稿件或有骑士权限的稿件
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------------------ | -------------- | --------------------------------------------- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
| type | num | 弹幕类选择 | 必要 | 1:视频弹幕 |
|
||||
| oid | num | 视频CID | 必要 | |
|
||||
| dmids | nums | 弹幕dmID | 必要 | 多个ID之间用`,`分隔 |
|
||||
| state | num | 操作代码 | 必要 | 1:删除弹幕<br />2:弹幕保护<br />3:取消保护 |
|
||||
| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111:csrf 校验失败<br />-400:请求错误<br />-403:访问权限不足 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例**
|
||||
|
||||
删除`CID=145928946`下的弹幕`35600074482384899`、`39067304918515717`、`39082777041174531`
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/v2/dm/edit/state' \
|
||||
--data-urlencode 'type=1' \
|
||||
--data-urlencode 'oid=145928946' \
|
||||
--data-urlencode 'dmids=35600074482384899,39067304918515717,39082777041174531' \
|
||||
--data-urlencode 'state=1' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code":0,
|
||||
"message":"0",
|
||||
"ttl":1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 修改字幕池
|
||||
|
||||
> http://api.bilibili.com/x/v2/dm/edit/pool
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA) 或APP
|
||||
|
||||
注:只能操作自己的稿件或有骑士权限的稿件
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------------------ | -------------- | -------------------------------- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
| type | num | 弹幕类选择 | 必要 | 1:视频弹幕 |
|
||||
| oid | num | 视频CID | 必要 | |
|
||||
| dmids | nums | 弹幕dmID | 必要 | 多个ID之间用`,`分隔 |
|
||||
| pool | num | 操作代码 | 必要 | 0:移出字幕池<br />1:移入字幕池 |
|
||||
| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111:csrf 校验失败<br />-400:请求错误<br />-403:访问权限不足 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例**
|
||||
|
||||
将`CID=145928946`下的弹幕`35600074482384899`、`39067304918515717`、`39082777041174531`移入字幕池
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/v2/dm/edit/state' \
|
||||
--data-urlencode 'type=1' \
|
||||
--data-urlencode 'oid=145928946' \
|
||||
--data-urlencode 'pool=1' \
|
||||
--data-urlencode 'dmids=35600074482384899,39067304918515717,39082777041174531' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code":0,
|
||||
"message":"0",
|
||||
"ttl":1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
149
danmaku/danmaku_proto.md
Normal file
@ -0,0 +1,149 @@
|
||||
# protobuf弹幕
|
||||
|
||||
2020年5月23日,哔哩哔哩网页端及移动端启用了新的默认弹幕api,网页端弹幕显示的上限变为原弹幕池上限的两倍。
|
||||
|
||||
新的api是以6分钟为一个单位加载,即每次加载6分钟内的弹幕
|
||||
|
||||
## 获取实时弹幕
|
||||
|
||||
> http://api.bilibili.com/x/v2/dm/web/seg.so (web端)
|
||||
>
|
||||
> http://api.bilibili.com/x/v2/dm/list/seg.so (APP端)
|
||||
>
|
||||
> http://i0.hdslb.com/bfs/dm/{data}.bin (BAS/代码弹幕专包)
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
此接口与漫画弹幕相同
|
||||
|
||||
只能返回普通弹幕(`pool=1` `mode=1-7`)和代码弹幕(`pool=2` `mode=8`),BAS弹幕(`pool=2` `mode=9`)请从[弹幕元数据](danmaku_view_proto.md)中获取
|
||||
|
||||
互动弹幕(UP主头像弹幕、关联视频、内嵌关注按钮)也不存在这个接口,请从[弹幕元数据](danmaku_view_proto.md)中获取
|
||||
|
||||
**注:仅获取6min的整数倍时间内的弹幕,6min内最多弹幕数为6000条(如第一包中弹幕`progress`值域为0-360000)**
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------------- | ---- | -------- | ------ | ----------- |
|
||||
| type | num | 弹幕类 | 必要 | 1:视频弹幕 |
|
||||
| oid | num | 视频CID | 必要 | |
|
||||
| pid | num | 稿件avID | 非必要 | |
|
||||
| segment_index | num | 分包 | 必要 | 6分钟一包 |
|
||||
|
||||
**proto回复:**
|
||||
|
||||
消息`DmSegMobileReply`:
|
||||
|
||||
| 名称 | 类型 | 含义 | 备注 |
|
||||
| ----- | -------------------- | -------- | ---- |
|
||||
| elems | repeated DanmakuElem | 弹幕条目 | |
|
||||
|
||||
消息`DanmakuElem`:
|
||||
|
||||
| 名称 | 类型 | 含义 | 备注 |
|
||||
| -------- | ------ | ------------------ | ------------------------------------------------------------ |
|
||||
| id | int64 | 弹幕dmID | 唯一 可用于操作参数 |
|
||||
| progress | int32 | 视频内弹幕出现时间 | 毫秒 |
|
||||
| mode | int32 | 弹幕类型 | 1 2 3:普通弹幕<br />4:底部弹幕<br />5:顶部弹幕<br />6:逆向弹幕<br />7:高级弹幕<br />8:代码弹幕<br />9:BAS弹幕(仅限于特殊弹幕专包) |
|
||||
| fontsize | int32 | 弹幕字号 | 18:小<br />25:标准<br />36:大 |
|
||||
| color | uint32 | 弹幕颜色 | 十进制RGB888值 |
|
||||
| midHash | string | 发送者UID的HASH | 用于屏蔽用户和查看用户发送的所有弹幕 也可反查用户ID |
|
||||
| content | string | 弹幕内容 | utf-8编码 |
|
||||
| ctime | int64 | 弹幕发送时间 | 时间戳 |
|
||||
| weight | int32 | 权重 | 用于智能屏蔽,根据弹幕语义及长度通过AI识别得出<br />范围:[0-10]<br />值越大权重越高 |
|
||||
| action | string | 动作? | 作用尚不明确 |
|
||||
| pool | int32 | 弹幕池 | 0:普通池<br />1:字幕池<br />2:特殊池(代码/BAS弹幕) |
|
||||
| idStr | string | 弹幕dmID | 字串形式<br />唯一 可用于操作参数 |
|
||||
|
||||
protobuf结构体:
|
||||
|
||||
**bilidm.proto**
|
||||
|
||||
```protobuf
|
||||
syntax = "proto3";
|
||||
|
||||
message DanmakuElem {
|
||||
int64 id = 1; //弹幕dmID
|
||||
int32 progress = 2; //出现时间
|
||||
int32 mode = 3; //弹幕类型
|
||||
int32 fontsize = 4; //文字大小
|
||||
uint32 color = 5; //弹幕颜色
|
||||
string midHash = 6; //发送者UID的HASH
|
||||
string content = 7; //弹幕内容
|
||||
int64 ctime = 8; //发送时间
|
||||
int32 weight = 9; //权重
|
||||
string action = 10; //动作?
|
||||
int32 pool = 11; //弹幕池
|
||||
string idStr = 12; //弹幕dmID(字串形式)
|
||||
}
|
||||
|
||||
message DmSegMobileReply {
|
||||
repeated DanmakuElem elems = 1; //弹幕条目
|
||||
}
|
||||
```
|
||||
|
||||
**示例:**
|
||||
|
||||
获取视频`av810872(CID=1176840)`的实时弹幕分包1
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/v2/dm/web/seg.so' \
|
||||
--data-urlencode 'type=1' \
|
||||
--data-urlencode 'oid=1176840' \
|
||||
--data-urlencode 'pid=810872' \
|
||||
--data-urlencode 'segment_index=1' \
|
||||
-o 'danmaku.bin'
|
||||
```
|
||||
|
||||
响应正文为protubuf二进制数据
|
||||
|
||||
## 实例
|
||||
|
||||
获取炮姐弹幕第1包,[BV1Js411o76u](https://www.bilibili.com/video/BV1Js411o76u)
|
||||
|
||||
编译proto结构文件
|
||||
|
||||
```shell
|
||||
protoc --python_out=. bilidm.proto
|
||||
```
|
||||
|
||||
生成bilidm_pb2.py
|
||||
|
||||
---
|
||||
|
||||
以下为python测试代码,输出第一包的第一条弹幕
|
||||
|
||||
```python
|
||||
import bilidm_pb2
|
||||
import requests
|
||||
|
||||
AVID = 810872
|
||||
CID = 1176840
|
||||
SEG = 1
|
||||
url = 'http://api.bilibili.com/x/v2/dm/web/seg.so?type=1&oid=' + str(CID) + '&pid=' + str(AVID) + '&segment_index=' + str(SEG)
|
||||
|
||||
data = requests.get(url)
|
||||
target = bilidm_pb2.DmSegMobileReply()
|
||||
target.ParseFromString(data.content)
|
||||
|
||||
print(target.elems[0])
|
||||
print(target.elems[0].content)
|
||||
```
|
||||
|
||||
输出:
|
||||
|
||||
```
|
||||
id: 682225690
|
||||
progress: 44125
|
||||
mode: 1
|
||||
fontsize: 25
|
||||
color: 16777215
|
||||
midHash: "af4aa003"
|
||||
content: "\346\210\221\347\202\256\350\277\230\350\203\275\345\206\215\346\210\230500\345\271\264\357\274\201\357\274\201\357\274\201\346\210\221\347\202\256\350\277\230\350\203\275\345\206\215\346\210\230500\345\271\264\357\274\201\357\274\201\357\274\201\346\210\221\347\202\256\350\277\230\350\203\275\345\206\215\346\210\230500\345\271\264\357\274\201\357\274\201\357\274\201\346\210\221\347\202\256\350\277\230\350\203\275\345\206\215\346\210\230500\345\271\264"
|
||||
ctime: 1416323487
|
||||
weight: 6
|
||||
idStr: "682225690"
|
||||
|
||||
我炮还能再战500年!!!我炮还能再战500年!!!我炮还能再战500年!!!我炮还能再战500年
|
||||
```
|
292
danmaku/danmaku_view_proto.md
Normal file
@ -0,0 +1,292 @@
|
||||
# 弹幕元数据
|
||||
|
||||
2020-09-25 B站更新了互动弹幕功能,包括UP主头像弹幕、关联视频弹幕、视频内嵌引导关注按钮三大功能
|
||||
|
||||
详情见:
|
||||
|
||||
[【客户端更新】6.10版本更新!UP主支持发布关联视频弹幕]( https://www.bilibili.com/read/cv7728299 )
|
||||
|
||||
[引导关注卡片](https://www.bilibili.com/blackboard/activity-c8a0iDRQy.html )
|
||||
|
||||
## 获取弹幕个人配置与互动弹幕及BAS(代码)弹幕专包(web端)
|
||||
|
||||
> http://api.bilibili.com/x/v2/dm/web/view
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:仅可Cookie(SESSDATA)
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ----------- |
|
||||
| type | num | 弹幕类 | 必要 | 1:视频弹幕 |
|
||||
| oid | num | 视频CID | 必要 | |
|
||||
| pid | num | 稿件avID | 非必要 | |
|
||||
|
||||
**proto回复:**
|
||||
|
||||
消息`DmWebViewReply`:
|
||||
|
||||
| 名称 | 类型 | 含义 | 备注 |
|
||||
| ---------- | -------------------- | ---------------------- | ---------------------------- |
|
||||
| state | int32 | 弹幕开放状态 | 0:开放弹幕<br />1:禁止弹幕 |
|
||||
| text | string | ? | |
|
||||
| textSide | string | ? | |
|
||||
| dmSge | DmSegConfig | 分段弹幕包信息? | |
|
||||
| flag | DanmakuFlagConfig | ? | |
|
||||
| specialDms | repeated string | BAS(代码)弹幕专包url | |
|
||||
| checkBox | bool | ? | |
|
||||
| count | int64 | 实际弹幕总数 | 具有1500-6000不等的上限 |
|
||||
| commandDms | repeated CommandDm | 互动弹幕条目 | |
|
||||
| dmSetting | DanmuWebPlayerConfig | 弹幕个人配置 | 仅登录后存在 |
|
||||
|
||||
消息`dmSge`:
|
||||
|
||||
| 名称 | 类型 | 含义 | 备注 |
|
||||
| -------- | ----- | ------------ | ---------- |
|
||||
| pageSize | int64 | 分段时间? | 单位为毫秒 |
|
||||
| total | int64 | 最大分页数? | |
|
||||
|
||||
消息`flag`:
|
||||
|
||||
| 名称 | 类型 | 含义 | 备注 |
|
||||
| --------- | ------ | ---- | ---- |
|
||||
| recFlag | int32 | ? | |
|
||||
| recText | string | ? | |
|
||||
| recSwitch | int32 | ? | |
|
||||
|
||||
消息`commandDms`:
|
||||
|
||||
| 名称 | 类型 | 含义 | 备注 |
|
||||
| -------- | ------ | ------------ | ------------------------------------------------------------ |
|
||||
| id | int64 | 弹幕dmID | |
|
||||
| oid | int64 | 视频CID | |
|
||||
| mid | int64 | 发送者UID | |
|
||||
| command | string | 弹幕指令 | `#UP#`:UP主头像弹幕<br />`#LINK#`:关联视频弹幕<br />`#ATTENTION#`:视频内嵌引导关注按钮 |
|
||||
| content | string | 弹幕文字 | |
|
||||
| progress | int32 | 弹幕出现时间 | 单位为毫秒 |
|
||||
| ctime | string | 创建时间? | 此项为空 |
|
||||
| mtime | string | 修改时间? | 此项为空 |
|
||||
| extra | string | 弹幕负载数据 | json序列字串 |
|
||||
| idStr | string | 弹幕dmID | 字串形式 |
|
||||
|
||||
`extra`json序列:
|
||||
|
||||
类型为【UP主头像弹幕】时:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------- | ---- |
|
||||
| icon | str | UP主头像url | |
|
||||
|
||||
类型为【关联视频弹幕】时:类型为【关联视频弹幕】时:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ---- | ------------------- | ---- |
|
||||
| aid | num | 关联视频的avID | |
|
||||
| title | str | 关联视频的标题 | |
|
||||
| icon | str | 关联视频按钮图片url | |
|
||||
| bvid | str | 关联视频的bvID | |
|
||||
|
||||
类型为【视频内嵌引导关注按钮】时:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | ----------- | ---------------------------------- |
|
||||
| duration | num | 持续时间 | 单位为毫秒 |
|
||||
| posX | num | X坐标 | 区间:[118-549] |
|
||||
| posY | num | Y坐标 | 区间:[82-293] |
|
||||
| icon | str | 按钮图片url | 不应该是关注按钮吗,但这个是圆形的 |
|
||||
|
||||
消息`dmSetting`:
|
||||
|
||||
| 名称 | 类型 | 含义 | 备注 |
|
||||
| ------------ | ------ | ------------------------ | ------------------------------------------------------------ |
|
||||
| dmSwitch | bool | 弹幕开关 | true:开启<br />false:关闭 |
|
||||
| aiSwitch | bool | 智能云屏蔽 | 同上 |
|
||||
| aiLevel | int32 | 智能云屏蔽级别 | 区间:[1-10] |
|
||||
| blocktop | bool | 屏蔽类型-顶部 | true:不屏蔽<br />false:屏蔽 |
|
||||
| blockscroll | bool | 屏蔽类型-滚动 | 同上 |
|
||||
| blockbottom | bool | 屏蔽类型-底部 | 同上 |
|
||||
| blockcolor | bool | 屏蔽类型-彩色 | 同上 |
|
||||
| blockspecial | bool | 屏蔽类型-特殊 | 同上 |
|
||||
| preventshade | bool | 防挡弹幕(底部15%) | true:开启<br />false:关闭 |
|
||||
| dmask | bool | 智能防挡弹幕(人像蒙版) | 同上 |
|
||||
| opacity | float | 弹幕不透明度 | 区间:[0-1] |
|
||||
| dmarea | int32 | 弹幕显示区域 | 100:不重叠<br />75:3/4屏<br />50:半瓶<br />25:1/4屏<br />0:不限 |
|
||||
| speedplus | float | 弹幕速度 | 区间:[0.4-1.6] |
|
||||
| fontsize | float | 字体大小 | 区间:[0.4-1.6] |
|
||||
| screensync | bool | 跟随屏幕缩放比例 | |
|
||||
| speedsync | bool | 根据播放倍速调整速度 | |
|
||||
| fontfamily | string | 字体类型? | 未启用 |
|
||||
| bold | bool | 粗体? | 未启用 |
|
||||
| fontborder | int32 | 描边类型 | 0:重墨<br />1:描边<br />2:45°投影 |
|
||||
| drawType | string | 渲染类型? | 未启用 |
|
||||
|
||||
protobuf结构体:
|
||||
|
||||
**web_dmview.proto**
|
||||
|
||||
```protobuf
|
||||
syntax = "proto3";
|
||||
|
||||
//分段弹幕包信息?
|
||||
message DmSegConfig {
|
||||
int64 pageSize = 1; //分段时间?
|
||||
int64 total = 2; //最大分页数?
|
||||
}
|
||||
|
||||
//
|
||||
message DanmakuFlagConfig {
|
||||
int32 recFlag = 1; //
|
||||
string recText = 2; //
|
||||
int32 recSwitch = 3; //
|
||||
}
|
||||
|
||||
// 互动弹幕条目
|
||||
message CommandDm {
|
||||
int64 id = 1; //弹幕dmID
|
||||
int64 oid = 2; //视频CID
|
||||
int64 mid = 3; //发送者UID
|
||||
string command = 4; //弹幕指令
|
||||
string content = 5; //弹幕文字
|
||||
int32 progress = 6; //弹幕出现时间
|
||||
string ctime = 7; //
|
||||
string mtime = 8; //
|
||||
string extra = 9; //弹幕负载数据
|
||||
string idStr = 10; //弹幕dmID(字串形式)
|
||||
}
|
||||
|
||||
//弹幕个人配置
|
||||
message DanmuWebPlayerConfig{
|
||||
bool dmSwitch=1; //弹幕开关
|
||||
bool aiSwitch=2; //智能云屏蔽
|
||||
int32 aiLevel=3; //智能云屏蔽级别
|
||||
bool blocktop=4; //屏蔽类型-顶部
|
||||
bool blockscroll=5; //屏蔽类型-滚动
|
||||
bool blockbottom=6; //屏蔽类型-底部
|
||||
bool blockcolor=7; //屏蔽类型-彩色
|
||||
bool blockspecial=8; //屏蔽类型-特殊
|
||||
bool preventshade=9; //防挡弹幕(底部15%)
|
||||
bool dmask=10; //智能防挡弹幕(人像蒙版)
|
||||
float opacity=11; //弹幕不透明度
|
||||
int32 dmarea=12; //弹幕显示区域
|
||||
float speedplus=13; //弹幕速度
|
||||
float fontsize=14; //字体大小
|
||||
bool screensync=15; //跟随屏幕缩放比例
|
||||
bool speedsync=16; //根据播放倍速调整速度
|
||||
string fontfamily=17; //字体类型?
|
||||
bool bold=18; //粗体?
|
||||
int32 fontborder=19; //描边类型
|
||||
string drawType=20; //渲染类型?
|
||||
}
|
||||
|
||||
message DmWebViewReply {
|
||||
int32 state = 1; //弹幕开放状态
|
||||
string text = 2; //
|
||||
string textSide = 3; //
|
||||
DmSegConfig dmSge = 4; //分段弹幕包信息?
|
||||
DanmakuFlagConfig flag = 5; //
|
||||
repeated string specialDms = 6; //BAS(代码)弹幕专包url
|
||||
bool checkBox = 7; //
|
||||
int64 count = 8; //实际弹幕总数
|
||||
repeated CommandDm commandDms = 9; //互动弹幕条目
|
||||
DanmuWebPlayerConfig dmSetting = 10; //弹幕个人配置
|
||||
}
|
||||
```
|
||||
|
||||
**示例:**
|
||||
|
||||
获取视频`av797164471(CID=236871317)`的弹幕元数据
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/v2/dm/web/view' \
|
||||
--data-urlencode 'type=1' \
|
||||
--data-urlencode 'oid=236871317' \
|
||||
--data-urlencode 'pid=797164471' \
|
||||
-b 'SESSDATA=xxx' \
|
||||
-o 'danmaku_view.bin'
|
||||
```
|
||||
|
||||
响应正文为protubuf二进制数据
|
||||
|
||||
## 获取互动弹幕
|
||||
|
||||
获取视频`av797164471(CID=236871317)`的互动弹幕
|
||||
|
||||
```python
|
||||
import web_dmview_pb2
|
||||
import requests
|
||||
|
||||
AVID = 797164471
|
||||
CID = 236871317
|
||||
url = 'http://api.bilibili.com/x/v2/dm/web/view?type=1&oid=' + str(CID) + '&pid=' + str(AVID)
|
||||
|
||||
data = requests.get(url)
|
||||
target = web_dmview_pb2.DmWebViewReply()
|
||||
target.ParseFromString(data.content)
|
||||
|
||||
commandDms_len=len(target.commandDms)
|
||||
print('互动弹幕数=',commandDms_len)
|
||||
for i in range(commandDms_len):
|
||||
print('互动弹幕[',i,']:')
|
||||
print('---弹幕ID=',target.commandDms[i].id)
|
||||
print('---视频CID=',target.commandDms[i].oid)
|
||||
print('---发送者UID=',target.commandDms[i].mid)
|
||||
print('---弹幕指令=',target.commandDms[i].command)
|
||||
print('---弹幕文字=',target.commandDms[i].content)
|
||||
print('---弹幕出现时间=',target.commandDms[i].progress)
|
||||
print('---ctime=',target.commandDms[i].ctime)
|
||||
print('---mtime=',target.commandDms[i].mtime)
|
||||
print('---弹幕负载数据=',target.commandDms[i].extra)
|
||||
print('---弹幕ID(字串)=',target.commandDms[i].idStr)
|
||||
```
|
||||
|
||||
输出为:
|
||||
|
||||
```
|
||||
互动弹幕数= 1
|
||||
互动弹幕[ 0 ]:
|
||||
---弹幕ID= 38469676112019463
|
||||
---视频CID= 236871317
|
||||
---发送者UID= 501183549
|
||||
---弹幕指令= #UP#
|
||||
---弹幕文字= 这个视频没有恰饭!别紧张!
|
||||
---弹幕出现时间= 157818
|
||||
---ctime=
|
||||
---mtime=
|
||||
---弹幕负载数据= {"icon":"http://i1.hdslb.com/bfs/face/559abe31f561f71f3106d8ee7b2065cac50c1235.jpg"}
|
||||
---弹幕ID(字串)= 38469676112019463
|
||||
```
|
||||
|
||||
## 获取BAS(代码)弹幕专包
|
||||
|
||||
BAS弹幕(`pool=2` `mode=9`)只能从此包获取,代码弹幕(`pool=2` `mode=8`)也能从此包获取
|
||||
|
||||
获取视频`av2(CID=62131)`的BAS(代码)弹幕专包
|
||||
|
||||
```python
|
||||
import web_dmview_pb2
|
||||
import requests
|
||||
|
||||
AVID = 2
|
||||
CID = 62131
|
||||
url = 'http://api.bilibili.com/x/v2/dm/web/view?type=1&oid=' + str(CID) + '&pid=' + str(AVID)
|
||||
|
||||
data = requests.get(url)
|
||||
target = web_dmview_pb2.DmWebViewReply()
|
||||
target.ParseFromString(data.content)
|
||||
|
||||
specialDms_len=len(target.specialDms)
|
||||
print('特殊弹幕包数=',specialDms_len)
|
||||
for i in range(specialDms_len):
|
||||
print('特殊弹幕包url[',i,']=',target.specialDms[i])
|
||||
```
|
||||
|
||||
输出为:
|
||||
|
||||
```
|
||||
特殊弹幕包数= 1
|
||||
特殊弹幕包url[ 0 ]= http://i0.hdslb.com/bfs/dm/b0d5f08c12be59292aa0d4e09b6dd8e54c2ba886.bin
|
||||
```
|
||||
|
||||
使用[普通分段包弹幕](danmaku_proto.md#获取实时弹幕)的proto结构体反序列化此bin数据
|
@ -1,46 +1,56 @@
|
||||
# 弹幕
|
||||
# xml弹幕
|
||||
|
||||
获取的均为xml格式标准弹幕文件,下载至本地后加载
|
||||
|
||||
实时弹幕池容量有限(根据视频类型500-3000条不等),占满后再发送会使实时弹幕池底部的弹幕压入历史弹幕池(类似于堆栈)
|
||||
实时弹幕池容量有限(根据视频类型500-8000条不等),占满后再发送会使实时弹幕池底部的弹幕压入历史弹幕池(类似于堆栈)
|
||||
|
||||
## 获取实时弹幕1
|
||||
|
||||
> http://api.bilibili.com/x/v1/dm/list.so
|
||||
|
||||
*方式:GET*
|
||||
*请求方式:GET*
|
||||
|
||||
**使用deflate压缩,注意解码**
|
||||
|
||||
**参数:**
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------- | ------ | ---- |
|
||||
| oid | url | 视频CID | 必要 | |
|
||||
| oid | num | 视频CID | 必要 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
http://api.bilibili.com/x/v1/dm/list.so?oid=144541892
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/v1/dm/list.so' \
|
||||
--data-urlencode 'oid=144541892' \
|
||||
--compressed -o 'danmaku.xml'
|
||||
```
|
||||
|
||||
## 获取实时弹幕2
|
||||
|
||||
> http://comment.bilibili.com/{cid}.xml
|
||||
|
||||
*方式:GET*
|
||||
*请求方式:GET*
|
||||
|
||||
效果与前者相同
|
||||
|
||||
**使用deflate压缩,注意解码**
|
||||
|
||||
**参数:**
|
||||
**url路径:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------- | ------ | ---- |
|
||||
| cid | url | 视频CID | 必要 | |
|
||||
| cid | num | 视频CID | 必要 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
http://comment.bilibili.com/144541892.xml
|
||||
```shell
|
||||
curl 'http://comment.bilibili.com/144541892.xml'
|
||||
--compressed -o 'danmaku.xml'
|
||||
```
|
||||
|
||||
**xml回复:**
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
@ -71,7 +81,7 @@ http://comment.bilibili.com/144541892.xml
|
||||
<i>
|
||||
```
|
||||
|
||||
|
||||
</details>
|
||||
|
||||
## 弹幕格式
|
||||
|
||||
@ -83,7 +93,7 @@ http://comment.bilibili.com/144541892.xml
|
||||
- 标签 chatid:视频CID
|
||||
- 标签 mission:0
|
||||
- 标签 maxlimit:实时弹幕池最大容量
|
||||
- 标签 state:0
|
||||
- 标签 state:弹幕状态(0:正常 1:弹幕已关闭)
|
||||
- 标签 real_name:0
|
||||
- 标签 source:e-r
|
||||
|
||||
@ -91,18 +101,18 @@ http://comment.bilibili.com/144541892.xml
|
||||
|
||||
### 属性 p
|
||||
|
||||
字符串内每项用","分隔
|
||||
字符串内每项用逗号`,`分隔
|
||||
|
||||
| 项 | 含义 | 类型 | 备注 |
|
||||
| ---- | ------------------ | ----- | ------------------------------------------------------------ |
|
||||
| 0 | 视频内弹幕出现时间 | float | 秒 |
|
||||
| 1 | 弹幕类型 | int | 1 2 3普通弹幕<br />4底部<br />5顶部<br />6逆向<br />7精准定位<br />8代码弹幕<br />9BAS弹幕 |
|
||||
| 2 | 弹幕字号 | int | 18 小<br />25 标准<br />36 大 |
|
||||
| 3 | 弹幕颜色 | int | 十进制RGB888值 |
|
||||
| 4 | 弹幕发送时间 | int | 时间戳 |
|
||||
| 5 | 弹幕池类型 | int | 0普通池<br />1字幕池<br />2特殊池(高级弹幕) |
|
||||
| 6 | 编码后的用户ID | HEX | 用于屏蔽用户和查看用户发送的所有弹幕 也可反查用户ID |
|
||||
| 7 | 弹幕ID | int | 唯一 可用于操作参数 |
|
||||
| 项 | 含义 | 类型 | 备注 |
|
||||
| ---- | ------------------ | ------ | ------------------------------------------------------------ |
|
||||
| 0 | 视频内弹幕出现时间 | float | 秒 |
|
||||
| 1 | 弹幕类型 | int32 | 1 2 3:普通弹幕<br />4:底部弹幕<br />5:顶部弹幕<br />6:逆向弹幕<br />7:高级弹幕<br />8:代码弹幕<br />9:BAS弹幕(`pool`必须为2) |
|
||||
| 2 | 弹幕字号 | int32 | 18:小<br />25:标准<br />36:大 |
|
||||
| 3 | 弹幕颜色 | int32 | 十进制RGB888值 |
|
||||
| 4 | 弹幕发送时间 | int32 | 时间戳 |
|
||||
| 5 | 弹幕池类型 | int32 | 0:普通池<br />1:字幕池<br />2:特殊池(代码/BAS弹幕) |
|
||||
| 6 | 发送者UID的HASH | string | 用于屏蔽用户和查看用户发送的所有弹幕 也可反查用户ID |
|
||||
| 7 | 弹幕dmID | int64 | 唯一 可用于操作参数 |
|
||||
|
||||
```xml
|
||||
<d p="490.19100,1,25,16777215,1584268892,0,a16fe0dd,29950852386521095">从结尾回来看这里,更感动了!</d>
|
||||
@ -132,4 +142,3 @@ http://comment.bilibili.com/144541892.xml
|
||||
| <font color="#222222">黑色</font> | <font color="#222222">222222</font> | <font color="#222222">2236962</font> |
|
||||
| <font color="#9B9B9B">灰色</font> | <font color="#9B9B9B">9B9B9B</font> | <font color="#9B9B9B">10197915</font> |
|
||||
| <font color="#FFFFFF">白色</font> | <font color="#FFFFFF">FFFFFF</font> | <font color="#FFFFFF">16777215</font> |
|
||||
|
@ -1,20 +1,22 @@
|
||||
# 历史弹幕
|
||||
|
||||
本页所有操作均需登录(SESSDATA)
|
||||
**本页所有操作均需登录(SESSDATA)**
|
||||
|
||||
## 查询历史弹幕日期
|
||||
|
||||
> http://api.bilibili.com/x/v2/dm/history/index
|
||||
|
||||
*方式:GET*
|
||||
*请求方式:GET*
|
||||
|
||||
**参数:**
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ------------ |
|
||||
| type | url | 1 | 必要 | 作用尚不明确 |
|
||||
| oid | url | 视频CID | 必要 | |
|
||||
| month | url | 查询月份 | 必要 | mm-dd |
|
||||
| type | num | 1 | 必要 | 作用尚不明确 |
|
||||
| oid | num | 视频CID | 必要 | |
|
||||
| month | str | 查询月份 | 必要 | mm-dd |
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -24,7 +26,7 @@
|
||||
| ------- | ------------------------------- | -------- | ------------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误<br />-101:账号未登录 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | 作用尚不明确 |
|
||||
| ttl | num | 1 | |
|
||||
| data | 有弹幕:array<br />无弹幕:null | 日期列表 | |
|
||||
|
||||
`data`数组:
|
||||
@ -39,7 +41,15 @@
|
||||
|
||||
查询了cid为144541892的视频位于2020年1月中有历史弹幕记录的日期
|
||||
|
||||
http://api.bilibili.com/x/v2/dm/history/index?type=1&oid=144541892&month=2020-01
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/v2/dm/history/index' \
|
||||
--data-urlencode 'type=1' \
|
||||
--data-urlencode 'oid=144541892' \
|
||||
--data-urlencode 'month=2020-01'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -62,9 +72,19 @@ http://api.bilibili.com/x/v2/dm/history/index?type=1&oid=144541892&month=2020-01
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
返回结果的 `data` 项说明这些日期有弹幕发送。若查询的月份中视频无弹幕,则 `data` 项为 `null`
|
||||
|
||||
http://api.bilibili.com/x/v2/dm/history/index?type=1&oid=144541892&month=2019-12
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/v2/dm/history/index' \
|
||||
--data-urlencode 'type=1' \
|
||||
--data-urlencode 'oid=144541892' \
|
||||
--data-urlencode 'month=2019-12'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -75,27 +95,40 @@ http://api.bilibili.com/x/v2/dm/history/index?type=1&oid=144541892&month=2019-12
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 获取历史弹幕
|
||||
|
||||
> http://api.bilibili.com/x/v2/dm/history
|
||||
|
||||
*方式:GET*
|
||||
*请求方式:GET*
|
||||
|
||||
结果为标准xml格式弹幕
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
结果为[标准xml格式弹幕](danmaku_xml.md#弹幕格式)
|
||||
|
||||
**使用deflate压缩,注意解码**
|
||||
|
||||
**参数:**
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ------------ |
|
||||
| type | url | 1 | 必要 | 作用尚不明确 |
|
||||
| oid | url | 视频CID | 必要 | |
|
||||
| date | url | 弹幕日期 | 必要 | yyyy-mm-dd |
|
||||
| type | num | 1 | 必要 | 作用尚不明确 |
|
||||
| oid | num | 视频CID | 必要 | |
|
||||
| date | str | 弹幕日期 | 必要 | yyyy-mm-dd |
|
||||
|
||||
**示例:**
|
||||
|
||||
https://api.bilibili.com/x/v2/dm/history?type=1&oid=144541892&date=2020-01-21
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/v2/dm/history' \
|
||||
--data-urlencode 'type=1' \
|
||||
--data-urlencode 'oid=144541892' \
|
||||
--data-urlencode 'date=2020-01-21' \
|
||||
--compressed -o 'danmaku.xml'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
@ -126,3 +159,5 @@ https://api.bilibili.com/x/v2/dm/history?type=1&oid=144541892&date=2020-01-21
|
||||
…………
|
||||
<i>
|
||||
```
|
||||
|
||||
</details>
|
@ -1,18 +1,18 @@
|
||||
# 弹幕快照
|
||||
# 弹幕快照
|
||||
|
||||
## 获取弹幕快照
|
||||
# 获取弹幕快照
|
||||
|
||||
> http://api.bilibili.com/x/v2/dm/ajax
|
||||
|
||||
*方式:GET*
|
||||
*请求方式:GET*
|
||||
|
||||
最近产生的几条弹幕内容,**最多20条**
|
||||
|
||||
**参数:**
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------------------ | ------ | ---- |
|
||||
| aid | url | 视频avID或视频bvID | 必要 | |
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | -------- | ------------------ | ------ | ---- |
|
||||
| aid | num或str | 稿件avID或稿件bvID | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
| ------- | ----- | -------- | --------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误<br />-404:无视频 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | 作用尚不明确 |
|
||||
| ttl | num | 1 | |
|
||||
| data | array | 预览列表 | |
|
||||
|
||||
`data`数组:
|
||||
@ -38,9 +38,22 @@
|
||||
|
||||
获取视频`av43337021`/`BV1rb411m7gE`的弹幕快照,总计20条
|
||||
|
||||
http://api.bilibili.com/x/v2/dm/ajax?aid=43337021
|
||||
avID方式:
|
||||
|
||||
同http://api.bilibili.com/x/v2/dm/ajax?aid=BV1rb411m7gE
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/v2/dm/ajax' \
|
||||
--data-urlencode 'aid=43337021'
|
||||
```
|
||||
|
||||
bvID方式:
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/v2/dm/ajax' \
|
||||
--data-urlencode 'aid=BV1rb411m7gE'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -72,3 +85,4 @@ http://api.bilibili.com/x/v2/dm/ajax?aid=43337021
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
1034
dynamic/content.md
Normal file
@ -1,23 +1,23 @@
|
||||
# 发布动态
|
||||
|
||||
## 为动态(画友)上传图片
|
||||
## 为图片动态(相簿)上传图片
|
||||
|
||||
> http://api.vc.bilibili.com/api/v1/drawImage/upload
|
||||
|
||||
*方式:POST*
|
||||
*请求方式:POST*
|
||||
|
||||
需要登录(SESSDATA)
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
~~这是图床?(滑稽保命)~~
|
||||
|
||||
注意:非日常类型像素宽高必须大于420
|
||||
|
||||
**参数(multipart/form-data):**
|
||||
**正文参数(multipart/form-data):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| -------- | ---- | ------------------ | ------ | ------------------------------------------------------------ |
|
||||
| file_up | data | 需要上传的图片文件 | 必要 | 格式仅支持jpg png gif |
|
||||
| category | data | 图片类型 | 必要 | daily:日常(动态)<br />draw:绘画(画友)<br />cos:摄影(COS PLAY) |
|
||||
| file_up | file | 需要上传的图片文件 | 必要 | 格式仅支持jpg png gif |
|
||||
| category | str | 图片类型 | 必要 | daily:日常(动态)<br />draw:绘画(画友)<br />cos:摄影(COSPLAY) |
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -41,17 +41,26 @@
|
||||
|
||||
上传了一张图片`test.png`类型为`日常`
|
||||
|
||||
curl -b "SESSDATA=xxx" -F "file_up=@test.png" -F "category=daily" "http://api.vc.bilibili.com/api/v1/drawImage/upload"
|
||||
```shell
|
||||
curl 'http://api.vc.bilibili.com/api/v1/drawImage/upload' \
|
||||
-F 'file_up=@test.png' \
|
||||
-F 'category=daily'
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code":0,
|
||||
"message":"success",
|
||||
"data":{
|
||||
"image_url":"http:\/\/i0.hdslb.com\/bfs\/album\/13f9523efe186a8066b2d72e80283cea2437eb62.png",
|
||||
"image_url":"http:\/\/i0.hdslb.com\/bfs\/album\/13f9523efe186a8066b2d72e80283cea2437eb62.png",
|
||||
"image_width":1225,
|
||||
"image_height":850
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
@ -6,19 +6,19 @@
|
||||
|
||||
> http://api.bilibili.com/x/ugcpay/trade/elec/pay/quick
|
||||
|
||||
*方式:POST*
|
||||
*请求方式:POST*
|
||||
|
||||
需要登录(SESSDATA)
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**参数( application/x-www-form-urlencoded ):**
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| -------- | ---- | ------------------- | ------ | ------------------------------------------------- |
|
||||
| elec_num | data | 充电电池数量 | 必要 | 必须在20-99990之间 |
|
||||
| up_mid | data | 充电对象用户UID | 必要 | |
|
||||
| otype | data | 充电来源 | 必要 | up:空间充电<br />archive:视频充电 |
|
||||
| oid | data | 充电来源代码 | 必要 | 空间充电:充电对象用户UID<br />视频充电:视频avID |
|
||||
| csrf | data | cookies中的bili_jct | 必要 | |
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| -------- | ---- | ------------------------ | ------ | ------------------------------------------------- |
|
||||
| elec_num | num | 充电电池数量 | 必要 | 必须在20-99990之间 |
|
||||
| up_mid | num | 充电对象用户UID | 必要 | |
|
||||
| otype | str | 充电来源 | 必要 | up:空间充电<br />archive:视频充电 |
|
||||
| oid | num | 充电来源代码 | 必要 | 空间充电:充电对象用户UID<br />视频充电:稿件avID |
|
||||
| csrf | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -26,9 +26,9 @@
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功(并不代表充电成功) <br />-400:请求错误<br />-111:csrf校验失败<br />-101:账号未登录 |
|
||||
| code | num | 返回值 | 0:成功(并不代表充电成功) <br />-101:账号未登录<br />-111:csrf校验失败<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | 作用尚不明确 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
@ -37,7 +37,7 @@
|
||||
| -------- | ---- | ----------- | ------------------------------------------------ |
|
||||
| mid | num | 本用户UID | |
|
||||
| up_mid | num | 目标用户UID | |
|
||||
| order_no | str | 交易编号 | 用于添加充电备注 |
|
||||
| order_no | str | 留言token | 用于添加充电留言 |
|
||||
| elec_num | num | 充电电池数 | |
|
||||
| exp | num | 获得经验数 | |
|
||||
| status | num | 返回结果 | 4:成功<br />-2:低于20电池下限<br />-4:B币不足 |
|
||||
@ -45,14 +45,24 @@
|
||||
|
||||
**示例:**
|
||||
|
||||
以空间的方式向用户`UID=293793435`充了20电池,得到2经验,交易编号为`BPRG5CEC3VUPOOANA540`
|
||||
以空间的方式向用户`UID=293793435`充了20电池,得到2经验,留言token为`BPRG5CEC3VUPOOANA540`
|
||||
|
||||
此时`data`.`status`=`4`
|
||||
|
||||
~~(自己冲自己QAQ)~~
|
||||
~~自己冲自己QAQ~~
|
||||
|
||||
curl -b "SESSDATA=xxx" -d "elec_num=20&u
|
||||
p_mid=293793435&otype=up&oid=293793435&csrf=xxx" "http://api.bilibili.com/x/ugcpay/trade/elec/pay/quick"
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/ugcpay/trade/elec/pay/quick' \
|
||||
--data-urlencode 'elec_num=20' \
|
||||
--data-urlencode 'up_mid=293793435' \
|
||||
--data-urlencode 'otype=up' \
|
||||
--data-urlencode 'oid=293793435' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -71,12 +81,24 @@ p_mid=293793435&otype=up&oid=293793435&csrf=xxx" "http://api.bilibili.com/x/ugcp
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
当所充电池数小于20时,充电不会成功
|
||||
|
||||
此时`data`.`status`=`-2`
|
||||
|
||||
curl -b SESSDATA=xxx -d "elec_num=1&u
|
||||
p_mid=293793435&otype=up&oid=293793435&csrf=xxx" "http://api.bilibili.com/x/ugcpay/trade/elec/pay/quick"
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/ugcpay/trade/elec/pay/quick' \
|
||||
--data-urlencode 'elec_num=1' \
|
||||
--data-urlencode 'up_mid=293793435' \
|
||||
--data-urlencode 'otype=up' \
|
||||
--data-urlencode 'oid=293793435' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -95,12 +117,24 @@ p_mid=293793435&otype=up&oid=293793435&csrf=xxx" "http://api.bilibili.com/x/ugcp
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
当所充电池数折合的B币数不足时,充电也不会成功
|
||||
|
||||
此时`data`.`status`=`-4`
|
||||
|
||||
curl -b SESSDATA=xxx -d "elec_num=999&u
|
||||
p_mid=293793435&otype=up&oid=293793435&csrf=xxx" "http://api.bilibili.com/x/ugcpay/trade/elec/pay/quick"
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/ugcpay/trade/elec/pay/quick' \
|
||||
--data-urlencode 'elec_num=999' \
|
||||
--data-urlencode 'up_mid=293793435' \
|
||||
--data-urlencode 'otype=up' \
|
||||
--data-urlencode 'oid=293793435' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -119,3 +153,4 @@ p_mid=293793435&otype=up&oid=293793435&csrf=xxx" "http://api.bilibili.com/x/ugcp
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
@ -1,6 +1,6 @@
|
||||
# 微信&支付宝方式充电
|
||||
|
||||
本页所有操作均需登录(SESSDATA)
|
||||
**本页所有操作均需登录(Cookie)**
|
||||
|
||||
<img src="/imgs/battery-100.png" width="100" height="100"/>
|
||||
|
||||
@ -18,20 +18,22 @@
|
||||
|
||||
> http://api.bilibili.com/x/ugcpay/trade/elec/pay/qr_code/create
|
||||
|
||||
*方式:POST*
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
秘钥有效时间为10分钟
|
||||
|
||||
**参数( application/x-www-form-urlencoded ):**
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------------------- | ---- | ------------------- | ------ | ------------------------------------------------------------ |
|
||||
| up_mid | data | 充电对象用户UID | 必要 | |
|
||||
| elec_num | data | 充电电池数量 | 必要 | 必须在20-99990之间<br />1-19区间视为充值B币 |
|
||||
| is_bp_remains_prior | data | 是否优先扣除B币 | 必要 | true:是<br />false:否<br />在B币不足时剩余的部分利用支付平台支付 |
|
||||
| otype | data | 充电来源 | 必要 | up:空间充电<br />archive:视频充电 |
|
||||
| oid | data | 充电来源代码 | 必要 | 空间充电:充电对象用户UID<br />视频充电:视频avID |
|
||||
| csrf | data | cookies中的bili_jct | 必要 | |
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------------------- | ---- | ------------------------ | ------ | ------------------------------------------------------------ |
|
||||
| elec_num | num | 充电电池数量 | 必要 | 必须在20-99990之间<br />1-19区间视为充值B币 |
|
||||
| up_mid | num | 充电对象用户UID | 必要 | |
|
||||
| is_bp_remains_prior | bool | 是否优先扣除B币 | 必要 | true:是<br />false:否<br />在B币不足时剩余的部分利用支付平台支付 |
|
||||
| otype | str | 充电来源 | 必要 | up:空间充电<br />archive:视频充电 |
|
||||
| oid | num | 充电来源代码 | 必要 | 空间充电:充电对象用户UID<br />视频充电:稿件avID |
|
||||
| csrf | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -39,9 +41,9 @@
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误<br />-500:服务器错误<br />-111:csrf校验失败<br />-101:账号未登录 |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111:csrf校验失败<br />-400:请求错误<br />-500:服务器错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | 作用尚不明确 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
@ -56,7 +58,19 @@
|
||||
|
||||
申请空间的方式向用户23215368充电10电池且不使用B币的支付二维码
|
||||
|
||||
curl -b "SESSDATA=xxx" -d "up_mid=23215368&elec_num=10&is_bp_remains_prior=false&otype=up&oid=23215368&csrf=xxx" "http://api.bilibili.com/x/ugcpay/trade/elec/pay/qr_code/create"
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/ugcpay/trade/elec/pay/qr_code/create' \
|
||||
--data-urlencode 'elec_num=10' \
|
||||
--data-urlencode 'up_mid=23215368' \
|
||||
--data-urlencode 'is_bp_remains_prior=false' \
|
||||
--data-urlencode 'otype=up' \
|
||||
--data-urlencode 'oid=23215368' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -64,26 +78,28 @@ curl -b "SESSDATA=xxx" -d "up_mid=23215368&elec_num=10&is_bp_remains_prior=false
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"qr_code_url": "http://api.bilibili.com/x/ugcpay/trade/elec/pay/qr_code/gateway?mid=293793435\u0026token=c1cb1d95d2194ba58df6bb0f24ae1aaa",
|
||||
"qr_code_url": "http://api.bilibili.com/x/ugcpay/trade/elec/pay/qr_code/gateway?mid=293793435&token=c1cb1d95d2194ba58df6bb0f24ae1aaa",
|
||||
"qr_token": "c1cb1d95d2194ba58df6bb0f24ae1aaa",
|
||||
"exp": 1
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
</details>
|
||||
|
||||
## 检查扫码支付结果
|
||||
|
||||
> http://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status
|
||||
|
||||
*方式:GET*
|
||||
*请求方式:GET*
|
||||
|
||||
**参数:**
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| -------- | ---- | -------- | ------ | ---- |
|
||||
| qr_token | url | 扫码秘钥 | 必要 | |
|
||||
| qr_token | str | 扫码秘钥 | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -93,7 +109,7 @@ curl -b "SESSDATA=xxx" -d "up_mid=23215368&elec_num=10&is_bp_remains_prior=false
|
||||
| ------- | ---- | -------- | ----------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | 作用尚不明确 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
@ -101,7 +117,7 @@ curl -b "SESSDATA=xxx" -d "up_mid=23215368&elec_num=10&is_bp_remains_prior=false
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | ----------- | ------------------------------------------------------------ |
|
||||
| qr_token | str | 扫码秘钥 | |
|
||||
| order_no | str | 交易编号 | 未成功则无此项<br />用于添加充电备注 |
|
||||
| order_no | str | 留言token | 未成功则无此项<br />用于添加充电留言 |
|
||||
| mid | num | 当前用户UID | |
|
||||
| status | num | 状态值 | 若秘钥错误则无此项<br />1:已支付<br />2:未扫描<br />3:未确认 |
|
||||
|
||||
@ -109,7 +125,14 @@ curl -b "SESSDATA=xxx" -d "up_mid=23215368&elec_num=10&is_bp_remains_prior=false
|
||||
|
||||
当申请到的支付二维码未被扫描时,`data`.`ststus`的值为`2`
|
||||
|
||||
http://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status?qr_token=c7cbdc47fc424cd18f2146db653597b8
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status' \
|
||||
--data-urlencode 'qr_token=c7cbdc47fc424cd18f2146db653597b8' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -124,9 +147,18 @@ http://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status?qr_token=c7cbdc47fc
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
当申请到的支付二维码已扫描但未确认时,`data`.`ststus`的值为`3`
|
||||
|
||||
http://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status?qr_token=c7cbdc47fc424cd18f2146db653597b8
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status' \
|
||||
--data-urlencode 'qr_token=c7cbdc47fc424cd18f2146db653597b8' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -141,9 +173,18 @@ http://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status?qr_token=c7cbdc47fc
|
||||
}
|
||||
```
|
||||
|
||||
成功支付后,`data`.`ststus`的值为`1`,且`data`.`order_no`存在交易编号
|
||||
</details>
|
||||
|
||||
http://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status?qr_token=bd649c836c524550bfe22a369334fc05
|
||||
成功支付后,`data`.`ststus`的值为`1`,且`data`.`order_no`存在留言token
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status' \
|
||||
--data-urlencode 'qr_token=c7cbdc47fc424cd18f2146db653597b8' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -159,3 +200,4 @@ http://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status?qr_token=bd649c836c
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
368
electric/charge_list.md
Normal file
@ -0,0 +1,368 @@
|
||||
# 充电列表
|
||||
|
||||
## 获取空间充电公示列表
|
||||
|
||||
> http://elec.bilibili.com/api/query.rank.do
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ----------- | ------ | ---- |
|
||||
| mid | num | 目标用户UID | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | -------- | ----------------------------- |
|
||||
| code | num | 返回值 | 0:成功 <br />500011:UID错误 |
|
||||
| msg | str | 错误信息 | 正确时无此项 |
|
||||
| data | obj | 数据本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ------ | ---------------- | ------------ |
|
||||
| display_num | num | 0 | 作用尚不明确 |
|
||||
| count | num | 本月充电人数 | |
|
||||
| total_count | num | 总计充电人数 | |
|
||||
| list | array | 本月充电用户列表 | |
|
||||
| user | null | | 作用尚不明确 |
|
||||
|
||||
`data`中的`list`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------- | ---------------- |
|
||||
| 0 | obj | 充电用户1 | |
|
||||
| n | obj | 充电用户(n+1) | 按照充电排名排列 |
|
||||
| …… | obj | …… | …… |
|
||||
| 29 | obj | 充电用户30 | 最后一项 |
|
||||
|
||||
`data`中的`list`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | ---------------- | ---------------- |
|
||||
| mid | num | 充电对象UID | |
|
||||
| pay_mid | num | 充电用户UID | |
|
||||
| rank | num | 充电用户排名 | 取决于充电的多少 |
|
||||
| uname | str | 充电用户昵称 | |
|
||||
| avatar | str | 充电用户头像url | |
|
||||
| message | str | 充电留言 | 无为空 |
|
||||
| msg_deleted | num | 0 | 作用尚不明确 |
|
||||
| vip_info | obj | 充电用户会员信息 | |
|
||||
| trend_type | num | 0 | 作用尚不明确 |
|
||||
|
||||
`data`中的`list`数组中的对象中的`vip_info`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------- | ---- | ---------- | ----------------------------------- |
|
||||
| vipType | num | 大会员类型 | 0:无<br />1:月会员<br />2:年会员 |
|
||||
| vipDueMsec | num | 0 | 作用尚不明确 |
|
||||
| vipStatus | num | 大会员状态 | 0:无<br />1:有 |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询用户`UID=53456`的充电公示列表
|
||||
|
||||
```shell
|
||||
curl -G 'http://elec.bilibili.com/api/query.rank.do' \
|
||||
--data-urlencode 'mid=53456'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"data": {
|
||||
"display_num": 0,
|
||||
"count": 226,
|
||||
"total_count": 11528,
|
||||
"list": [
|
||||
{
|
||||
"mid": 53456,
|
||||
"pay_mid": 346545025,
|
||||
"rank": 1,
|
||||
"uname": "还有什么名字没人用",
|
||||
"avatar": "http://i1.hdslb.com/bfs/face/76d4b1ecd13e992a6c7303d77bf716dd922ab234.jpg",
|
||||
"message": "早日康复,五月快乐",
|
||||
"msg_deleted": 0,
|
||||
"vip_info": {
|
||||
"vipType": 2,
|
||||
"vipDueMsec": 0,
|
||||
"vipStatus": 1
|
||||
},
|
||||
"trend_type": 0
|
||||
},
|
||||
{
|
||||
"mid": 53456,
|
||||
"pay_mid": 8826056,
|
||||
"rank": 2,
|
||||
"uname": "煋痕",
|
||||
"avatar": "http://i2.hdslb.com/bfs/face/35b7c752d0eb1bb7a924804f240b9bfd9199625f.jpg",
|
||||
"message": "",
|
||||
"msg_deleted": 0,
|
||||
"vip_info": {
|
||||
"vipType": 2,
|
||||
"vipDueMsec": 0,
|
||||
"vipStatus": 1
|
||||
},
|
||||
"trend_type": 0
|
||||
},
|
||||
{
|
||||
"mid": 53456,
|
||||
"pay_mid": 356668487,
|
||||
"rank": 3,
|
||||
"uname": "舞象祥",
|
||||
"avatar": "http://i1.hdslb.com/bfs/face/574f6203ef5bd0d56b95ded6a2736676d9cc5307.jpg",
|
||||
"message": "warma hayo",
|
||||
"msg_deleted": 0,
|
||||
"vip_info": {
|
||||
"vipType": 1,
|
||||
"vipDueMsec": 0,
|
||||
"vipStatus": 1
|
||||
},
|
||||
"trend_type": 0
|
||||
},
|
||||
…………
|
||||
],
|
||||
"user": null
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 获取视频充电鸣谢名单
|
||||
|
||||
> http://api.bilibili.com/x/web-interface/elec/show
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------------ | ------------ | ------------------ |
|
||||
| mid | num | 目标用户UID | 必要 | |
|
||||
| aid | num | 目标稿件avID | 必要(可选) | avID与bvID任选一个 |
|
||||
| bvid | str | 目标稿件bvID | 必要(可选) | avID与bvID任选一个 |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误<br />-404:无视频<br />62001:不需要展示充电信息 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ------ | ---------------- | ------------ |
|
||||
| show_info | obj | 展示选项 | |
|
||||
| av_count | num | 目标视频充电人数 | |
|
||||
| count | num | 本月充电人数 | |
|
||||
| total_count | num | 总计充电人数 | |
|
||||
| special_day | num | 0 | 作用尚不明确 |
|
||||
| display_num | num | 0 | 作用尚不明确 |
|
||||
| av_list | array | 目标视频充电列表 | |
|
||||
| list | array | 本月充电用户列表 | |
|
||||
|
||||
`data`中的`show_info`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ---- | ------------------------ | ----------------------------- |
|
||||
| show | bool | 是否展示视频充电鸣谢名单 | false:不展示<br />true:展示 |
|
||||
| state | num | 0 | |
|
||||
|
||||
`data`中的`list`数组(`av_list`数组):
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------- | ---------------- |
|
||||
| 0 | obj | 充电用户1 | |
|
||||
| n | obj | 充电用户(n+1) | 按照充电排名排列 |
|
||||
| …… | obj | …… | …… |
|
||||
| 29 | obj | 充电用户30 | 最后一项 |
|
||||
|
||||
`data`中的`list`数组(`av_list`数组)中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | ---------------- | ---------------- |
|
||||
| mid | num | 充电对象UID | |
|
||||
| pay_mid | num | 充电用户UID | |
|
||||
| rank | num | 充电用户排名 | 取决于充电的多少 |
|
||||
| uname | str | 充电用户昵称 | |
|
||||
| avatar | str | 充电用户头像url | |
|
||||
| message | str | 充电留言 | 无为空 |
|
||||
| msg_deleted | num | 0 | 作用尚不明确 |
|
||||
| vip_info | obj | 充电用户会员信息 | |
|
||||
| trend_type | num | 0 | 作用尚不明确 |
|
||||
|
||||
`data`中的`list`数组(`av_list`数组)中的对象中的`vip_info`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------- | ---- | ---------- | ----------------------------------- |
|
||||
| vipType | num | 大会员类型 | 0:无<br />1:月会员<br />2:年会员 |
|
||||
| vipDueMsec | num | 0 | 作用尚不明确 |
|
||||
| vipStatus | num | 大会员状态 | 0:无<br />1:有 |
|
||||
|
||||
**示例:**
|
||||
|
||||
获取视频`av967773538`/` BV1up4y1y77i `,用户`UID=53456`的视频充电鸣谢名单
|
||||
|
||||
avID方式:
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/web-interface/elec/show' \
|
||||
--data-urlencode 'mid=53456' \
|
||||
--data-urlencode 'aid=967773538'
|
||||
```
|
||||
|
||||
bvID方式:
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/web-interface/elec/show' \
|
||||
--data-urlencode 'mid=53456' \
|
||||
--data-urlencode 'bvid=BV1up4y1y77i '
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"show_info": {
|
||||
"show": true,
|
||||
"state": 0
|
||||
},
|
||||
"av_count": 4,
|
||||
"count": 226,
|
||||
"total_count": 11528,
|
||||
"special_day": 0,
|
||||
"display_num": 0,
|
||||
"av_list": [
|
||||
{
|
||||
"mid": 53456,
|
||||
"pay_mid": 326994943,
|
||||
"rank": 1,
|
||||
"uname": "此人不在线hhh",
|
||||
"avatar": "http://i0.hdslb.com/bfs/face/d2540c20f569554e62dd88cc78cbf2fe07268903.jpg",
|
||||
"message": "",
|
||||
"msg_deleted": 0,
|
||||
"vip_info": {
|
||||
"vipType": 1,
|
||||
"vipDueMsec": 0,
|
||||
"vipStatus": 1
|
||||
},
|
||||
"trend_type": 0
|
||||
},
|
||||
{
|
||||
"mid": 53456,
|
||||
"pay_mid": 328473637,
|
||||
"rank": 2,
|
||||
"uname": "SkJ_17",
|
||||
"avatar": "http://i1.hdslb.com/bfs/face/42b50918e8b7288009e55332322f991dcbce960a.jpg",
|
||||
"message": "",
|
||||
"msg_deleted": 0,
|
||||
"vip_info": {
|
||||
"vipType": 2,
|
||||
"vipDueMsec": 0,
|
||||
"vipStatus": 1
|
||||
},
|
||||
"trend_type": 0
|
||||
},
|
||||
{
|
||||
"mid": 53456,
|
||||
"pay_mid": 31345826,
|
||||
"rank": 3,
|
||||
"uname": "Aries梦落",
|
||||
"avatar": "http://i2.hdslb.com/bfs/face/206a58430c3e11675cacf3b7d7b4a8d9e44de3b2.jpg",
|
||||
"message": "",
|
||||
"msg_deleted": 0,
|
||||
"vip_info": {
|
||||
"vipType": 2,
|
||||
"vipDueMsec": 0,
|
||||
"vipStatus": 1
|
||||
},
|
||||
"trend_type": 0
|
||||
},
|
||||
{
|
||||
"mid": 53456,
|
||||
"pay_mid": 349867059,
|
||||
"rank": 4,
|
||||
"uname": "铭月zsm",
|
||||
"avatar": "http://i0.hdslb.com/bfs/face/b8cd7533376d80a1d8b36092f433c39ba1761cbc.jpg",
|
||||
"message": "",
|
||||
"msg_deleted": 0,
|
||||
"vip_info": {
|
||||
"vipType": 1,
|
||||
"vipDueMsec": 0,
|
||||
"vipStatus": 0
|
||||
},
|
||||
"trend_type": 0
|
||||
}
|
||||
],
|
||||
"list": [
|
||||
{
|
||||
"mid": 53456,
|
||||
"pay_mid": 346545025,
|
||||
"rank": 1,
|
||||
"uname": "还有什么名字没人用",
|
||||
"avatar": "http://i1.hdslb.com/bfs/face/76d4b1ecd13e992a6c7303d77bf716dd922ab234.jpg",
|
||||
"message": "早日康复,五月快乐",
|
||||
"msg_deleted": 0,
|
||||
"vip_info": {
|
||||
"vipType": 2,
|
||||
"vipDueMsec": 0,
|
||||
"vipStatus": 1
|
||||
},
|
||||
"trend_type": 0
|
||||
},
|
||||
{
|
||||
"mid": 53456,
|
||||
"pay_mid": 8826056,
|
||||
"rank": 2,
|
||||
"uname": "煋痕",
|
||||
"avatar": "http://i2.hdslb.com/bfs/face/35b7c752d0eb1bb7a924804f240b9bfd9199625f.jpg",
|
||||
"message": "",
|
||||
"msg_deleted": 0,
|
||||
"vip_info": {
|
||||
"vipType": 2,
|
||||
"vipDueMsec": 0,
|
||||
"vipStatus": 1
|
||||
},
|
||||
"trend_type": 0
|
||||
},
|
||||
{
|
||||
"mid": 53456,
|
||||
"pay_mid": 356668487,
|
||||
"rank": 3,
|
||||
"uname": "舞象祥",
|
||||
"avatar": "http://i1.hdslb.com/bfs/face/574f6203ef5bd0d56b95ded6a2736676d9cc5307.jpg",
|
||||
"message": "warma hayo",
|
||||
"msg_deleted": 0,
|
||||
"vip_info": {
|
||||
"vipType": 1,
|
||||
"vipDueMsec": 0,
|
||||
"vipStatus": 1
|
||||
},
|
||||
"trend_type": 0
|
||||
},
|
||||
…………
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
@ -2,17 +2,17 @@
|
||||
|
||||
> http://api.bilibili.com/x/ugcpay/trade/elec/message
|
||||
|
||||
*方式:POST*
|
||||
*请求方式:POST*
|
||||
|
||||
需要登录(SESSDATA)
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**参数( application/x-www-form-urlencoded ):**
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| -------- | ---- | ------------------- | ------ | ---- |
|
||||
| order_id | data | 交易编号 | 必要 | |
|
||||
| message | data | 留言内容 | 必要 | |
|
||||
| csrf | data | cookies中的bili_jct | 必要 | |
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| -------- | ---- | ------------------------ | ------ | ---- |
|
||||
| order_id | str | 留言token | 必要 | |
|
||||
| message | str | 留言内容 | 必要 | |
|
||||
| csrf | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -20,16 +20,24 @@
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功 <br />-400:请求错误<br />-111:csrf校验失败<br />-101:账号未登录<br />88203:不能重复留言 |
|
||||
| code | num | 返回值 | 0:成功 <br />-101:账号未登录<br />-111:csrf校验失败<br />-400:请求错误<br />88203:不能重复留言 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | 作用尚不明确 |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
成功为交易编号为`BPRG5CEC3VUPOOANA540`的充电操作,添加了内容为`支持一下大佬`的留言
|
||||
为留言token为`BPRG5CEC3VUPOOANA540`的充电操作,添加了内容为`支持一下大佬`的留言
|
||||
|
||||
curl -b "SESSDATA=xxx" -d "csrf=xxx&order_id=BPRG
|
||||
5CEC3VUPOOANA540&message=%e6%94%af%e6%8c%81%e4%b8%80%e4%b8%8b%e5%a4%a7%e4%bd%ac" "http://api.bilibili.com/x/ugcpay/trade/elec/message"
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/ugcpay/trade/elec/message' \
|
||||
--data-urlencode 'order_id=BPRG5CEC3VUPOOANA540' \
|
||||
--data-urlencode 'message=支持一下大佬' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -39,3 +47,4 @@ curl -b "SESSDATA=xxx" -d "csrf=xxx&order_id=BPRG
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
107
emote/action.md
Normal file
@ -0,0 +1,107 @@
|
||||
# 表情操作
|
||||
|
||||
**本页所有操作均需登录(Cookie)**
|
||||
|
||||
## 添加表情包
|
||||
|
||||
> http://api.bilibili.com/x/emote/package/add
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
只能添加有会员权限或已购买的表情包
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------------------ | ------ | -------------------------------- |
|
||||
| package_id | num | 表情包ID | 必要 | |
|
||||
| business | str | 使用场景 | 必要 | reply:评论区<br />dynamic:动态 |
|
||||
| csrf | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111:csrf校验失败<br />-400:请求错误<br />-403:访问权限不足 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
添加ID为`25`的表情包,使用场景为评论区
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/emote/package/add' \
|
||||
--data-urlencode 'package_id=25' \
|
||||
--data-urlencode 'business=reply' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 移除表情包
|
||||
|
||||
> http://api.bilibili.com/x/emote/package/remove
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------------------ | ------ | -------------------------------- |
|
||||
| package_id | num | 表情包ID | 必要 | |
|
||||
| business | str | 使用场景 | 必要 | reply:评论区<br />dynamic:动态 |
|
||||
| csrf | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111:csrf校验失败<br />-400:请求错误<br />-403:访问权限不足 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
移除ID为`25`的表情包,使用场景为评论区
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/emote/package/remove' \
|
||||
--data-urlencode 'package_id=25' \
|
||||
--data-urlencode 'business=reply' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
639
emote/emote_list.md
Normal file
@ -0,0 +1,639 @@
|
||||
# 表情列表
|
||||
|
||||
## 获取我的表情列表
|
||||
|
||||
> http://api.bilibili.com/x/emote/user/panel/web
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
使用登录(Cookie)进行会员专属及已购买表情包的分发,否则全为免费表情包
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| -------- | ---- | -------- | ------ | -------------------------------- |
|
||||
| business | str | 使用场景 | 必要 | reply:评论区<br />dynamic:动态 |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | --------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ----- | ------ | ---- |
|
||||
| packages | array | 表情包 | |
|
||||
|
||||
`data`中的`packages`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------- | -------------- |
|
||||
| 0 | obj | 表情包1 | **详情见附表** |
|
||||
| n | obj | 表情包(n+1) | **详情见附表** |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/emote/user/panel/web' \
|
||||
--data-urlencode 'business=reply' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"packages": [
|
||||
{
|
||||
"id": 1,
|
||||
"text": "小黄脸",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/81edf17314cea3b48674312b4364df44d5c01f17.png",
|
||||
"mtime": 1591604235,
|
||||
"type": 1,
|
||||
"attr": 66,
|
||||
"meta": {
|
||||
"size": 1,
|
||||
"item_id": 958
|
||||
},
|
||||
"emote": [
|
||||
{
|
||||
"id": 2126,
|
||||
"package_id": 1,
|
||||
"text": "[视频卫星]",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/dce6fc7d6dfeafff01241924db60f8251cca5307.png",
|
||||
"mtime": 1590986882,
|
||||
"type": 1,
|
||||
"attr": 0,
|
||||
"meta": {
|
||||
"size": 1
|
||||
},
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"id": 1901,
|
||||
"package_id": 1,
|
||||
"text": "[加油武汉]",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/eb966aaa5b690d3f9308a9f936f5b5a72a7f956b.png",
|
||||
"mtime": 1580024058,
|
||||
"type": 1,
|
||||
"attr": 0,
|
||||
"meta": {
|
||||
"size": 1
|
||||
},
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"id": 1906,
|
||||
"package_id": 1,
|
||||
"text": "[口罩]",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/3ad2f66b151496d2a5fb0a8ea75f32265d778dd3.png",
|
||||
"mtime": 1581309529,
|
||||
"type": 1,
|
||||
"attr": 0,
|
||||
"meta": {
|
||||
"size": 1
|
||||
},
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"package_id": 1,
|
||||
"text": "[微笑]",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/685612eadc33f6bc233776c6241813385844f182.png",
|
||||
"mtime": 1582182040,
|
||||
"type": 1,
|
||||
"attr": 0,
|
||||
"meta": {
|
||||
"size": 1
|
||||
},
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"id": 1958,
|
||||
"package_id": 1,
|
||||
"text": "[笑]",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/81edf17314cea3b48674312b4364df44d5c01f17.png",
|
||||
"mtime": 1582184940,
|
||||
"type": 1,
|
||||
"attr": 0,
|
||||
"meta": {
|
||||
"size": 1
|
||||
},
|
||||
"flags": {}
|
||||
},
|
||||
…………
|
||||
},
|
||||
{
|
||||
"id": 53,
|
||||
"text": "热词系列一",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/bacd6e17997348873ef89e5f1bcbbda877a1606a.png",
|
||||
"mtime": 1592205524,
|
||||
"type": 1,
|
||||
"attr": 2,
|
||||
"meta": {
|
||||
"size": 2,
|
||||
"item_id": 1039
|
||||
},
|
||||
"emote": [
|
||||
{
|
||||
"id": 1937,
|
||||
"package_id": 53,
|
||||
"text": "[热词系列_知识增加]",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/142409b595982b8210b2958f3d340f3b47942645.png",
|
||||
"mtime": 1585202919,
|
||||
"type": 1,
|
||||
"attr": 2,
|
||||
"meta": {
|
||||
"size": 2,
|
||||
"alias": "知识增加"
|
||||
},
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"id": 2147,
|
||||
"package_id": 53,
|
||||
"text": "[热词系列_希望没事]",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/6c0d2e6c486d1ba5afd6204a96e102652464a01d.png",
|
||||
"mtime": 1591689594,
|
||||
"type": 1,
|
||||
"attr": 2,
|
||||
"meta": {
|
||||
"size": 2,
|
||||
"alias": "希望没事"
|
||||
},
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"id": 2083,
|
||||
"package_id": 53,
|
||||
"text": "[热词系列_泪目]",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/bba3703ab90b7d16fe9dbcb85ed949db687f8331.png",
|
||||
"mtime": 1588910215,
|
||||
"type": 1,
|
||||
"attr": 2,
|
||||
"meta": {
|
||||
"size": 2,
|
||||
"alias": "泪目"
|
||||
},
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"id": 2082,
|
||||
"package_id": 53,
|
||||
"text": "[热词系列_保护]",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/55f8f6445ca7c3170cdfc5b16036abf639ce9b57.png",
|
||||
"mtime": 1588910215,
|
||||
"type": 1,
|
||||
"attr": 2,
|
||||
"meta": {
|
||||
"size": 2,
|
||||
"alias": "保护"
|
||||
},
|
||||
"flags": {}
|
||||
},
|
||||
…………
|
||||
},
|
||||
…………
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 获取指定的表情包明细
|
||||
|
||||
> http://api.bilibili.com/x/emote/package
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| -------- | ---- | -------- | ------ | -------------------------------- |
|
||||
| business | str | 使用场景 | 必要 | reply:评论区<br />dynamic:动态 |
|
||||
| ids | nums | 表情包ID | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ----------------------------- | -------- | --------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | 有效时:obj<br />无效时:null | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ----- | ------ | ---- |
|
||||
| packages | array | 表情包 | |
|
||||
|
||||
`data`中的`packages`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------- | -------------- |
|
||||
| 0 | obj | 表情包1 | **详情见附表** |
|
||||
| n | obj | 表情包(n+1) | **详情见附表** |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
**示例:**
|
||||
|
||||
获取表情包ID为`93`的表情包明细
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/emote/package' \
|
||||
--data-urlencode 'ids=93' \
|
||||
--data-urlencode 'business=reply'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"packages": [
|
||||
{
|
||||
"id": 93,
|
||||
"text": "泠鸢yousa",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/5fa6082e098402d16d58c68e441ae76e40befd2c.png",
|
||||
"mtime": 1592213522,
|
||||
"type": 3,
|
||||
"attr": 28,
|
||||
"meta": {
|
||||
"size": 2,
|
||||
"item_id": 1907,
|
||||
"item_url": "https://www.bilibili.com/h5/mall/suit/detail?navhide=1&stahide=0&id=1911"
|
||||
},
|
||||
"emote": [
|
||||
{
|
||||
"id": 2086,
|
||||
"package_id": 93,
|
||||
"text": "[泠鸢yousa_awsl]",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/7663b729161bd4556c2ec318c07791000743eb56.png",
|
||||
"mtime": 1589776042,
|
||||
"type": 3,
|
||||
"attr": 0,
|
||||
"meta": {
|
||||
"size": 2,
|
||||
"alias": "awsl"
|
||||
},
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"id": 2087,
|
||||
"package_id": 93,
|
||||
"text": "[泠鸢yousa_打call]",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/718e9495846db4172eb87d2f7f02015a34d35ea2.png",
|
||||
"mtime": 1589776042,
|
||||
"type": 3,
|
||||
"attr": 0,
|
||||
"meta": {
|
||||
"size": 2,
|
||||
"alias": "打call"
|
||||
},
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"id": 2088,
|
||||
"package_id": 93,
|
||||
"text": "[泠鸢yousa_沉默]",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/5e967cf1669743ed92e9a8ff3e5de6d90ca63d3d.png",
|
||||
"mtime": 1589776042,
|
||||
"type": 3,
|
||||
"attr": 0,
|
||||
"meta": {
|
||||
"size": 2,
|
||||
"alias": "沉默"
|
||||
},
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"id": 2089,
|
||||
"package_id": 93,
|
||||
"text": "[泠鸢yousa_大哭]",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/3f757b147b9b1e201470eae7dac9cc0360172569.png",
|
||||
"mtime": 1589776042,
|
||||
"type": 3,
|
||||
"attr": 0,
|
||||
"meta": {
|
||||
"size": 2,
|
||||
"alias": "大哭"
|
||||
},
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"id": 2090,
|
||||
"package_id": 93,
|
||||
"text": "[泠鸢yousa_干杯]",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/5cf5e14101be845233a222ab1bbdc21c63af04c3.png",
|
||||
"mtime": 1590401422,
|
||||
"type": 3,
|
||||
"attr": 0,
|
||||
"meta": {
|
||||
"size": 2,
|
||||
"alias": "干杯"
|
||||
},
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"id": 2091,
|
||||
"package_id": 93,
|
||||
"text": "[泠鸢yousa_好人卡]",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/e3907b3bb20b18e7ecb11cd86829c9a4ce5b1b2f.png",
|
||||
"mtime": 1589776042,
|
||||
"type": 3,
|
||||
"attr": 0,
|
||||
"meta": {
|
||||
"size": 2,
|
||||
"alias": "好人卡"
|
||||
},
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"id": 2092,
|
||||
"package_id": 93,
|
||||
"text": "[泠鸢yousa_加大力度]",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/a0393a2d4b522f07a319dfd2e91754a3cdff2c48.png",
|
||||
"mtime": 1589776042,
|
||||
"type": 3,
|
||||
"attr": 0,
|
||||
"meta": {
|
||||
"size": 2,
|
||||
"alias": "加大力度"
|
||||
},
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"id": 2093,
|
||||
"package_id": 93,
|
||||
"text": "[泠鸢yousa_滑稽]",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/a8057c0e0579b93c16010a270e261fd0a64034af.png",
|
||||
"mtime": 1589776042,
|
||||
"type": 3,
|
||||
"attr": 0,
|
||||
"meta": {
|
||||
"size": 2,
|
||||
"alias": "滑稽"
|
||||
},
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"id": 2094,
|
||||
"package_id": 93,
|
||||
"text": "[泠鸢yousa_请吃桃]",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/e92276d9d8c28f85f7dbcc0fbbb6ecb3345ce33e.png",
|
||||
"mtime": 1589776042,
|
||||
"type": 3,
|
||||
"attr": 0,
|
||||
"meta": {
|
||||
"size": 2,
|
||||
"alias": "请吃桃"
|
||||
},
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"id": 2095,
|
||||
"package_id": 93,
|
||||
"text": "[泠鸢yousa_惊讶]",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/9fdc2c5b4b970aded56fe2f326bd4d00e849339d.png",
|
||||
"mtime": 1589776042,
|
||||
"type": 3,
|
||||
"attr": 0,
|
||||
"meta": {
|
||||
"size": 2,
|
||||
"alias": "惊讶"
|
||||
},
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"id": 2096,
|
||||
"package_id": 93,
|
||||
"text": "[泠鸢yousa_生气]",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/9e6ba9ff34101e04d3e321cad486f845f892050e.png",
|
||||
"mtime": 1589776042,
|
||||
"type": 3,
|
||||
"attr": 0,
|
||||
"meta": {
|
||||
"size": 2,
|
||||
"alias": "生气"
|
||||
},
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"id": 2097,
|
||||
"package_id": 93,
|
||||
"text": "[泠鸢yousa_贴贴]",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/dbc177d314231add509501ffc6bc7655fca2c10f.png",
|
||||
"mtime": 1589776042,
|
||||
"type": 3,
|
||||
"attr": 0,
|
||||
"meta": {
|
||||
"size": 2,
|
||||
"alias": "贴贴"
|
||||
},
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"id": 2098,
|
||||
"package_id": 93,
|
||||
"text": "[泠鸢yousa_头晕]",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/49830c1c8a1652f7ee9cb854ac7dbf8e378cdcd6.png",
|
||||
"mtime": 1589776042,
|
||||
"type": 3,
|
||||
"attr": 0,
|
||||
"meta": {
|
||||
"size": 2,
|
||||
"alias": "头晕"
|
||||
},
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"id": 2099,
|
||||
"package_id": 93,
|
||||
"text": "[泠鸢yousa_问号]",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/ab7a543233eff83138c3221c86a762ab36bab7bc.png",
|
||||
"mtime": 1589776042,
|
||||
"type": 3,
|
||||
"attr": 0,
|
||||
"meta": {
|
||||
"size": 2,
|
||||
"alias": "问号"
|
||||
},
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"id": 2100,
|
||||
"package_id": 93,
|
||||
"text": "[泠鸢yousa_真棒]",
|
||||
"url": "http://i0.hdslb.com/bfs/emote/02ea49543a3ac52feee185c156ab08fb2bfdd89e.png",
|
||||
"mtime": 1589776042,
|
||||
"type": 3,
|
||||
"attr": 0,
|
||||
"meta": {
|
||||
"size": 2,
|
||||
"alias": "真棒"
|
||||
},
|
||||
"flags": {}
|
||||
}
|
||||
],
|
||||
"flags": {
|
||||
"added": true
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 获取所有表情包列表
|
||||
|
||||
> http://api.bilibili.com/x/emote/setting/panel
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| -------- | ---- | -------- | ------ | -------------------------------- |
|
||||
| business | str | 使用场景 | 必要 | reply:评论区<br />dynamic:动态 |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------------- | ----- | ---------------- | ---- |
|
||||
| user_panel_packages | array | 用户拥有的表情包 | |
|
||||
| all_packages | array | 所有表情包 | |
|
||||
| mall | obj | 商城页面 | |
|
||||
|
||||
`data`对象中的`user_panel_packages`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | --------------------- | -------------- |
|
||||
| 0 | obj | 用户拥有的表情包1 | **详情见附表** |
|
||||
| n | obj | 用户拥有的表情包(n+1) | **详情见附表** |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`data`对象中的`all_packages`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | --------------- | -------------- |
|
||||
| 0 | obj | 所有表情包1 | **详情见附表** |
|
||||
| n | obj | 所有表情包(n+1) | **详情见附表** |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`data`对象中的`mall`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ---- | ----------- | ---- |
|
||||
| title | str | 商城名称 | |
|
||||
| url | str | 商城页面url | |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/emote/setting/panel' \
|
||||
--data-urlencode 'business=reply' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
**限于篇幅,代码块示例略**
|
||||
|
||||
## 附表-表情包对象
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ----- | ----------------- | -------------------------------------------------------- |
|
||||
| id | num | 表情包ID | |
|
||||
| text | str | 表情包名称 | |
|
||||
| url | str | 表情包标志图片url | |
|
||||
| mtime | num | 创建时间 | 时间戳 |
|
||||
| type | num | 表情包类型 | 1:普通<br />2:会员专属<br />3:购买所得<br />4:颜文字 |
|
||||
| attr | num | ??? | **作用尚不明确** |
|
||||
| meta | obj | 属性信息 | |
|
||||
| emote | array | 表情列表 | |
|
||||
| flags | obj | 是否添加标志 | |
|
||||
|
||||
`表情包对象`中的`flags`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ---- | ---------- | ------------------------------------------------------------ |
|
||||
| added | bool | 是否已添加 | true:已添加<br />false:未添加<br />需要登录(SESSDATA)<br />否则恒为false |
|
||||
|
||||
`表情包对象`中的`meta`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | --------------- | ---------------- |
|
||||
| size | num | 表情尺寸信息 | 1:小<br />2:大 |
|
||||
| item_id | num | 购买物品ID | |
|
||||
| item_url | num | 购买物品页面url | 无则无此项 |
|
||||
|
||||
`表情包对象`中的`emote`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | --------- | ---- |
|
||||
| 0 | obj | 表情1 | |
|
||||
| n | obj | 表情(n+1) | |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`emote`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------- | ---- | ----------- | -------------------------------------------------------- |
|
||||
| id | num | 表情ID | |
|
||||
| package_id | num | 表情包ID | |
|
||||
| text | str | 表情转义符 | 颜文字时为该字串 |
|
||||
| url | str | 表情图片url | 颜文字时为该字串 |
|
||||
| mtime | num | 创建时间 | 时间戳 |
|
||||
| type | num | 表情类型 | 1:普通<br />2:会员专属<br />3:购买所得<br />4:颜文字 |
|
||||
| attr | num | ??? | **作用尚不明确** |
|
||||
| meta | obj | 属性信息 | |
|
||||
| flags | obj | 禁用标志 | 无则为空 |
|
||||
|
||||
`emote`数组中的对象中的`flags`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ---- | ---------- | ------------------------------------------------------ |
|
||||
| no_access | bool | 是否为禁用 | true:禁用<br />需要登录(SESSDATA)<br />否则恒为true |
|
||||
|
||||
`emote`数组中的对象中的`meta`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ---- | ------------ | ---------------- |
|
||||
| size | num | 表情尺寸信息 | 1:小<br />2:大 |
|
||||
| alias | str | 简写名 | 无则无此项 |
|
311
garb/color.md
Normal file
@ -0,0 +1,311 @@
|
||||
# 主题色
|
||||
|
||||
## 获取主题色基本信息1
|
||||
|
||||
> http://club.bilibili.com/api/query.skin.list.do
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
鉴权方式:appkey
|
||||
|
||||
认证方式:仅可APP
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------ | ----------- | ------------- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
| appkey | str | APP密钥 | APP方式必要 | |
|
||||
| build | num | 版本 | APP方式必要 | 可为`6082000` |
|
||||
| sign | str | APP签名 | APP方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ----- | ------------ | ---------------------------------------------------- |
|
||||
| ts | num | 当前时间戳 | |
|
||||
| code | num | 返回值 | 0:成功<br />-3:API校验密匙错误<br />-400:请求错误 |
|
||||
| data | array | 主题颜色列表 | |
|
||||
|
||||
`data`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------- | ---- |
|
||||
| 0 | obj | 主题颜色1 | |
|
||||
| n | obj | 主题颜色(n+1) | |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`data`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------- | ---- | ------------ | ------------------------------- |
|
||||
| id | num | 颜色ID | |
|
||||
| name | str | 颜色名称 | |
|
||||
| is_free | bool | 是否免费 | false:收费<br />true:免费 |
|
||||
| price | num | 价格 | 单位为硬币 |
|
||||
| is_bought | bool | 是否已购买 | false:未购买<br />true:已购买 |
|
||||
| status | num | 状态 | 1:自动续费<br />4:已退订 |
|
||||
| buy_time | num | 购买时间 | 毫秒时间戳 |
|
||||
| due_time | num | 到期时间 | 毫秒时间戳 |
|
||||
| color_name | str | 颜色类型名称 | |
|
||||
| is_overdue | bool | 是否已到期 | false:未到期<br />true:已到期 |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -G 'http://club.bilibili.com/api/query.skin.list.do' \
|
||||
--data-urlencode 'access_key=xxx' \
|
||||
--data-urlencode 'appkey=1d8b6e7d45233436' \
|
||||
--data-urlencode 'build=6082000' \
|
||||
--data-urlencode 'sign=2d37f2cd6f86337a6a07cb3cf311be86'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"ts": 1599225638239,
|
||||
"code": 0,
|
||||
"data": [
|
||||
{
|
||||
"id": 2,
|
||||
"name": "少女粉",
|
||||
"is_free": true,
|
||||
"price": 0,
|
||||
"is_bought": false,
|
||||
"color_name": "pink",
|
||||
"is_overdue": false
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"name": "夜间模式",
|
||||
"is_free": true,
|
||||
"price": 0,
|
||||
"is_bought": false,
|
||||
"color_name": "black",
|
||||
"is_overdue": false
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"name": "姨妈红",
|
||||
"is_free": false,
|
||||
"price": 5,
|
||||
"is_bought": false,
|
||||
"color_name": "red",
|
||||
"is_overdue": false
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "咸蛋黄",
|
||||
"is_free": false,
|
||||
"price": 5,
|
||||
"is_bought": false,
|
||||
"color_name": "yellow",
|
||||
"is_overdue": false
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"name": "早苗绿",
|
||||
"is_free": false,
|
||||
"price": 5,
|
||||
"is_bought": false,
|
||||
"status": 4,
|
||||
"buy_time": 1599219782000,
|
||||
"due_time": 1601811782000,
|
||||
"color_name": "green",
|
||||
"is_overdue": false
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"name": "胖次蓝",
|
||||
"is_free": false,
|
||||
"price": 5,
|
||||
"is_bought": false,
|
||||
"color_name": "blue",
|
||||
"is_overdue": false
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"name": "基佬紫",
|
||||
"is_free": false,
|
||||
"price": 5,
|
||||
"is_bought": false,
|
||||
"color_name": "purple",
|
||||
"is_overdue": false
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 获取主题色基本信息2
|
||||
|
||||
> http://api.bilibili.com/x/garb/skin/color/list
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:仅可Cookie
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| -------- | ---- | -------- | ------ | ------------- |
|
||||
| mobi_app | str | 平台标识 | 非必要 | 可为`android` |
|
||||
| build | num | 版本 | 非必要 | 可为`6082000` |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ----- | ------------ | ---------------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-3:API校验密匙错误<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| data | array | 主题颜色列表 | |
|
||||
|
||||
`data`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------- | ---- |
|
||||
| 0 | obj | 主题颜色1 | |
|
||||
| n | obj | 主题颜色(n+1) | |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`data`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------- | ---- | ------------ | ------------------------------- |
|
||||
| id | num | 颜色ID | |
|
||||
| name | str | 颜色名称 | |
|
||||
| is_free | bool | 是否免费 | false:收费<br />true:免费 |
|
||||
| price | num | 价格 | 单位为硬币 |
|
||||
| is_bought | bool | 是否已购买 | false:未购买<br />true:已购买 |
|
||||
| status | num | 状态 | 1:自动续费<br />4:已退订 |
|
||||
| buy_time | num | 购买时间 | 毫秒时间戳 |
|
||||
| due_time | num | 到期时间 | 毫秒时间戳 |
|
||||
| color_name | str | 颜色类型名称 | |
|
||||
| is_overdue | bool | 是否已到期 | false:未到期<br />true:已到期 |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/garb/skin/color/list' \
|
||||
--data-urlencode 'mobi_app=android' \
|
||||
--data-urlencode 'build=6082000' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": [
|
||||
{
|
||||
"id": 8,
|
||||
"name": "简洁白",
|
||||
"is_free": true,
|
||||
"price": 0,
|
||||
"is_bought": false,
|
||||
"status": 0,
|
||||
"buy_time": 0,
|
||||
"due_time": 0,
|
||||
"color_name": "white",
|
||||
"is_overdue": false
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": "少女粉",
|
||||
"is_free": true,
|
||||
"price": 0,
|
||||
"is_bought": false,
|
||||
"status": 0,
|
||||
"buy_time": 0,
|
||||
"due_time": 0,
|
||||
"color_name": "pink",
|
||||
"is_overdue": false
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"name": "夜间模式",
|
||||
"is_free": true,
|
||||
"price": 0,
|
||||
"is_bought": false,
|
||||
"status": 0,
|
||||
"buy_time": 0,
|
||||
"due_time": 0,
|
||||
"color_name": "black",
|
||||
"is_overdue": false
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"name": "姨妈红",
|
||||
"is_free": false,
|
||||
"price": 5,
|
||||
"is_bought": false,
|
||||
"status": 0,
|
||||
"buy_time": 0,
|
||||
"due_time": 0,
|
||||
"color_name": "red",
|
||||
"is_overdue": false
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "咸蛋黄",
|
||||
"is_free": false,
|
||||
"price": 5,
|
||||
"is_bought": false,
|
||||
"status": 0,
|
||||
"buy_time": 0,
|
||||
"due_time": 0,
|
||||
"color_name": "yellow",
|
||||
"is_overdue": false
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"name": "早苗绿",
|
||||
"is_free": false,
|
||||
"price": 5,
|
||||
"is_bought": false,
|
||||
"status": 4,
|
||||
"buy_time": 1599219782000,
|
||||
"due_time": 1601811782000,
|
||||
"color_name": "green",
|
||||
"is_overdue": false
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"name": "胖次蓝",
|
||||
"is_free": false,
|
||||
"price": 5,
|
||||
"is_bought": false,
|
||||
"status": 0,
|
||||
"buy_time": 0,
|
||||
"due_time": 0,
|
||||
"color_name": "blue",
|
||||
"is_overdue": false
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"name": "基佬紫",
|
||||
"is_free": false,
|
||||
"price": 5,
|
||||
"is_bought": false,
|
||||
"status": 0,
|
||||
"buy_time": 0,
|
||||
"due_time": 0,
|
||||
"color_name": "purple",
|
||||
"is_overdue": false
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
254
garb/skin.md
Normal file
@ -0,0 +1,254 @@
|
||||
# 主题及加载动画
|
||||
|
||||
## 获取主题及加载动画
|
||||
|
||||
> http://app.bilibili.com/x/resource/show/skin
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
鉴权方式:appkey
|
||||
|
||||
认证方式:仅可APP
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------ | ----------- | ------------- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
| appkey | str | APP密钥 | APP方式必要 | |
|
||||
| build | num | 版本 | APP方式必要 | 可为`6082000` |
|
||||
| ts | num | 当前时间戳 | APP方式必要 | 可为`0` |
|
||||
| sign | str | APP签名 | APP方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ---------------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-3:API校验密匙错误<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ----- | ------------ | ------------ |
|
||||
| user_equip | obj | 个性主题信息 | 有效时有此项 |
|
||||
| skin_colors | array | 主题颜色列表 | |
|
||||
| load_equip | obj | 加载动画信息 | 有效时有此项 |
|
||||
|
||||
`data`中的`user_equip`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | --------------- | ------ |
|
||||
| id | num | 装扮ID | |
|
||||
| name | str | 装扮名称 | |
|
||||
| preview | str | 装扮封面url | |
|
||||
| ver | num | 装扮版本 | 时间戳 |
|
||||
| package_url | str | 装扮包url | |
|
||||
| package_md5 | str | 装扮包md5校验值 | |
|
||||
| data | obj | 装扮配置 | |
|
||||
|
||||
`user_equip`中的`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------------- | ---- | -------------- | --------------------------- |
|
||||
| color_mode | str | 颜色模式 | light:亮色<br />dark:暗色 |
|
||||
| color | str | 前景色? | |
|
||||
| color_second_page | str | 背景色? | |
|
||||
| side_bg_color | str | ? | |
|
||||
| tail_color | str | 底边栏颜色? | |
|
||||
| tail_color_selected | str | ? | |
|
||||
| tail_icon_ani | bool | 有无底边栏动画 | false:无<br />true:有 |
|
||||
| tail_icon_ani_mode | str | once | 作用尚不明确 |
|
||||
|
||||
`skin_colors`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------- | ---- |
|
||||
| 0 | obj | 主题颜色1 | |
|
||||
| n | obj | 主题颜色(n+1) | |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`skin_colors`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------- | ---- | ------------ | ------------------------------- |
|
||||
| id | num | 颜色ID | |
|
||||
| name | str | 颜色名称 | |
|
||||
| is_free | bool | 是否免费 | false:收费<br />true:免费 |
|
||||
| price | num | 价格 | 单位为硬币 |
|
||||
| is_bought | bool | 是否已购买 | false:未购买<br />true:已购买 |
|
||||
| status | num | 状态 | 1:自动续费<br />4:已退订 |
|
||||
| buy_time | num | 购买时间 | 毫秒时间戳 |
|
||||
| due_time | num | 到期时间 | 毫秒时间戳 |
|
||||
| color_name | str | 颜色类型名称 | |
|
||||
| is_overdue | bool | 是否已到期 | false:未到期<br />true:已到期 |
|
||||
|
||||
`data`中的`load_equip`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | --------------- | ------ |
|
||||
| id | num | 装扮ID | |
|
||||
| name | str | 装扮名称 | |
|
||||
| ver | num | 装扮版本 | 时间戳 |
|
||||
| loading_url | str | 加载动画图标url | |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -G 'http://app.bilibili.com/x/resource/show/skin' \
|
||||
--data-urlencode 'access_key=xxx' \
|
||||
--data-urlencode 'appkey=1d8b6e7d45233436' \
|
||||
--data-urlencode 'build=6082000' \
|
||||
--data-urlencode 'ts=0' \
|
||||
--data-urlencode 'sign=ea212fea5b00a6278ea6d9938b4c500e'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"user_equip": {
|
||||
"id": 2529,
|
||||
"name": "初音未来-日版",
|
||||
"preview": "http://i0.hdslb.com/bfs/garb/item/2fa16380b31b3cee6c889d645f2699de8e9d9faf.jpg",
|
||||
"ver": 1598600025,
|
||||
"package_url": "http://i0.hdslb.com/bfs/garb/zip/9c393edea0c7b7b59685a20cd655363ef573a325.zip",
|
||||
"package_md5": "7b6d20d998ad543c6a275948a6a1a5fe",
|
||||
"data": {
|
||||
"color_mode": "light",
|
||||
"color": "#212121",
|
||||
"color_second_page": "#fff2d2",
|
||||
"side_bg_color": "#ffe7ae",
|
||||
"tail_color": "#996c00",
|
||||
"tail_color_selected": "#0d6872",
|
||||
"tail_icon_ani": true,
|
||||
"tail_icon_ani_mode": "once"
|
||||
}
|
||||
},
|
||||
"skin_colors": [
|
||||
{
|
||||
"id": 2,
|
||||
"name": "少女粉",
|
||||
"is_free": true,
|
||||
"color_name": "pink"
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"name": "夜间模式",
|
||||
"is_free": true,
|
||||
"color_name": "black"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"name": "姨妈红",
|
||||
"price": 5,
|
||||
"color_name": "red"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "咸蛋黄",
|
||||
"price": 5,
|
||||
"color_name": "yellow"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"name": "早苗绿",
|
||||
"price": 5,
|
||||
"status": 4,
|
||||
"buy_time": 1599219782000,
|
||||
"due_time": 1601811782000,
|
||||
"color_name": "green"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"name": "胖次蓝",
|
||||
"price": 5,
|
||||
"color_name": "blue"
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"name": "基佬紫",
|
||||
"price": 5,
|
||||
"color_name": "purple"
|
||||
}
|
||||
],
|
||||
"load_equip": {
|
||||
"id": 2531,
|
||||
"name": "初音未来13周年",
|
||||
"ver": 1598602035,
|
||||
"loading_url": "http://i0.hdslb.com/bfs/garb/item/9b12e8b5cc16a4c2e71e91c43796f09d5e132847.webp"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 主题包结构
|
||||
|
||||
主题包为app端付费主题(套装)的整合包,以zip格式通过url分发
|
||||
|
||||
包内的图片文件为app对应的资源替换
|
||||
|
||||
| 文件名 | 说明 |
|
||||
| ------------------------------ | -------------------------- |
|
||||
| tail_icon_selected_myself.png | 【我的】按钮(选中状态) |
|
||||
| head_bg.jpg | 首页顶部栏背景 |
|
||||
| head_tab_bg.jpg | 顶部栏背景 |
|
||||
| side_bg.jpg | 侧边栏背景 |
|
||||
| side_bg_bottom.jpg | 侧边栏底部背景 |
|
||||
| tail_bg.png | 底部栏背景 |
|
||||
| tail_icon_main.png | 【首页】按钮 |
|
||||
| tail_icon_selected_main.png | 【首页】按钮(选中状态) |
|
||||
| tail_icon_selected_channel.png | 【频道】按钮(选中状态) |
|
||||
| head_myself_squared_bg.jpg | 【我的】页面头图(大) |
|
||||
| tail_icon_channel.png | 【频道】按钮 |
|
||||
| tail_icon_selected_dynamic.png | 【动态】按钮(选中状态) |
|
||||
| head_myself_bg.jpg | 【我的】页面头图(小) |
|
||||
| tail_icon_dynamic.png | 【动态】按钮 |
|
||||
| tail_icon_shop.png | 【会员购】按钮 |
|
||||
| tail_icon_selected_shop.png | 【会员购】按钮(选中状态) |
|
||||
| tail_icon_myself.png | 【我的】按钮 |
|
||||
|
||||
以`id=2529(初音未来-日版)`的资源为例
|
||||
|
||||
```shell
|
||||
wget http://i0.hdslb.com/bfs/garb/zip/9c393edea0c7b7b59685a20cd655363ef573a325.zip
|
||||
unzip -l 9c393edea0c7b7b59685a20cd655363ef573a325.zip
|
||||
```
|
||||
|
||||
返回为
|
||||
|
||||
```
|
||||
Archive: 9c393edea0c7b7b59685a20cd655363ef573a325.zip
|
||||
Length Date Time Name
|
||||
--------- ---------- ----- ----
|
||||
22995 1980-00-00 00:00 tail_icon_selected_myself.png
|
||||
18444 1980-00-00 00:00 head_bg.jpg
|
||||
3061 1980-00-00 00:00 head_tab_bg.jpg
|
||||
188898 1980-00-00 00:00 side_bg.jpg
|
||||
2842 1980-00-00 00:00 side_bg_bottom.jpg
|
||||
203134 1980-00-00 00:00 tail_bg.png
|
||||
27539 1980-00-00 00:00 tail_icon_main.png
|
||||
25632 1980-00-00 00:00 tail_icon_selected_main.png
|
||||
27415 1980-00-00 00:00 tail_icon_selected_channel.png
|
||||
191706 1980-00-00 00:00 head_myself_squared_bg.jpg
|
||||
27919 1980-00-00 00:00 tail_icon_channel.png
|
||||
27262 1980-00-00 00:00 tail_icon_selected_dynamic.png
|
||||
147738 1980-00-00 00:00 head_myself_bg.jpg
|
||||
28182 1980-00-00 00:00 tail_icon_dynamic.png
|
||||
25878 1980-00-00 00:00 tail_icon_shop.png
|
||||
26487 1980-00-00 00:00 tail_icon_selected_shop.png
|
||||
21831 1980-00-00 00:00 tail_icon_myself.png
|
||||
--------- -------
|
||||
1016963 17 files
|
||||
```
|
||||
|
842
history&toview/history.md
Normal file
@ -0,0 +1,842 @@
|
||||
# 历史记录
|
||||
|
||||
<img src="/imgs/history.png" width="25" height="25"/>
|
||||
|
||||
**本页所有操作均需登录(Cookie)**
|
||||
|
||||
## 获取历史记录列表(视频、直播、专栏)
|
||||
|
||||
>http://api.bilibili.com/x/web-interface/history/cursor
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| -------- | ---- | ---------------------- | ------ | ------------------------------------------------------------ |
|
||||
| max | num | 历史记录截止目标ID | 非必要 | 默认为0<br />稿件:稿件avID<br />番剧(影视):剧集ssID<br />直播:直播间ID<br />文集:文集rlID<br />文章:文章cvID |
|
||||
| business | num | 历史记录截止目标ID类型 | 非必要 | 默认为空<br />archive:稿件<br />pgc:番剧(影视)<br />live:直播<br />article-list:文集<br />article:文章 |
|
||||
| view_at | num | 历史记录截止时间 | 非必要 | 时间戳<br />默认为0<br />0为当前时间 |
|
||||
| ps | num | 每页项数 | 非必要 | 默认为20 |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ----- | ------------ | ------------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | array | 历史记录列表 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------ | ----- | ---------------- | ---- |
|
||||
| cursor | obj | 历史记录页面信息 | |
|
||||
| tab | array | 历史记录筛选类型 | |
|
||||
| list | array | 分段历史记录列表 | |
|
||||
|
||||
`data`中的`cursor`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | ------------------ | ------------------ |
|
||||
| max | num | 最后一项目标ID | **详细内容见参数** |
|
||||
| view_at | num | 最后一项时间节点 | 时间戳 |
|
||||
| business | str | 最后一项目标ID类型 | **详细内容见参数** |
|
||||
| ps | num | 每页项数 | |
|
||||
|
||||
`data`中的`tab`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------------- | ---- |
|
||||
| 0 | obj | 历史记录筛选类型1 | |
|
||||
| 1 | obj | 历史记录筛选类型2 | |
|
||||
| 2 | obj | 历史记录筛选类型3 | |
|
||||
|
||||
`tab`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------ | ---- |
|
||||
| type | str | 类型 | |
|
||||
| name | str | 类型名 | |
|
||||
|
||||
`data`中的`tab`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | --------------- | ---------------- |
|
||||
| 0 | obj | 历史记录1 | |
|
||||
| n | obj | 历史记录(n+1) | 按照查看顺序排列 |
|
||||
| …… | obj | | |
|
||||
|
||||
`tab`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ------------------------------- | -------------------- | ---------------------------------------- |
|
||||
| title | str | 条目标题 | |
|
||||
| long_title | str | 条目副标题 | |
|
||||
| cover | str | 条目封面图url | 用于专栏以外的条目 |
|
||||
| covers | 有效时:array<br />无效时:null | 条目封面图组 | 仅用于专栏 |
|
||||
| uri | str | 重定向url | 仅用于剧集和直播 |
|
||||
| history | obj | 条目详细信息 | |
|
||||
| videos | num | 视频分P数目 | 仅用于稿件视频 |
|
||||
| author_name | str | UP主昵称 | |
|
||||
| author_face | str | UP主头像url | |
|
||||
| author_mid | num | UP主UID | |
|
||||
| view_at | num | 查看时间 | 时间戳 |
|
||||
| progress | num | 视频观看进度 | 单位为秒<br />用于稿件视频或剧集 |
|
||||
| badge | str | 条目备注标识 | 用于稿件视频或剧集 |
|
||||
| show_title | str | 分P标题 | 用于稿件视频或剧集 |
|
||||
| duration | num | 视频总时长 | 用于稿件视频或剧集 |
|
||||
| current | str | 空 | **作用尚不明确** |
|
||||
| total | num | 总计分集数 | 仅用于剧集 |
|
||||
| new_desc | str | 最新一话/最新一P标识 | 用于稿件视频或剧集 |
|
||||
| is_finish | num | 是否已完结 | 仅用于剧集<br />0:未完结<br />1:已完结 |
|
||||
| is_fav | num | 是否收藏 | 0:未收藏<br />1:已收藏 |
|
||||
| kid | num | 条目目标ID | **详细内容见参数** |
|
||||
| tag_name | str | 子分区名 | 用于稿件视频和直播 |
|
||||
| live_status | num | 直播状态 | 仅用于直播<br />0:未开播<br />1:已开播 |
|
||||
|
||||
`tab`数组中的对象中的`covers`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | --------------- | ---- |
|
||||
| 0 | str | 封面图片1 | |
|
||||
| n | str | 封面图片(n+1) | |
|
||||
| …… | str | …… | |
|
||||
|
||||
`tab`数组中的对象中的`history`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | ------------------- | ------------------------------------------------------------ |
|
||||
| oid | num | 目标ID | 稿件视频&剧集(当`business=archive`或`business=pgc`时):稿件avID<br />直播(当`business=live`时):直播间ID<br />文章(当`business=article`时):文章cvID<br />文集(当`business=article-list`时):文集rlID |
|
||||
| epid | num | 剧集epID | 仅用于剧集 |
|
||||
| bvid | str | 稿件bvID | 仅用于稿件视频 |
|
||||
| page | num | 观看到的视频分P数 | 仅用于稿件视频 |
|
||||
| cid | num | 观看到的对象ID | 稿件视频&剧集(当`business=archive`或`business=pgc`时):视频CID<br />文集(当`business=article-list`时):文章cvID |
|
||||
| part | str | 观看到的视频分P标题 | 仅用于稿件视频 |
|
||||
| business | str | 条目类型 | **详细内容见参数** |
|
||||
| dt | num | 查看平台代码 | 1 3 5 7:手机端<br />2:web端<br />4 6:pad端<br />33:TV端<br />0:其他 |
|
||||
|
||||
**示例:**
|
||||
|
||||
获取当前时间截止的5条历史记录
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/web-interface/history/cursor' \
|
||||
--data-urlencode 'ps=5' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"cursor": {
|
||||
"max": 26193,
|
||||
"view_at": 1592985807,
|
||||
"business": "pgc",
|
||||
"ps": 5
|
||||
},
|
||||
"tab": [
|
||||
{
|
||||
"type": "archive",
|
||||
"name": "视频"
|
||||
},
|
||||
{
|
||||
"type": "live",
|
||||
"name": "直播"
|
||||
},
|
||||
{
|
||||
"type": "article",
|
||||
"name": "专栏"
|
||||
}
|
||||
],
|
||||
"list": [
|
||||
{
|
||||
"title": "韩国漫画如何出海掘金?一年出口额2.8亿元",
|
||||
"long_title": "",
|
||||
"cover": "",
|
||||
"covers": [
|
||||
"https://i0.hdslb.com/bfs/article/b170c6fd7429ae205d6cb935e1d431710d82609d.jpg"
|
||||
],
|
||||
"uri": "",
|
||||
"history": {
|
||||
"oid": 6470274,
|
||||
"epid": 0,
|
||||
"bvid": "",
|
||||
"page": 0,
|
||||
"cid": 0,
|
||||
"part": "",
|
||||
"business": "article",
|
||||
"dt": 2
|
||||
},
|
||||
"videos": 0,
|
||||
"author_name": "三文娱",
|
||||
"author_face": "http://i1.hdslb.com/bfs/face/98566839756a8e3de6e183109984b032de6ff2d9.jpg",
|
||||
"author_mid": 34772409,
|
||||
"view_at": 1593000539,
|
||||
"progress": 0,
|
||||
"badge": "专栏",
|
||||
"show_title": "",
|
||||
"duration": 0,
|
||||
"current": "",
|
||||
"total": 0,
|
||||
"new_desc": "",
|
||||
"is_finish": 0,
|
||||
"is_fav": 0,
|
||||
"kid": 6470274,
|
||||
"tag_name": "",
|
||||
"live_status": 0
|
||||
},
|
||||
{
|
||||
"title": "从国际空间站俯瞰地球,静谧蓝星守护者",
|
||||
"long_title": "",
|
||||
"cover": "http://i0.hdslb.com/bfs/live/new_room_cover/f07d8a0c7c5655f81cf1586903a121f2680cf3bc.jpg",
|
||||
"covers": null,
|
||||
"uri": "https://live.bilibili.com/14047",
|
||||
"history": {
|
||||
"oid": 14047,
|
||||
"epid": 0,
|
||||
"bvid": "",
|
||||
"page": 0,
|
||||
"cid": 0,
|
||||
"part": "",
|
||||
"business": "live",
|
||||
"dt": 2
|
||||
},
|
||||
"videos": 0,
|
||||
"author_name": "Zelo-Balance",
|
||||
"author_face": "http://i1.hdslb.com/bfs/face/7303b3032d1e13ca7c788cd9c30d4430f8ffd1ea.jpg",
|
||||
"author_mid": 19193,
|
||||
"view_at": 1592999822,
|
||||
"progress": 0,
|
||||
"badge": "直播中",
|
||||
"show_title": "",
|
||||
"duration": 0,
|
||||
"current": "",
|
||||
"total": 0,
|
||||
"new_desc": "",
|
||||
"is_finish": 0,
|
||||
"is_fav": 0,
|
||||
"kid": 14047,
|
||||
"tag_name": "户外",
|
||||
"live_status": 1
|
||||
},
|
||||
{
|
||||
"title": "许巍 《蓝莲花》吉他Cover,这回你们不用截图抓我了吧",
|
||||
"long_title": "",
|
||||
"cover": "http://i2.hdslb.com/bfs/archive/0225b1f1a790393097ceebb51e89796be806d6bc.jpg",
|
||||
"covers": null,
|
||||
"uri": "",
|
||||
"history": {
|
||||
"oid": 883617049,
|
||||
"epid": 0,
|
||||
"bvid": "BV1sK4y147ob",
|
||||
"page": 1,
|
||||
"cid": 205017957,
|
||||
"part": "许巍 《蓝莲花》 Cover_1",
|
||||
"business": "archive",
|
||||
"dt": 2
|
||||
},
|
||||
"videos": 1,
|
||||
"author_name": "硬核拆解",
|
||||
"author_face": "http://i1.hdslb.com/bfs/face/4e131c9609299303cdde882792fc62b9f99cdcde.jpg",
|
||||
"author_mid": 427494870,
|
||||
"view_at": 1592999572,
|
||||
"progress": 13,
|
||||
"badge": "",
|
||||
"show_title": "",
|
||||
"duration": 91,
|
||||
"current": "",
|
||||
"total": 0,
|
||||
"new_desc": "",
|
||||
"is_finish": 0,
|
||||
"is_fav": 0,
|
||||
"kid": 883617049,
|
||||
"tag_name": "演奏",
|
||||
"live_status": 0
|
||||
},
|
||||
{
|
||||
"title": "从清楚与混沌之分看Vtuber形象塑造",
|
||||
"long_title": "",
|
||||
"cover": "",
|
||||
"covers": [
|
||||
"https://i0.hdslb.com/bfs/article/5ddb94dd1890c639622717c7083fb2917b4aa475.jpg"
|
||||
],
|
||||
"uri": "",
|
||||
"history": {
|
||||
"oid": 268656,
|
||||
"epid": 0,
|
||||
"bvid": "",
|
||||
"page": 0,
|
||||
"cid": 6233590,
|
||||
"part": "",
|
||||
"business": "article-list",
|
||||
"dt": 2
|
||||
},
|
||||
"videos": 0,
|
||||
"author_name": "普天一光",
|
||||
"author_face": "http://i2.hdslb.com/bfs/face/3702810bdac3d5103d684e61dc5bc8492a74f904.jpg",
|
||||
"author_mid": 6614889,
|
||||
"view_at": 1592998686,
|
||||
"progress": 0,
|
||||
"badge": "专栏",
|
||||
"show_title": "",
|
||||
"duration": 0,
|
||||
"current": "",
|
||||
"total": 0,
|
||||
"new_desc": "",
|
||||
"is_finish": 0,
|
||||
"is_fav": 0,
|
||||
"kid": 268656,
|
||||
"tag_name": "",
|
||||
"live_status": 0
|
||||
},
|
||||
{
|
||||
"title": "百妖谱",
|
||||
"long_title": "庆忌(下)",
|
||||
"cover": "http://i0.hdslb.com/bfs/archive/695a4566d05620a24c51d6eb935fa4767d673b45.jpg",
|
||||
"covers": null,
|
||||
"uri": "https://www.bilibili.com/bangumi/play/ss26193",
|
||||
"history": {
|
||||
"oid": 370908663,
|
||||
"epid": 326789,
|
||||
"bvid": "",
|
||||
"page": 0,
|
||||
"cid": 199204975,
|
||||
"part": "",
|
||||
"business": "pgc",
|
||||
"dt": 3
|
||||
},
|
||||
"videos": 0,
|
||||
"author_name": "",
|
||||
"author_face": "",
|
||||
"author_mid": 0,
|
||||
"view_at": 1592985807,
|
||||
"progress": 533,
|
||||
"badge": "国创",
|
||||
"show_title": "第8话 庆忌(下)",
|
||||
"duration": 1402,
|
||||
"current": "",
|
||||
"total": 12,
|
||||
"new_desc": "更新至第10话",
|
||||
"is_finish": 0,
|
||||
"is_fav": 0,
|
||||
"kid": 26193,
|
||||
"tag_name": "",
|
||||
"live_status": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 获取全部视频历史记录(旧)
|
||||
|
||||
> http://api.bilibili.com/x/v2/history
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | -------- | ------ | ------- |
|
||||
| pn | num | 页码 | 非必要 | 默认为1 |
|
||||
| ps | num | 每页项数 | 非必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ------ | ------------ | ------------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | array | 历史记录列表 | |
|
||||
|
||||
`data`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------- | ------------------------------------------ |
|
||||
| 0 | obj | 历史观看1 | |
|
||||
| n | obj | 历史观看(n+1) | 按照观看顺序排列<br />项数为总计观看视频数 |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`data`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------- | ---- | ------------------------------ | ------------------------------------------------------------ |
|
||||
| aid | num | 稿件avID | |
|
||||
| videos | num | 视频分P总数 | 默认为1 |
|
||||
| tid | num | 分区tID | |
|
||||
| tname | str | 子分区名称 | |
|
||||
| copyright | num | 是否转载 | 1:原创<br />2:转载 |
|
||||
| pic | str | 视频封面图片url | |
|
||||
| title | str | 稿件标题 | |
|
||||
| pubdate | num | 稿件发布时间 | 时间戳 |
|
||||
| ctime | num | 用户提交稿件的时间 | 时间戳 |
|
||||
| desc | str | 视频简介 | |
|
||||
| state | num | 视频状态 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`state`备注 |
|
||||
| attribute | num | 稿件属性位配置 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`attribute`备注 |
|
||||
| duration | num | 视频总计持续时长(所有分P) | 单位为秒 |
|
||||
| rights | obj | 视频属性标志 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`rights`对象 |
|
||||
| owner | obj | 视频UP主信息 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`owner`对象 |
|
||||
| stat | obj | 视频状态数 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`stat`对象 |
|
||||
| dynamic | str | 视频同步发布的的动态的文字内容 | 无为空 |
|
||||
| cid | num | 视频1P CID | |
|
||||
| dimension | obj | 视频1P分辨率 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`dimension`对象 |
|
||||
| bangumi | obj | 番剧/影视信息 | 非番剧/影视无此项 |
|
||||
| cheese | obj | 课程信息 | 非课程无此项 |
|
||||
| favorite | bool | 是否已收藏 | true:已收藏<br />false:未收藏 |
|
||||
| type | num | 视频属性 | 3:普通视频<br />4:剧集<br />10:课程 |
|
||||
| sub_type | num | 附视频属性 | 0:普通视频<br />1:番剧<br />2:电影<br />3:纪录片<br />4:国创<br />5:电视剧<br />7:综艺 |
|
||||
| device | num | 观看平台代码 | 1 3 5 7:手机端<br />2:web端<br />4 6:pad端<br />33:TV端<br />0:其他 |
|
||||
| page | obj | 最后观看的分P信息 | |
|
||||
| count | num | 分P数 | 非投稿视频无此项 |
|
||||
| progress | num | 观看进度 | 单位为秒 |
|
||||
| view_at | num | 观看时间 | 时间戳 |
|
||||
| kid | num | 稿件avID | |
|
||||
| business | str | 视频类型标识 | archive:用户投稿视频<br />pgc:番剧/影视<br />cheese:课程 |
|
||||
| redirect_link | str | 重定向url | |
|
||||
| bvid | str | 稿件bvID | |
|
||||
|
||||
`data`数组中的对象`bangumi`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------------- | ---- | --------------- | ------------ |
|
||||
| cover | str | 番剧封面图片url | |
|
||||
| ep_id | num | 番剧epID | |
|
||||
| episode_status | num | ??? | |
|
||||
| follow | num | 0 | 作用尚不明确 |
|
||||
| long_title | str | 单集标题 | |
|
||||
| season | obj | 剧集信息 | |
|
||||
| title | str | 集数 | |
|
||||
|
||||
`bangumi`中的`season`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------------- | ---- | ------------ | ---------------------- |
|
||||
| is_finish | num | 是否完结 | 0:连载中<br />1:完结 |
|
||||
| newest_ep_id | num | 最细一话epID | |
|
||||
| newest_ep_index | str | 最细一话集数 | |
|
||||
| season_id | num | 番剧ssID | |
|
||||
| season_status | num | ??? | |
|
||||
| season_type | num | ??? | |
|
||||
| title | str | 番剧标题 | |
|
||||
| total_count | num | 总集数 | |
|
||||
|
||||
`data`数组中的对象`cheese`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | --------------- | ---- |
|
||||
| cover | str | 课程封面图片url | |
|
||||
| long_title | str | 完整标题 | |
|
||||
| number | str | 本集数 | |
|
||||
| season_id | num | 课程ssID | |
|
||||
| update_info | str | 总集数 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询当前视频历史记录列表
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/v2/history' \
|
||||
--data-urlencode 'ps=5' \
|
||||
--data-urlencode 'pn=1' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": [
|
||||
{
|
||||
"aid": 96523832,
|
||||
"videos": 1,
|
||||
"tid": 33,
|
||||
"tname": "连载动画",
|
||||
"copyright": 2,
|
||||
"pic": "http://i0.hdslb.com/bfs/archive/dfc29be381565ee041a0ec9cfc7a32f8a63f76cd.jpg",
|
||||
"title": "【1月】异度侵入 ID:INVADED 12【独家正版】",
|
||||
"pubdate": 1584289800,
|
||||
"ctime": 1584289800,
|
||||
"desc": "#12",
|
||||
"state": 0,
|
||||
"attribute": 338688,
|
||||
"duration": 1481,
|
||||
"redirect_url": "https://www.bilibili.com/bangumi/play/ep307457",
|
||||
"rights": {
|
||||
"bp": 0,
|
||||
"elec": 0,
|
||||
"download": 0,
|
||||
"movie": 0,
|
||||
"pay": 1,
|
||||
"hd5": 1,
|
||||
"no_reprint": 0,
|
||||
"autoplay": 0,
|
||||
"ugc_pay": 0,
|
||||
"is_cooperation": 0,
|
||||
"ugc_pay_preview": 0,
|
||||
"no_background": 0
|
||||
},
|
||||
"owner": {
|
||||
"mid": 928123,
|
||||
"name": "哔哩哔哩番剧",
|
||||
"face": "http://i1.hdslb.com/bfs/face/7a8412cbacb9fd18f40ddbbf0ad183e45afc1365.jpg"
|
||||
},
|
||||
"stat": {
|
||||
"aid": 96523832,
|
||||
"view": 4772927,
|
||||
"danmaku": 108890,
|
||||
"reply": 48584,
|
||||
"favorite": 46,
|
||||
"coin": 61768,
|
||||
"share": 290,
|
||||
"now_rank": 0,
|
||||
"his_rank": 0,
|
||||
"like": 1241,
|
||||
"dislike": 0
|
||||
},
|
||||
"dynamic": "",
|
||||
"cid": 164789275,
|
||||
"dimension": {
|
||||
"width": 1920,
|
||||
"height": 1080,
|
||||
"rotate": 0
|
||||
},
|
||||
"favorite": false,
|
||||
"type": 4,
|
||||
"sub_type": 1,
|
||||
"device": 3,
|
||||
"page": {
|
||||
"cid": 164789275,
|
||||
"page": 1,
|
||||
"from": "vupload",
|
||||
"part": "ID_INVADED_112.encoded",
|
||||
"duration": 1481,
|
||||
"vid": "",
|
||||
"weblink": "",
|
||||
"dimension": {
|
||||
"width": 1920,
|
||||
"height": 1080,
|
||||
"rotate": 0
|
||||
}
|
||||
},
|
||||
"bangumi": {
|
||||
"ep_id": 307457,
|
||||
"title": "12",
|
||||
"long_title": "CHANNELED",
|
||||
"episode_status": 13,
|
||||
"follow": 0,
|
||||
"cover": "http://i0.hdslb.com/bfs/archive/dfc29be381565ee041a0ec9cfc7a32f8a63f76cd.jpg",
|
||||
"season": {
|
||||
"season_id": 29310,
|
||||
"title": "异度侵入 ID:INVADED",
|
||||
"season_status": 13,
|
||||
"is_finish": 1,
|
||||
"total_count": 13,
|
||||
"newest_ep_id": 307774,
|
||||
"newest_ep_index": "13",
|
||||
"season_type": 1
|
||||
}
|
||||
},
|
||||
"progress": 277,
|
||||
"view_at": 1588831600,
|
||||
"kid": 29310,
|
||||
"business": "pgc",
|
||||
"redirect_link": "https://www.bilibili.com/bangumi/play/ep307457",
|
||||
"bvid": "BV1K7411f7uu"
|
||||
},
|
||||
{
|
||||
"aid": 497899395,
|
||||
"videos": 1,
|
||||
"tid": 189,
|
||||
"tname": "电脑装机",
|
||||
"copyright": 1,
|
||||
"pic": "http://i0.hdslb.com/bfs/archive/fd4e0893b234ee729cf15198065eced98367ebfe.jpg",
|
||||
"title": "600元的2007款iMac,如今过时了吗?",
|
||||
"pubdate": 1587727345,
|
||||
"ctime": 1587708111,
|
||||
"desc": "苹果东西是真的保值,酷睿2现在都还能卖的这么贵。第一次使用4K画质进行拍摄,应该比以前清楚一些。如有问题请在评论区指出,谢谢!",
|
||||
"state": 0,
|
||||
"attribute": 16768,
|
||||
"duration": 389,
|
||||
"mission_id": 13106,
|
||||
"rights": {
|
||||
"bp": 0,
|
||||
"elec": 0,
|
||||
"download": 0,
|
||||
"movie": 0,
|
||||
"pay": 0,
|
||||
"hd5": 1,
|
||||
"no_reprint": 1,
|
||||
"autoplay": 1,
|
||||
"ugc_pay": 0,
|
||||
"is_cooperation": 0,
|
||||
"ugc_pay_preview": 0,
|
||||
"no_background": 0
|
||||
},
|
||||
"owner": {
|
||||
"mid": 3391089,
|
||||
"name": "数字云糕Official",
|
||||
"face": "http://i2.hdslb.com/bfs/face/238dfbca5dda5de2d5ba95ee4e99804714e2b5e2.jpg"
|
||||
},
|
||||
"stat": {
|
||||
"aid": 497899395,
|
||||
"view": 23325,
|
||||
"danmaku": 92,
|
||||
"reply": 115,
|
||||
"favorite": 195,
|
||||
"coin": 132,
|
||||
"share": 23,
|
||||
"now_rank": 0,
|
||||
"his_rank": 0,
|
||||
"like": 555,
|
||||
"dislike": 0
|
||||
},
|
||||
"dynamic": "#IMAC##APPLE##MAC# 苹果东西是真的保值,酷睿2现在都还能卖的这么贵。第一次使用4K画质进行拍摄,应该比以前清楚一些。",
|
||||
"cid": 182570131,
|
||||
"dimension": {
|
||||
"width": 1920,
|
||||
"height": 1080,
|
||||
"rotate": 0
|
||||
},
|
||||
"favorite": false,
|
||||
"type": 3,
|
||||
"sub_type": 0,
|
||||
"device": 3,
|
||||
"page": {
|
||||
"cid": 182570131,
|
||||
"page": 1,
|
||||
"from": "vupload",
|
||||
"part": "iMac",
|
||||
"duration": 389,
|
||||
"vid": "",
|
||||
"weblink": "",
|
||||
"dimension": {
|
||||
"width": 1920,
|
||||
"height": 1080,
|
||||
"rotate": 0
|
||||
}
|
||||
},
|
||||
"count": 1,
|
||||
"progress": -1,
|
||||
"view_at": 1588828357,
|
||||
"kid": 497899395,
|
||||
"business": "archive",
|
||||
"redirect_link": "https://www.bilibili.com/video/av497899395",
|
||||
"bvid": "BV1NK41157EF"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 删除历史记录
|
||||
|
||||
> http://api.bilibili.com/x/v2/history/delete
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------------------------ | ------ | ------------------------------------------------------------ |
|
||||
| kid | str | 删除的目标记录 | 必要 | 视频:archive\_{稿件avID}<br />直播:live_{直播间ID}<br />专栏:article\_{专栏cvID}<br />剧集:pgc\_{剧集ssID}<br />文集:article-list\_{文集rlID} |
|
||||
| csrf | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111:csrf校验失败<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
删除视频`av540580868`的观看历史记录
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/v2/history/delete' \
|
||||
--data-urlencode 'kid=archive_540580868' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 清空历史记录
|
||||
|
||||
> http://api.bilibili.com/x/v2/history/clear
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------------------------ | ------ | ---- |
|
||||
| csrf | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ----------------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111:csrf校验失败 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
清空历史记录
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/v2/history/clear' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 停用历史记录
|
||||
|
||||
> http://api.bilibili.com/x/v2/history/shadow/set
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
该操作不会影响原有历史记录
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------------------------ | ------ | -------------------------------------------- |
|
||||
| switch | bool | 停用开关 | 非必要 | true:停用<br />false:正常<br />默认为false |
|
||||
| csrf | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ----------------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111:csrf校验失败 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
停用历史记录功能
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/v2/history/shadow/set' \
|
||||
--data-urlencode 'switch=true' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 查询历史记录停用状态
|
||||
|
||||
> http://api.bilibili.com/x/v2/history/shadow
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ----------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | bool | 停用状态 | true:停用<br />false:正常 |
|
||||
|
||||
**示例:**
|
||||
|
||||
当前状态为未停用视频历史记录
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/v2/history/shadow' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": false
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
554
history&toview/toview.md
Normal file
@ -0,0 +1,554 @@
|
||||
# 稍后再看
|
||||
|
||||
<img src="/imgs/toview.png" width="25" height="25"/>
|
||||
|
||||
## 视频添加稍后再看
|
||||
|
||||
>http://api.bilibili.com/x/v2/history/toview/add
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
最多添加100个视频
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------------------------ | ------------ | ------------------ |
|
||||
| aid | num | 稿件avID | 必要(可选) | avID与bvID任选一个 |
|
||||
| bvid | str | 稿件bvID | 必要(可选) | avID与bvID任选一个 |
|
||||
| csrf | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111:csrf校验失败<br />-400:请求错误<br />90001:列表已满<br />90003:稿件已经被删除 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
添加视频`av41687433`/`BV1ht41147kj`到稍后再看列表
|
||||
|
||||
avID方式:
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/v2/history/toview/add' \
|
||||
--data-urlencode 'aid=41687433' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
bvID方式:
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/v2/history/toview/add' \
|
||||
--data-urlencode 'bvid=BV1ht41147kj' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 添加频道中所有视频到稍后再看
|
||||
|
||||
> http://space.bilibili.com/ajax/channel/addAllToView
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
鉴权方式:Cookie中`DedeUserID`及`DedeUserID__ckMd5`存在且不为0,referer为 `.bilibili.com`域名下
|
||||
|
||||
带有转义
|
||||
|
||||
超过容量后会截取容量之内的添加
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------------------------ | ------ | ---- |
|
||||
| cid | num | 目标频道ID | 必要 | |
|
||||
| mid | num | 目标频道所属的用户UID | 必要 | |
|
||||
| csrf | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------ | ---- | -------- | --------------------------- |
|
||||
| status | bool | 是否成功 | false:失败<br />true:成功 |
|
||||
| data | str | 错误信息 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
添加用户`UID=282994`下的频道`4693`中所有视频到稍后再看
|
||||
|
||||
```shell
|
||||
curl 'http://space.bilibili.com/ajax/channel/addAllToView' \
|
||||
--data-urlencode 'cid=4693' \
|
||||
--data-urlencode 'mid=282994' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx;DedeUserID=1;DedeUserID__ckMd5=1;'
|
||||
-e 'https://www.bilibili.com'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"status": true,
|
||||
"data": "操作成功"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 获取稍后再看视频列表
|
||||
|
||||
> http://api.bilibili.com/x/v2/history/toview
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | data | 数据本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ------ | ---------------- | ---- |
|
||||
| count | num | 稍后再看视频数 | |
|
||||
| list | array | 稍后再看视频列表 | |
|
||||
|
||||
`data`中的`list`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------- | ---------------------------------------------- |
|
||||
| 0 | obj | 稍后再看1 | |
|
||||
| n | obj | 稍后再看(n+1) | 按照添加顺序排列<br />项数为总计稍后再看视频数 |
|
||||
| …… | obj | …… | …… |
|
||||
| 99 | obj | 最后一项 | |
|
||||
|
||||
`data`中的`list`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ---- | ------------------------------ | ------------------------------------------------------------ |
|
||||
| aid | num | 稿件avID | |
|
||||
| videos | num | 稿件分P总数 | 默认为1 |
|
||||
| tid | num | 分区tID | |
|
||||
| tname | str | 子分区名称 | |
|
||||
| copyright | num | 是否转载 | 1:原创<br />2:转载 |
|
||||
| pic | str | 稿件封面图片url | |
|
||||
| title | str | 稿件标题 | |
|
||||
| pubdate | num | 稿件发布时间 | 时间戳 |
|
||||
| ctime | num | 用户提交稿件的时间 | 时间戳 |
|
||||
| desc | str | 视频简介 | |
|
||||
| state | num | 视频状态 | 0:开放浏览<br />1:橙色通过<br />-1:待审<br />-2:被打回<br />-3:网警锁定<br />-4:被锁定<br />-5:管理员锁定(可浏览)<br />-6:修复待审<br />-7:暂缓审核<br />-8:补档待审<br />-9:等待转码<br />-10:延迟审核<br />-11:视频源待修<br />-12:转储失败<br />-13:允许评论待审<br />-14:临时回收站<br />-15:分发中<br />-16:转码失败<br />-20:创建未提交<br />-30:创建已提交<br />-40:定时发布<br />-100:用户删除 |
|
||||
| attribute | num | 稿件属性位配置 | |
|
||||
| duration | num | 稿件总时长(所有分P) | 单位为秒 |
|
||||
| rights | obj | 稿件属性标志 | |
|
||||
| owner | obj | 稿件UP主信息 | |
|
||||
| stat | obj | 稿件状态数 | |
|
||||
| dynamic | str | 视频同步发布的的动态的文字内容 | 无为空 |
|
||||
| dimension | obj | 稿件1P分辨率 | |
|
||||
| count | num | 稿件分P数 | 非投稿视频无此项 |
|
||||
| cid | num | 视频CID | |
|
||||
| progress | num | 观看进度时间 | 单位为秒 |
|
||||
| add_at | num | 添加时间 | 时间戳 |
|
||||
| bvid | str | 稿件bvID | |
|
||||
|
||||
`attribute`属性位二进制值表:
|
||||
|
||||
| 位 | 内容 | 备注 |
|
||||
| ---- | ----------------- | ----------------------- |
|
||||
| 0 | 禁止排行 | |
|
||||
| 1 | 动态禁止 | |
|
||||
| 2 | 禁止网页输出 | |
|
||||
| 3 | 禁止客户端列表 | |
|
||||
| 4 | 搜索禁止 | |
|
||||
| 5 | 海外禁止 | |
|
||||
| 6 | 禁止推荐 | |
|
||||
| 7 | 禁止转载 | |
|
||||
| 8 | 是否高清 | 视频清晰度>=1080P |
|
||||
| 9 | 是否PGC稿件 | 番剧及影视 |
|
||||
| 10 | 允许承包 | |
|
||||
| 11 | 是否番剧 | |
|
||||
| 12 | 是否私单 | |
|
||||
| 13 | 是否限制地区 | 大多数番剧 |
|
||||
| 14 | 允许其他人添加tag | |
|
||||
| 15 | ? | |
|
||||
| 16 | 跳转 | 番剧及影视av/bv->ep跳转 |
|
||||
| 17 | 是否影视 | |
|
||||
| 18 | 付费 | |
|
||||
| 19 | 推送动态 | |
|
||||
| 20 | 家长模式 | |
|
||||
| 21 | UGC付费 | |
|
||||
| 22 | ? | |
|
||||
| 23 | 是否失效 | |
|
||||
|
||||
`data`中的`list`数组中的对象中的`rights`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------------- | ---- | ---------------- | ------------ |
|
||||
| bp | num | 0 | 作用尚不明确 |
|
||||
| elec | num | 是否支持充电 | |
|
||||
| download | num | 是否允许下载 | |
|
||||
| movie | num | 是否电影 | |
|
||||
| pay | num | 是否PGC付费 | |
|
||||
| hd5 | num | 是否有高码率 | |
|
||||
| no_reprint | num | 是否禁止转载 | |
|
||||
| autoplay | num | 是否可以自动播放 | |
|
||||
| ugc_pay | num | 是否UGC付费 | |
|
||||
| is_cooperation | num | 是否联合投稿 | |
|
||||
| ugc_pay_preview | num | 0 | 作用尚不明确 |
|
||||
| no_background | num | 0 | 作用尚不明确 |
|
||||
|
||||
`data`中的`list`数组中的对象中的`owner`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | -------- | ---- |
|
||||
| mid | num | UP主UID | |
|
||||
| name | str | UP主昵称 | |
|
||||
| face | str | UP主头像 | |
|
||||
|
||||
`data`中的`list`数组中的对象中的`stat`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------- | ---- | ------------------------------ | ------------ |
|
||||
| aid | num | 稿件avID | |
|
||||
| view | num | 普通:观看次数<br />屏蔽时:-1 | |
|
||||
| danmaku | num | 弹幕条数 | |
|
||||
| reply | num | 评论条数 | |
|
||||
| favorite | num | 收藏人数 | |
|
||||
| coin | num | 投币枚数 | |
|
||||
| share | num | 分享次数 | |
|
||||
| now_rank | num | 0 | 作用尚不明确 |
|
||||
| his_rank | num | 历史最高排行 | |
|
||||
| like | num | 获赞次数 | |
|
||||
| dislike | num | 0 | 作用尚不明确 |
|
||||
| evaluation | str | 视频评分 | 默认为空 |
|
||||
|
||||
`data`中的`list`数组中的对象中的`pages`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ---- | --------------- | ------------------------------------ |
|
||||
| cid | num | 当前分P CID | |
|
||||
| page | num | 当前分P | |
|
||||
| from | str | 视频来源 | vupload:用户上传<br />hunan:芒果TV |
|
||||
| part | str | 当前分P标题 | |
|
||||
| duration | num | 当前分P持续时间 | 单位为秒 |
|
||||
| vid | str | 空 | 作用尚不明确 |
|
||||
| weblink | str | 空 | 作用尚不明确 |
|
||||
| dimension | obj | 当前分P分辨率 | |
|
||||
|
||||
`pages`中的`dimension`对象(同`data`中的`list`数组中的对象中的`dimension`对象):
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------ | ---- | -------------- | -------------------- |
|
||||
| width | num | 当前分P 宽度 | 可能为0 |
|
||||
| height | num | 当前分P 高度 | 可能为0 |
|
||||
| rotate | num | 是否将宽高对换 | 0:正常<br />1:对换 |
|
||||
|
||||
**示例:**
|
||||
|
||||
获取稍后再看视频列表
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/v2/history/toview' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"count": 25,
|
||||
"list": [
|
||||
{
|
||||
"aid": 200333024,
|
||||
"videos": 1,
|
||||
"tid": 95,
|
||||
"tname": "手机平板",
|
||||
"copyright": 1,
|
||||
"pic": "http://i1.hdslb.com/bfs/archive/a5e3072e670daec4c01a182aae91c1f85a48001e.jpg",
|
||||
"title": "【山新】疫情下,配音演员怎么开工录音?",
|
||||
"pubdate": 1586959137,
|
||||
"ctime": 1586959137,
|
||||
"desc": "疫情这段时间,配音演员们是怎么录音的呢=W=",
|
||||
"state": 0,
|
||||
"attribute": 16768,
|
||||
"duration": 218,
|
||||
"rights": {
|
||||
"bp": 0,
|
||||
"elec": 0,
|
||||
"download": 0,
|
||||
"movie": 0,
|
||||
"pay": 0,
|
||||
"hd5": 1,
|
||||
"no_reprint": 1,
|
||||
"autoplay": 1,
|
||||
"ugc_pay": 0,
|
||||
"is_cooperation": 0,
|
||||
"ugc_pay_preview": 0,
|
||||
"no_background": 0
|
||||
},
|
||||
"owner": {
|
||||
"mid": 14082,
|
||||
"name": "山新",
|
||||
"face": "http://i0.hdslb.com/bfs/face/74c82caee6d9eb623e56161ea8ed6d68afabfeae.jpg"
|
||||
},
|
||||
"stat": {
|
||||
"aid": 200333024,
|
||||
"view": 361123,
|
||||
"danmaku": 1792,
|
||||
"reply": 1376,
|
||||
"favorite": 7571,
|
||||
"coin": 12129,
|
||||
"share": 895,
|
||||
"now_rank": 0,
|
||||
"his_rank": 0,
|
||||
"like": 54705,
|
||||
"dislike": 0
|
||||
},
|
||||
"dynamic": "疫情这段时间,配音演员们是怎么录音的呢=W=",
|
||||
"dimension": {
|
||||
"width": 3840,
|
||||
"height": 2160,
|
||||
"rotate": 0
|
||||
},
|
||||
"page": {
|
||||
"cid": 178808041,
|
||||
"page": 1,
|
||||
"from": "vupload",
|
||||
"part": "无标题",
|
||||
"duration": 218,
|
||||
"vid": "",
|
||||
"weblink": "",
|
||||
"dimension": {
|
||||
"width": 3840,
|
||||
"height": 2160,
|
||||
"rotate": 0
|
||||
}
|
||||
},
|
||||
"count": 1,
|
||||
"cid": 178808041,
|
||||
"progress": 32,
|
||||
"add_at": 1587041785,
|
||||
"bvid": "BV1Yz411B7n3"
|
||||
},
|
||||
{
|
||||
"aid": 710350011,
|
||||
"videos": 1,
|
||||
"tid": 124,
|
||||
"tname": "趣味科普人文",
|
||||
"copyright": 1,
|
||||
"pic": "http://i0.hdslb.com/bfs/archive/c5b7e7c07a4abf27029c5afb3ab65fee4475b9a9.jpg",
|
||||
"title": "不花一分钱建立自己的网站!给硬盘里的小姐姐换个新家!",
|
||||
"pubdate": 1586919626,
|
||||
"ctime": 1586898238,
|
||||
"desc": "制作视频不易,你的点赞是对我最大的支持!\nUP主的个人网站:https://amdradeonrin.github.io/MIKU/\n视频提到的文件在网站有下载\nGitHub上的网站源码:https://github.com/AMDRadeonRin/MIKU",
|
||||
"state": 0,
|
||||
"attribute": 16768,
|
||||
"duration": 169,
|
||||
"mission_id": 13106,
|
||||
"rights": {
|
||||
"bp": 0,
|
||||
"elec": 0,
|
||||
"download": 0,
|
||||
"movie": 0,
|
||||
"pay": 0,
|
||||
"hd5": 1,
|
||||
"no_reprint": 1,
|
||||
"autoplay": 1,
|
||||
"ugc_pay": 0,
|
||||
"is_cooperation": 0,
|
||||
"ugc_pay_preview": 0,
|
||||
"no_background": 0
|
||||
},
|
||||
"owner": {
|
||||
"mid": 179757857,
|
||||
"name": "GTX690战术核显卡导弹",
|
||||
"face": "http://i2.hdslb.com/bfs/face/2504de8c1eeef22d91bbc45803f6b29afcbb0adf.jpg"
|
||||
},
|
||||
"stat": {
|
||||
"aid": 710350011,
|
||||
"view": 3293,
|
||||
"danmaku": 37,
|
||||
"reply": 117,
|
||||
"favorite": 355,
|
||||
"coin": 76,
|
||||
"share": 11,
|
||||
"now_rank": 0,
|
||||
"his_rank": 0,
|
||||
"like": 325,
|
||||
"dislike": 0
|
||||
},
|
||||
"dynamic": "#网页制作##HTML##网页#给你们科普一下怎么弄网站吧,你们也可以考虑整一个XD",
|
||||
"dimension": {
|
||||
"width": 1920,
|
||||
"height": 1080,
|
||||
"rotate": 0
|
||||
},
|
||||
"count": 1,
|
||||
"cid": 0,
|
||||
"progress": 0,
|
||||
"add_at": 1587012410,
|
||||
"bvid": "BV1LQ4y1T7Xh"
|
||||
},
|
||||
…………
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 删除稍后再看视频
|
||||
|
||||
> http://api.bilibili.com/x/v2/history/toview/del
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------------------------ | ------ | ------------------------------------------------------------ |
|
||||
| viewed | bool | 是否删除所有已观看的视频 | 非必要 | true:删除已观看视频<br />false:不删除已观看视频<br />默认为false |
|
||||
| aid | num | 删除的目标记录的avID | 非必要 | |
|
||||
| csrf | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111:csrf校验失败<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
删除视频`av540580868`的稍后再看记录
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/v2/history/toview/del' \
|
||||
--data-urlencode 'aid=540580868' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
删除所有已观看的视频
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/v2/history/toview/del' \
|
||||
--data-urlencode 'viewed=true' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 清空稍后再看视频列表
|
||||
|
||||
> http://api.bilibili.com/x/v2/history/toview/clear
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------------------------ | ------ | ---- |
|
||||
| csrf | num | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ----------------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111:csrf校验失败 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
清空稍后再看视频列表
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/v2/history/toview/clear' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
7
imgs/class.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024">
|
||||
<path fill="#0BA395" d="M107.7,3.2C45,16.5,1,68.8-0.3,134.2v582c1.3,65.3,45.3,117.7,108,131V3.2z M625.7,0.2h-452v850h452
|
||||
c76-2.7,132.7-58,134-134v-582C758.4,58.2,701.7,2.8,625.7,0.2z M385.7,117.2c0-18.7,14.3-33,33-33h213c18.7,0,31.7,14.3,33,33v237
|
||||
c-0.7,13.3-6.7,23.3-18,30c-10.7,4-23.3,4.7-34-2l-92-63l-82,62c-22.7,14.7-51.7-0.3-53-27V117.2z M670.7,704.2
|
||||
c0,18.7-14.3,33-33,33h-354c-42.1,0-41.2-63.1,0-66h354C656.4,672.5,670.7,685.5,670.7,704.2z M670.7,555.2c0,18.7-14.3,33-33,33
|
||||
h-354c-42.1,0-41.2-63.1,0-66h354C656.4,523.5,670.7,536.5,670.7,555.2z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 630 B |
9
imgs/collect.svg
Normal file
@ -0,0 +1,9 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024">
|
||||
<path fill="#F3A034" d="M646.6,837.1c-50.8,0-119.6-23.4-204.4-69.5l-0.2-0.1l-0.2,0.1c-84.7,45.8-153.4,69.1-204.2,69.1
|
||||
c-36,0-63.8-11.7-82.8-34.6c-17.8-21.5-28.2-53.6-31.1-95.4c-2.9-41.8,1.7-94.5,13.8-156.5l0.1-0.3l-0.2-0.2
|
||||
c-53.4-49.2-91.6-94.1-113.6-133.2c-21.9-39.1-28.3-73.6-19-102.7c9.4-29.2,35-53.7,76.1-72.8c41.2-19.1,99.1-33.4,172.1-42.4
|
||||
l0.3,0l0.1-0.2c31.3-65.6,63.1-115.6,94.4-148.4C379,17.1,410.7,0.5,441.9,0.5c31.2,0,62.9,16.6,94.1,49.3
|
||||
c31.3,32.8,63.1,82.7,94.4,148.4l0.1,0.2l0.3,0c73.2,9,131.2,23.3,172.5,42.4c41.2,19.1,66.9,43.6,76.2,72.9
|
||||
c9.3,29,2.9,63.6-19.1,102.6c-22.1,39.2-60.4,84-113.9,133.2l-0.2,0.2l0.1,0.3c12,62.2,16.7,115,13.8,156.9
|
||||
c-2.9,41.8-13.4,74-31.2,95.5C710.1,825.4,682.4,837.1,646.6,837.1z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 810 B |
7
imgs/comment.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 823">
|
||||
<path fill="#1497C7" d="M892,329c-2-74-28.8-135.8-80.5-185.5C759.8,93.8,695,68,617,66H343c-78,2-142.8,27.8-194.5,77.5
|
||||
S70.3,255,69,329c1.3,74.7,27.8,136.8,79.5,186.5S265,591,343,593h79l32,107l117-107h46c78-2,142.8-27.8,194.5-77.5
|
||||
C863.2,465.8,890,403.7,892,329z M343,0h274c96.7,2.7,177.3,35,242,97s98.3,139.3,101,232c-2.7,93.3-36.3,171-101,233
|
||||
s-145.3,94.3-242,97h-19L419,823l-49-164h-27c-96.7-2.7-177.3-35-242-97S2.7,422.3,0,329c2.7-92.7,36.3-170,101-232S246.3,2.7,343,0
|
||||
z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 550 B |
7
imgs/download.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024">
|
||||
<path fill="#1497C7" d="M512,0C366.7,3.3,245.8,53.2,149.5,149.5S3.3,366.7,0,512c3.3,145.3,53.2,266.2,149.5,362.5
|
||||
S366.7,1020.7,512,1024c145.3-3.3,266.2-53.2,362.5-149.5S1020.7,657.3,1024,512c-3.3-145.3-53.2-266.2-149.5-362.5S657.3,3.3,512,0
|
||||
z M326,463c4-4,8.7-6,14-6h81V311c0-10.7,7.3-18,18-18h146c10.7,0,18,7.3,18,18v146h81c17.3,1.3,23.7,20,13,32L524,647
|
||||
c-6.7,6.7-17.3,6.7-24,0L327,489C320.3,482.3,319.3,471,326,463z M713,731c0,10.7-8.7,19-18,19H329c-9.3,0-18-8.3-18-19v-36
|
||||
c0-10.7,7.3-18,18-18h366c10.7,0,18,7.3,18,18V731z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 605 B |
BIN
imgs/history.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
6
imgs/home.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024">
|
||||
<path fill="#29B28A" d="M632.4,855h35c60.4,0,112-51,112-112V518c1.3-32,24-54.7,56-56h4
|
||||
c21.3,0,37.3-13,44-33c4-17.3-1-33.7-13-47l-349-349c-46.7-44-112.3-44-159,0l-349,349c-14.7,14.7-17.3,35.3-8,54
|
||||
c9.3,14.7,23.7,23,41,23h3c32,1.3,54.7,25.3,56,56v225c1.3,64,48,110.3,112,113h35c12-1.3,21.7-9,23-21c12-86.7,79-147.7,167-149
|
||||
c88,1.3,156,62.3,168,149C610.4,845.3,620.4,855,632.4,855z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 457 B |
Before Width: | Height: | Size: 321 B After Width: | Height: | Size: 321 B |
BIN
imgs/toview.png
Normal file
After Width: | Height: | Size: 724 B |
BIN
imgs/up_face.jpg
Normal file
After Width: | Height: | Size: 50 KiB |
@ -1 +1,14 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><path d="M576.768 153.6c32.768-32.512 132.096 13.824 221.952 103.68s136.448 189.184 103.68 221.952a27.648 27.648 0 0 1-6.144 4.608c-37.632 22.784-640 377.6-640 377.6a110.592 110.592 0 0 1-48.384-30.976 140.288 140.288 0 0 1-34.56-49.152s381.184-588.8 399.36-620.8a34.56 34.56 0 0 1 4.096-6.912z" fill="#9796ED"></path><path d="M172.288 780.032c-4.864 3.328-35.328 19.968-51.2 28.928a18.688 18.688 0 0 0-9.728 19.456 104.192 104.192 0 0 0 31.488 58.368 117.504 117.504 0 0 0 59.392 33.024 19.2 19.2 0 0 0 19.968-8.448c10.752-17.152 32-51.2 33.024-51.2a110.592 110.592 0 0 1-48.384-30.976 140.288 140.288 0 0 1-34.56-49.152z" fill="#9289F0"></path><path d="M576.768 153.6c32.768-32.512 132.096 13.824 221.952 103.68s136.448 189.184 103.68 221.952a27.648 27.648 0 0 1-6.144 4.608c-37.632 22.784-102.4 60.16-102.4 60.16s-64-4.096-173.312-113.664c-102.4-102.4-112.128-171.008-112.128-171.008s39.936-61.696 62.464-98.816a34.56 34.56 0 0 1 5.888-6.912z" fill="#F7DF88"></path><path d="M680.45816 374.49224a230.144 83.712 45 1 0 118.386645-118.386645 230.144 83.712 45 1 0-118.386645 118.386645Z" fill="#8683EA"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%">
|
||||
<path
|
||||
d="M576.768 153.6c32.768-32.512 132.096 13.824 221.952 103.68s136.448 189.184 103.68 221.952a27.648 27.648 0 0 1-6.144 4.608c-37.632 22.784-640 377.6-640 377.6a110.592 110.592 0 0 1-48.384-30.976 140.288 140.288 0 0 1-34.56-49.152s381.184-588.8 399.36-620.8a34.56 34.56 0 0 1 4.096-6.912z"
|
||||
fill="#9796ED"></path>
|
||||
<path
|
||||
d="M172.288 780.032c-4.864 3.328-35.328 19.968-51.2 28.928a18.688 18.688 0 0 0-9.728 19.456 104.192 104.192 0 0 0 31.488 58.368 117.504 117.504 0 0 0 59.392 33.024 19.2 19.2 0 0 0 19.968-8.448c10.752-17.152 32-51.2 33.024-51.2a110.592 110.592 0 0 1-48.384-30.976 140.288 140.288 0 0 1-34.56-49.152z"
|
||||
fill="#9289F0"></path>
|
||||
<path
|
||||
d="M576.768 153.6c32.768-32.512 132.096 13.824 221.952 103.68s136.448 189.184 103.68 221.952a27.648 27.648 0 0 1-6.144 4.608c-37.632 22.784-102.4 60.16-102.4 60.16s-64-4.096-173.312-113.664c-102.4-102.4-112.128-171.008-112.128-171.008s39.936-61.696 62.464-98.816a34.56 34.56 0 0 1 5.888-6.912z"
|
||||
fill="#F7DF88"></path>
|
||||
<path
|
||||
d="M680.45816 374.49224a230.144 83.712 45 1 0 118.386645-118.386645 230.144 83.712 45 1 0-118.386645 118.386645Z"
|
||||
fill="#8683EA"></path>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.3 KiB |
@ -1 +1,16 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><path d="M588.8 359.68l-12.032-7.424 150.272-206.592a30.976 30.976 0 0 0-51.2-36.352l-153.6 210.176L281.6 170.24a30.976 30.976 0 1 0-33.024 52.736L486.4 369.92l-22.784 31.488a30.976 30.976 0 1 0 51.2 36.352l25.6-35.072 16.128 9.728A30.976 30.976 0 1 0 588.8 359.68z" fill="#FB813A"></path><path d="M763.648 850.688m-53.248 0a53.248 53.248 0 1 0 106.496 0 53.248 53.248 0 1 0-106.496 0Z" fill="#FB813A"></path><path d="M261.12 797.44a53.248 53.248 0 1 0 53.504 53.248 53.248 53.248 0 0 0-53.504-53.248z" fill="#FB813A"></path><path d="M141.312 314.368m92.928 0l556.288 0q92.928 0 92.928 92.928l0 360.704q0 92.928-92.928 92.928l-556.288 0q-92.928 0-92.928-92.928l0-360.704q0-92.928 92.928-92.928Z" fill="#FDDE80"></path><path d="M520.448 575.232m-128.256 0a128.256 128.256 0 1 0 256.512 0 128.256 128.256 0 1 0-256.512 0Z" fill="#FFFFFF"></path><path d="M476.928 546.56c0-26.88 19.2-37.632 42.24-25.6l49.664 28.672a25.6 25.6 0 0 1 0 48.64l-49.664 28.672c-23.04 13.568-42.24 2.56-42.24-24.32z" fill="#FB813A"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%">
|
||||
<path
|
||||
d="M588.8 359.68l-12.032-7.424 150.272-206.592a30.976 30.976 0 0 0-51.2-36.352l-153.6 210.176L281.6 170.24a30.976 30.976 0 1 0-33.024 52.736L486.4 369.92l-22.784 31.488a30.976 30.976 0 1 0 51.2 36.352l25.6-35.072 16.128 9.728A30.976 30.976 0 1 0 588.8 359.68z"
|
||||
fill="#FB813A"></path>
|
||||
<path d="M763.648 850.688m-53.248 0a53.248 53.248 0 1 0 106.496 0 53.248 53.248 0 1 0-106.496 0Z" fill="#FB813A">
|
||||
</path>
|
||||
<path d="M261.12 797.44a53.248 53.248 0 1 0 53.504 53.248 53.248 53.248 0 0 0-53.504-53.248z" fill="#FB813A"></path>
|
||||
<path
|
||||
d="M141.312 314.368m92.928 0l556.288 0q92.928 0 92.928 92.928l0 360.704q0 92.928-92.928 92.928l-556.288 0q-92.928 0-92.928-92.928l0-360.704q0-92.928 92.928-92.928Z"
|
||||
fill="#FDDE80"></path>
|
||||
<path d="M520.448 575.232m-128.256 0a128.256 128.256 0 1 0 256.512 0 128.256 128.256 0 1 0-256.512 0Z"
|
||||
fill="#FFFFFF"></path>
|
||||
<path
|
||||
d="M476.928 546.56c0-26.88 19.2-37.632 42.24-25.6l49.664 28.672a25.6 25.6 0 0 1 0 48.64l-49.664 28.672c-23.04 13.568-42.24 2.56-42.24-24.32z"
|
||||
fill="#FB813A"></path>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.2 KiB |
@ -1 +1,14 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><path d="M147.2 201.728m79.616 0l571.136 0q79.616 0 79.616 79.616l0 458.24q0 79.616-79.616 79.616l-571.136 0q-79.616 0-79.616-79.616l0-458.24q0-79.616 79.616-79.616Z" fill="#9796ED"></path><path d="M222.976 269.312h77.056v57.856H222.976zM390.144 269.312h77.056v57.856h-77.056zM557.312 269.312h77.056v57.856h-77.056zM724.48 269.312h77.056v57.856H724.48zM222.976 693.76h77.056v57.856H222.976zM390.144 693.76h77.056v57.856h-77.056zM557.312 693.76h77.056v57.856h-77.056zM147.2 375.296h730.368v270.08H147.2z" fill="#7B78EA"></path><path d="M521.369822 529.707066m23.351494-23.351495l2.534271-2.53427q23.351494-23.351494 46.702989 0l199.664327 199.664327q23.351494 23.351494 0 46.702989l-2.534271 2.534271q-23.351494 23.351494-46.702988 0l-199.664328-199.664328q-23.351494-23.351494 0-46.702989Z" fill="#FFD043"></path><path d="M708.352 418.816h-25.6v-24.32a13.568 13.568 0 0 0-13.568-13.568H665.6a13.312 13.312 0 0 0-13.312 13.568v24.32h-25.6a13.568 13.568 0 0 0-13.568 13.568v5.632a13.568 13.568 0 0 0 13.568 13.568h25.6v24.32a13.312 13.312 0 0 0 13.312 13.568h5.632a13.568 13.568 0 0 0 13.568-13.568v-24.32h25.6a13.312 13.312 0 0 0 13.312-13.568v-5.632a13.312 13.312 0 0 0-15.36-13.568zM517.888 418.816h-25.6v-24.32a13.312 13.312 0 0 0-13.312-13.568h-5.632a13.568 13.568 0 0 0-13.568 13.568v24.32H435.2a13.312 13.312 0 0 0-13.312 13.568v5.632a13.312 13.312 0 0 0 13.312 13.568h25.6v24.32a13.568 13.568 0 0 0 13.568 13.568h5.632a13.312 13.312 0 0 0 13.312-13.568v-24.32h25.6a13.312 13.312 0 0 0 13.312-13.568v-5.632a13.312 13.312 0 0 0-14.336-13.568zM493.568 572.16h-18.432v-18.432a10.24 10.24 0 0 0-10.24-10.24H460.8a10.24 10.24 0 0 0-10.24 10.24v18.432h-18.432a10.24 10.24 0 0 0-10.24 10.24v4.352a10.24 10.24 0 0 0 10.24 10.24h18.432V614.4a10.24 10.24 0 0 0 10.24 10.24h4.352a10.24 10.24 0 0 0 10.24-10.24v-18.432h18.432a10.24 10.24 0 0 0 10.24-10.24v-4.352a10.24 10.24 0 0 0-10.496-9.216z" fill="#FFD778"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%">
|
||||
<path
|
||||
d="M147.2 201.728m79.616 0l571.136 0q79.616 0 79.616 79.616l0 458.24q0 79.616-79.616 79.616l-571.136 0q-79.616 0-79.616-79.616l0-458.24q0-79.616 79.616-79.616Z"
|
||||
fill="#9796ED"></path>
|
||||
<path
|
||||
d="M222.976 269.312h77.056v57.856H222.976zM390.144 269.312h77.056v57.856h-77.056zM557.312 269.312h77.056v57.856h-77.056zM724.48 269.312h77.056v57.856H724.48zM222.976 693.76h77.056v57.856H222.976zM390.144 693.76h77.056v57.856h-77.056zM557.312 693.76h77.056v57.856h-77.056zM147.2 375.296h730.368v270.08H147.2z"
|
||||
fill="#7B78EA"></path>
|
||||
<path
|
||||
d="M521.369822 529.707066m23.351494-23.351495l2.534271-2.53427q23.351494-23.351494 46.702989 0l199.664327 199.664327q23.351494 23.351494 0 46.702989l-2.534271 2.534271q-23.351494 23.351494-46.702988 0l-199.664328-199.664328q-23.351494-23.351494 0-46.702989Z"
|
||||
fill="#FFD043"></path>
|
||||
<path
|
||||
d="M708.352 418.816h-25.6v-24.32a13.568 13.568 0 0 0-13.568-13.568H665.6a13.312 13.312 0 0 0-13.312 13.568v24.32h-25.6a13.568 13.568 0 0 0-13.568 13.568v5.632a13.568 13.568 0 0 0 13.568 13.568h25.6v24.32a13.312 13.312 0 0 0 13.312 13.568h5.632a13.568 13.568 0 0 0 13.568-13.568v-24.32h25.6a13.312 13.312 0 0 0 13.312-13.568v-5.632a13.312 13.312 0 0 0-15.36-13.568zM517.888 418.816h-25.6v-24.32a13.312 13.312 0 0 0-13.312-13.568h-5.632a13.568 13.568 0 0 0-13.568 13.568v24.32H435.2a13.312 13.312 0 0 0-13.312 13.568v5.632a13.312 13.312 0 0 0 13.312 13.568h25.6v24.32a13.568 13.568 0 0 0 13.568 13.568h5.632a13.312 13.312 0 0 0 13.312-13.568v-24.32h25.6a13.312 13.312 0 0 0 13.312-13.568v-5.632a13.312 13.312 0 0 0-14.336-13.568zM493.568 572.16h-18.432v-18.432a10.24 10.24 0 0 0-10.24-10.24H460.8a10.24 10.24 0 0 0-10.24 10.24v18.432h-18.432a10.24 10.24 0 0 0-10.24 10.24v4.352a10.24 10.24 0 0 0 10.24 10.24h18.432V614.4a10.24 10.24 0 0 0 10.24 10.24h4.352a10.24 10.24 0 0 0 10.24-10.24v-18.432h18.432a10.24 10.24 0 0 0 10.24-10.24v-4.352a10.24 10.24 0 0 0-10.496-9.216z"
|
||||
fill="#FFD778"></path>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
@ -1 +1,20 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><path d="M722.204444 843.491556H170.524444a70.144 70.144 0 0 1-69.973333-69.916445V400.896a70.144 70.144 0 0 1 69.973333-69.944889H722.204444a70.144 70.144 0 0 1 69.916445 69.973333v372.622223a70.144 70.144 0 0 1-69.916445 69.944889" fill="#FDDE80"></path><path d="M710.314667 341.703111c22.613333-7.338667 38.200889-29.098667 36.067555-52.792889a143.616 143.616 0 0 0-6.542222-32.142222c-39.480889-121.628444-229.12-169.045333-423.566222-105.898667C121.799111 214.016-3.783111 363.804444 35.697778 485.461333c3.413333 10.524444 7.992889 20.451556 13.596444 29.809778 12.231111 20.423111 37.603556 28.871111 60.216889 21.532445l600.803556-195.100445z" fill="#9796ED"></path><path d="M281.031111 123.676444l11.235556 34.616889c4.977778 15.331556 21.617778 23.779556 36.920889 18.801778 15.331556-4.977778 23.808-21.589333 18.830222-36.920889l-11.235556-34.588444a29.383111 29.383111 0 0 0-36.920889-18.801778c-15.36 4.949333-23.808 21.589333-18.830222 36.892444" fill="#7B78EB"></path><path d="M444.16 714.069333a139.747556 139.747556 0 0 0 138.296889-119.552 17.493333 17.493333 0 0 0-17.123556-20.195555h-242.346666a17.493333 17.493333 0 0 0-17.123556 20.195555 139.776 139.776 0 0 0 138.296889 119.552" fill="#FFAF66"></path><path d="M704.796444 680.903111L618.951111 640.284444s12.288 55.751111 71.395556 92.672c-0.085333 0.739556-0.284444 1.422222-0.369778 2.190223-12.714667 94.549333 38.200889 179.399111 113.692444 189.553777 75.491556 10.126222 146.972444-58.311111 159.687111-152.860444 12.686222-94.520889-38.200889-179.399111-113.720888-189.525333-60.017778-8.078222-117.418667 33.649778-144.839112 98.588444z" fill="#9796ED"></path><path d="M856.064 682.012444l-19.797333 99.157334a6.570667 6.570667 0 0 1-6.456889 5.290666h-17.777778a6.599111 6.599111 0 0 1-6.542222-7.537777l14.478222-99.128889a6.542222 6.542222 0 0 1 6.485333-5.660445h23.153778c4.181333 0 7.281778 3.811556 6.456889 7.879111m-22.897778 136.078223l-2.986666 16.298666a6.570667 6.570667 0 0 1-6.456889 5.404445h-20.963556a6.599111 6.599111 0 0 1-6.485333-7.651556l2.645333-16.270222a6.599111 6.599111 0 0 1 6.485333-5.546667h21.276445c4.124444 0 7.253333 3.726222 6.485333 7.765334" fill="#C5C2FF"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%">
|
||||
<path
|
||||
d="M722.204444 843.491556H170.524444a70.144 70.144 0 0 1-69.973333-69.916445V400.896a70.144 70.144 0 0 1 69.973333-69.944889H722.204444a70.144 70.144 0 0 1 69.916445 69.973333v372.622223a70.144 70.144 0 0 1-69.916445 69.944889"
|
||||
fill="#FDDE80"></path>
|
||||
<path
|
||||
d="M710.314667 341.703111c22.613333-7.338667 38.200889-29.098667 36.067555-52.792889a143.616 143.616 0 0 0-6.542222-32.142222c-39.480889-121.628444-229.12-169.045333-423.566222-105.898667C121.799111 214.016-3.783111 363.804444 35.697778 485.461333c3.413333 10.524444 7.992889 20.451556 13.596444 29.809778 12.231111 20.423111 37.603556 28.871111 60.216889 21.532445l600.803556-195.100445z"
|
||||
fill="#9796ED"></path>
|
||||
<path
|
||||
d="M281.031111 123.676444l11.235556 34.616889c4.977778 15.331556 21.617778 23.779556 36.920889 18.801778 15.331556-4.977778 23.808-21.589333 18.830222-36.920889l-11.235556-34.588444a29.383111 29.383111 0 0 0-36.920889-18.801778c-15.36 4.949333-23.808 21.589333-18.830222 36.892444"
|
||||
fill="#7B78EB"></path>
|
||||
<path
|
||||
d="M444.16 714.069333a139.747556 139.747556 0 0 0 138.296889-119.552 17.493333 17.493333 0 0 0-17.123556-20.195555h-242.346666a17.493333 17.493333 0 0 0-17.123556 20.195555 139.776 139.776 0 0 0 138.296889 119.552"
|
||||
fill="#FFAF66"></path>
|
||||
<path
|
||||
d="M704.796444 680.903111L618.951111 640.284444s12.288 55.751111 71.395556 92.672c-0.085333 0.739556-0.284444 1.422222-0.369778 2.190223-12.714667 94.549333 38.200889 179.399111 113.692444 189.553777 75.491556 10.126222 146.972444-58.311111 159.687111-152.860444 12.686222-94.520889-38.200889-179.399111-113.720888-189.525333-60.017778-8.078222-117.418667 33.649778-144.839112 98.588444z"
|
||||
fill="#9796ED"></path>
|
||||
<path
|
||||
d="M856.064 682.012444l-19.797333 99.157334a6.570667 6.570667 0 0 1-6.456889 5.290666h-17.777778a6.599111 6.599111 0 0 1-6.542222-7.537777l14.478222-99.128889a6.542222 6.542222 0 0 1 6.485333-5.660445h23.153778c4.181333 0 7.281778 3.811556 6.456889 7.879111m-22.897778 136.078223l-2.986666 16.298666a6.570667 6.570667 0 0 1-6.456889 5.404445h-20.963556a6.599111 6.599111 0 0 1-6.485333-7.651556l2.645333-16.270222a6.599111 6.599111 0 0 1 6.485333-5.546667h21.276445c4.124444 0 7.253333 3.726222 6.485333 7.765334"
|
||||
fill="#C5C2FF"></path>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.4 KiB |
@ -1 +1,10 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><path d="M956.672 513.792a476.416 476.416 0 0 0-890.368 0L512 727.296l-95.232 45.568a117.76 117.76 0 0 0 192.256 0L512 727.04z" fill="#FC6B8A"></path><path d="M512 727.296l208.64-99.84a222.976 222.976 0 0 0-416.768 0z" fill="#FFFFFF"></path><path d="M405.4528 751.5392l541.184-258.5856 14.0288 29.312-541.184 258.6112z" fill="#FF5C7A"></path><path d="M666.624 545.792l-18.688-15.36-112.64 135.424 40.192-173.056-23.552-5.632-40.192 172.544-40.448-172.544-23.808 5.632 40.704 173.056-112.896-135.424-18.688 15.36 111.616 134.144-391.68-186.88-13.824 29.184 541.184 258.56 14.08-29.44-87.552-41.728 136.192-163.84z" fill="#F14767"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%">
|
||||
<path
|
||||
d="M956.672 513.792a476.416 476.416 0 0 0-890.368 0L512 727.296l-95.232 45.568a117.76 117.76 0 0 0 192.256 0L512 727.04z"
|
||||
fill="#FC6B8A"></path>
|
||||
<path d="M512 727.296l208.64-99.84a222.976 222.976 0 0 0-416.768 0z" fill="#FFFFFF"></path>
|
||||
<path d="M405.4528 751.5392l541.184-258.5856 14.0288 29.312-541.184 258.6112z" fill="#FF5C7A"></path>
|
||||
<path
|
||||
d="M666.624 545.792l-18.688-15.36-112.64 135.424 40.192-173.056-23.552-5.632-40.192 172.544-40.448-172.544-23.808 5.632 40.704 173.056-112.896-135.424-18.688 15.36 111.616 134.144-391.68-186.88-13.824 29.184 541.184 258.56 14.08-29.44-87.552-41.728 136.192-163.84z"
|
||||
fill="#F14767"></path>
|
||||
</svg>
|
Before Width: | Height: | Size: 733 B After Width: | Height: | Size: 786 B |
@ -1 +1,13 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><path d="M298.496 284.928l17.664-51.2a36.608 36.608 0 0 1 33.28-22.016h325.376a37.12 37.12 0 0 1 34.304 22.016l17.408 51.2h88.576a69.376 69.376 0 0 1 66.56 70.656v377.344a69.12 69.12 0 0 1-67.84 70.144H209.92a69.12 69.12 0 0 1-68.352-70.144V355.584a69.376 69.376 0 0 1 68.352-70.656z" fill="#FFBA7B"></path><path d="M141.568 457.728h740.096v271.36a69.632 69.632 0 0 1-73.728 73.984H210.688a69.12 69.12 0 0 1-69.12-69.376z" fill="#FB952C"></path><path d="M512 358.4a197.376 197.376 0 1 1-197.376 197.376A197.632 197.632 0 0 1 512 358.4z" fill="#FB952C"></path><path d="M512 409.6a148.224 148.224 0 1 1-147.968 147.968A147.968 147.968 0 0 1 512 409.6z" fill="#FFFFFF"></path><path d="M512 457.728a98.816 98.816 0 1 1-98.56 98.56A98.56 98.56 0 0 1 512 457.728z" fill="#FB952C"></path><path d="M733.696 358.4h73.984a25.6 25.6 0 0 1 25.6 25.6 25.6 25.6 0 0 1-25.6 25.6h-73.984a25.6 25.6 0 0 1-25.6-25.6 25.6 25.6 0 0 1 25.6-25.6z" fill="#FFFFFF"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%">
|
||||
<path
|
||||
d="M298.496 284.928l17.664-51.2a36.608 36.608 0 0 1 33.28-22.016h325.376a37.12 37.12 0 0 1 34.304 22.016l17.408 51.2h88.576a69.376 69.376 0 0 1 66.56 70.656v377.344a69.12 69.12 0 0 1-67.84 70.144H209.92a69.12 69.12 0 0 1-68.352-70.144V355.584a69.376 69.376 0 0 1 68.352-70.656z"
|
||||
fill="#FFBA7B"></path>
|
||||
<path d="M141.568 457.728h740.096v271.36a69.632 69.632 0 0 1-73.728 73.984H210.688a69.12 69.12 0 0 1-69.12-69.376z"
|
||||
fill="#FB952C"></path>
|
||||
<path d="M512 358.4a197.376 197.376 0 1 1-197.376 197.376A197.632 197.632 0 0 1 512 358.4z" fill="#FB952C"></path>
|
||||
<path d="M512 409.6a148.224 148.224 0 1 1-147.968 147.968A147.968 147.968 0 0 1 512 409.6z" fill="#FFFFFF"></path>
|
||||
<path d="M512 457.728a98.816 98.816 0 1 1-98.56 98.56A98.56 98.56 0 0 1 512 457.728z" fill="#FB952C"></path>
|
||||
<path
|
||||
d="M733.696 358.4h73.984a25.6 25.6 0 0 1 25.6 25.6 25.6 25.6 0 0 1-25.6 25.6h-73.984a25.6 25.6 0 0 1-25.6-25.6 25.6 25.6 0 0 1 25.6-25.6z"
|
||||
fill="#FFFFFF"></path>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.1 KiB |
@ -1 +1,31 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><path d="M404.9 386.765c-70.8975-2.565-143.3475 12.06-196.65 38.1825-48.8475 23.9625-117.63 89.46-121.9275 135.5625h735.3225c-3.2175 0-12.015-9.4275-14.7375-11.52-5.0175-3.825-9.7425-7.8075-14.76-11.5425-11.9025-8.91-24.66-16.8975-37.1475-24.975a1040.175 1040.175 0 0 0-77.0625-45.585c-52.47-27.945-107.865-50.805-165.69-65.0025a533.88 533.88 0 0 0-107.3475-15.12" fill="#47CFE5"></path><path d="M744.605 489.1625c-12.7125 32.31-136.71 36.765-181.395 36.765H137.8025c-15.2325 0-29.7675 5.1975-39.7575 14.265-9.9 8.9775-14.1075 20.7675-11.7 32.355 0 0.1125 0 0.27 0.09 0.3375 9.2925 43.6725 35.73 83.34 76.365 114.6825 1.62 1.26 3.2625 2.52 4.9275 3.735 106.74 78.4575 292.5225 81.1575 423.45 43.875 41.445-11.79 80.865-28.17 115.1775-49.635 38.9925-24.39 78.795-57.3075 102.3075-91.7325 3.465-5.0625 41.22-61.1775 41.9625-60.885l-106.02-43.7625z" fill="#47CFE5"></path><path d="M918.0575 505.3175l-29.88-17.0775a75.0825 75.0825 0 0 0-70.11-2.1375 75.375 75.375 0 0 0-37.4175-59.355l-29.925-17.0775a11.4525 11.4525 0 0 0-15.66 4.275l-7.83 13.7025a59.0625 59.0625 0 0 0 21.96 80.5725l15.795 9.045a0.045 0.045 0 0 1-0.045 0.045l51.48 29.43 0.045-0.045 17.46 9.99a59.085 59.085 0 0 0 80.5725-21.9375l7.83-13.725a11.5425 11.5425 0 0 0-4.275-15.705" fill="#2BBAE4"></path><path d="M654.515 712.4975C351.3275 720.8675 266.3 564.425 266.3 564.425H85.7825a31.995 31.995 0 0 0 0.63 8.46c9.2925 43.6725 35.73 83.34 76.365 114.6825 1.62 1.2825 3.2625 2.52 4.9275 3.735 106.7175 78.4575 292.5 81.18 423.4275 43.875a509.6925 509.6925 0 0 0 63.3825-22.68" fill="#E5E6E6"></path><path d="M654.515 712.4975c-65.16 1.8-120.15-4.41-166.5675-14.2425-49.005-10.3725-26.1675 59.31-3.2175 56.79 37.485-4.0725 73.665-10.5975 106.4025-19.9125a502.3575 502.3575 0 0 0 63.3825-22.635" fill="#E4E5E4"></path><path d="M407.1275 674.9225c21.5775 69.84 69.705 117.6525 116.775 113.6475 3.735-0.3375 6.2325-4.0725 5.5125-7.74l-24.435-125.6175a5.715 5.715 0 0 0-6.6825-4.5l-86.715 16.8975a5.7825 5.7825 0 0 0-4.455 7.3125" fill="#47CFE5"></path><path d="M441.2375 614.7125a29.295 29.295 0 1 1-58.6125 0.0225 29.295 29.295 0 0 1 58.6125-0.0225" fill="#0099BC"></path><path d="M252.5975 310.4675a64.2825 64.2825 0 0 1 64.305-64.1025c18.81 0 35.73 8.1225 47.52 21.1275a64.17 64.17 0 0 1 111.7125 42.975 16.56 16.56 0 0 1-16.5825 16.5825 16.56 16.56 0 0 1-16.605-16.5825 31.05 31.05 0 0 0-61.9875-2.16h-0.18l0.1125 77.4675a16.5825 16.5825 0 1 1-33.1875 0v-75.3975c0-17.0325-13.9275-30.9375-30.96-30.9375a31.05 31.05 0 0 0-31.0275 31.0275 16.56 16.56 0 1 1-33.12 0" fill="#47CFE5"></path><path d="M364.3325 408.0275a22.2525 22.2525 0 0 1-22.2075-22.23V310.4a25.3575 25.3575 0 1 0-50.715 0.09 22.23 22.23 0 0 1-44.415 0c0-38.4525 31.365-69.75 69.9075-69.75a69.75 69.75 0 0 1 47.52 18.765 70.2 70.2 0 0 1 47.61-18.765c38.4525 0 69.75 31.2975 69.75 69.75a22.23 22.23 0 0 1-44.4375 0 25.425 25.425 0 0 0-50.7375-1.7775l-0.1575 2.385 0.09 74.7a22.2525 22.2525 0 0 1-22.2075 22.23z m-47.5425-134.19c20.16 0 36.5625 16.4025 36.5625 36.5625v75.42a10.98 10.98 0 1 0 21.915 0l-0.09-83.0925h0.9225a36.7425 36.7425 0 0 1 35.82-28.8675c20.205 0 36.6525 16.4475 36.6525 36.6525a10.98 10.98 0 0 0 21.9375 0c0-32.265-26.235-58.5-58.5-58.5-16.4475 0-32.2875 7.02-43.4475 19.305l-4.1625 4.545-4.1625-4.6125a58.635 58.635 0 0 0-43.335-19.2825 58.635 58.635 0 0 0-58.6575 58.5 10.9575 10.9575 0 0 0 21.915 0 36.675 36.675 0 0 1 36.63-36.63z" fill="#47CFE5"></path><path d="M389.87 621.2825h-66.33a47.79 47.79 0 0 1-35.0325-15.5925l-23.715-25.695a28.575 28.575 0 0 0-20.88-9.2925H91.0475a6.525 6.525 0 1 1 0-13.095h152.8875c11.4525 0 22.5675 4.9275 30.4875 13.5225l23.715 25.7175c6.66 7.2 15.93 11.34 25.425 11.34h66.33a6.525 6.525 0 1 1-0.0225 13.095" fill="#0099BC"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%">
|
||||
<path
|
||||
d="M404.9 386.765c-70.8975-2.565-143.3475 12.06-196.65 38.1825-48.8475 23.9625-117.63 89.46-121.9275 135.5625h735.3225c-3.2175 0-12.015-9.4275-14.7375-11.52-5.0175-3.825-9.7425-7.8075-14.76-11.5425-11.9025-8.91-24.66-16.8975-37.1475-24.975a1040.175 1040.175 0 0 0-77.0625-45.585c-52.47-27.945-107.865-50.805-165.69-65.0025a533.88 533.88 0 0 0-107.3475-15.12"
|
||||
fill="#47CFE5"></path>
|
||||
<path
|
||||
d="M744.605 489.1625c-12.7125 32.31-136.71 36.765-181.395 36.765H137.8025c-15.2325 0-29.7675 5.1975-39.7575 14.265-9.9 8.9775-14.1075 20.7675-11.7 32.355 0 0.1125 0 0.27 0.09 0.3375 9.2925 43.6725 35.73 83.34 76.365 114.6825 1.62 1.26 3.2625 2.52 4.9275 3.735 106.74 78.4575 292.5225 81.1575 423.45 43.875 41.445-11.79 80.865-28.17 115.1775-49.635 38.9925-24.39 78.795-57.3075 102.3075-91.7325 3.465-5.0625 41.22-61.1775 41.9625-60.885l-106.02-43.7625z"
|
||||
fill="#47CFE5"></path>
|
||||
<path
|
||||
d="M918.0575 505.3175l-29.88-17.0775a75.0825 75.0825 0 0 0-70.11-2.1375 75.375 75.375 0 0 0-37.4175-59.355l-29.925-17.0775a11.4525 11.4525 0 0 0-15.66 4.275l-7.83 13.7025a59.0625 59.0625 0 0 0 21.96 80.5725l15.795 9.045a0.045 0.045 0 0 1-0.045 0.045l51.48 29.43 0.045-0.045 17.46 9.99a59.085 59.085 0 0 0 80.5725-21.9375l7.83-13.725a11.5425 11.5425 0 0 0-4.275-15.705"
|
||||
fill="#2BBAE4"></path>
|
||||
<path
|
||||
d="M654.515 712.4975C351.3275 720.8675 266.3 564.425 266.3 564.425H85.7825a31.995 31.995 0 0 0 0.63 8.46c9.2925 43.6725 35.73 83.34 76.365 114.6825 1.62 1.2825 3.2625 2.52 4.9275 3.735 106.7175 78.4575 292.5 81.18 423.4275 43.875a509.6925 509.6925 0 0 0 63.3825-22.68"
|
||||
fill="#E5E6E6"></path>
|
||||
<path
|
||||
d="M654.515 712.4975c-65.16 1.8-120.15-4.41-166.5675-14.2425-49.005-10.3725-26.1675 59.31-3.2175 56.79 37.485-4.0725 73.665-10.5975 106.4025-19.9125a502.3575 502.3575 0 0 0 63.3825-22.635"
|
||||
fill="#E4E5E4"></path>
|
||||
<path
|
||||
d="M407.1275 674.9225c21.5775 69.84 69.705 117.6525 116.775 113.6475 3.735-0.3375 6.2325-4.0725 5.5125-7.74l-24.435-125.6175a5.715 5.715 0 0 0-6.6825-4.5l-86.715 16.8975a5.7825 5.7825 0 0 0-4.455 7.3125"
|
||||
fill="#47CFE5"></path>
|
||||
<path d="M441.2375 614.7125a29.295 29.295 0 1 1-58.6125 0.0225 29.295 29.295 0 0 1 58.6125-0.0225" fill="#0099BC">
|
||||
</path>
|
||||
<path
|
||||
d="M252.5975 310.4675a64.2825 64.2825 0 0 1 64.305-64.1025c18.81 0 35.73 8.1225 47.52 21.1275a64.17 64.17 0 0 1 111.7125 42.975 16.56 16.56 0 0 1-16.5825 16.5825 16.56 16.56 0 0 1-16.605-16.5825 31.05 31.05 0 0 0-61.9875-2.16h-0.18l0.1125 77.4675a16.5825 16.5825 0 1 1-33.1875 0v-75.3975c0-17.0325-13.9275-30.9375-30.96-30.9375a31.05 31.05 0 0 0-31.0275 31.0275 16.56 16.56 0 1 1-33.12 0"
|
||||
fill="#47CFE5"></path>
|
||||
<path
|
||||
d="M364.3325 408.0275a22.2525 22.2525 0 0 1-22.2075-22.23V310.4a25.3575 25.3575 0 1 0-50.715 0.09 22.23 22.23 0 0 1-44.415 0c0-38.4525 31.365-69.75 69.9075-69.75a69.75 69.75 0 0 1 47.52 18.765 70.2 70.2 0 0 1 47.61-18.765c38.4525 0 69.75 31.2975 69.75 69.75a22.23 22.23 0 0 1-44.4375 0 25.425 25.425 0 0 0-50.7375-1.7775l-0.1575 2.385 0.09 74.7a22.2525 22.2525 0 0 1-22.2075 22.23z m-47.5425-134.19c20.16 0 36.5625 16.4025 36.5625 36.5625v75.42a10.98 10.98 0 1 0 21.915 0l-0.09-83.0925h0.9225a36.7425 36.7425 0 0 1 35.82-28.8675c20.205 0 36.6525 16.4475 36.6525 36.6525a10.98 10.98 0 0 0 21.9375 0c0-32.265-26.235-58.5-58.5-58.5-16.4475 0-32.2875 7.02-43.4475 19.305l-4.1625 4.545-4.1625-4.6125a58.635 58.635 0 0 0-43.335-19.2825 58.635 58.635 0 0 0-58.6575 58.5 10.9575 10.9575 0 0 0 21.915 0 36.675 36.675 0 0 1 36.63-36.63z"
|
||||
fill="#47CFE5"></path>
|
||||
<path
|
||||
d="M389.87 621.2825h-66.33a47.79 47.79 0 0 1-35.0325-15.5925l-23.715-25.695a28.575 28.575 0 0 0-20.88-9.2925H91.0475a6.525 6.525 0 1 1 0-13.095h152.8875c11.4525 0 22.5675 4.9275 30.4875 13.5225l23.715 25.7175c6.66 7.2 15.93 11.34 25.425 11.34h66.33a6.525 6.525 0 1 1-0.0225 13.095"
|
||||
fill="#0099BC"></path>
|
||||
</svg>
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.9 KiB |
@ -1 +1,14 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><path d="M273.408 166.912h477.696c58.368 0 105.984 47.616 105.984 105.984v477.696c0 58.368-47.616 105.984-105.984 105.984H273.408c-58.368 0-105.984-47.616-105.984-105.984V273.408C166.912 215.04 215.04 166.912 273.408 166.912z" fill="#7B78EB"></path><path d="M512 525.312v98.816c33.28-14.848 72.704 0.512 87.552 33.792 14.848 33.28-0.512 72.704-33.792 87.552-16.896 7.68-35.84 7.68-53.248 0v111.616H273.408c-58.368 0-105.984-47.616-105.984-105.984V512h137.216c-21.504 19.456-24.064 53.248-4.608 74.752 19.456 21.504 53.248 24.064 74.752 4.608 21.504-18.944 24.064-53.248 4.608-74.752l-4.608-4.608H512v-40.96c-4.096 0.512-9.216 0.512-13.312 0-51.2 0-86.016-47.616-86.016-105.984s20.992-108.032 86.016-108.032h13.312V166.912h238.592c58.368 0 105.984 47.616 105.984 105.984v251.904h-120.832c20.992-23.552 19.456-59.392-3.584-80.896-23.552-20.992-59.392-19.456-80.896 3.584-19.968 21.504-19.968 55.296 0 76.8H512z" fill="#9796ED"></path><path d="M512 525.312v98.816l13.312-4.096c35.84-7.68 72.704 15.872 79.872 52.224 7.68 35.84-18.432 72.192-54.272 78.848-4.096 1.024-8.704 1.024-13.312 1.024-9.216 0-16.384-3.072-25.088-6.144v111.616h-14.336v-132.608l18.432 8.192c27.136 11.776 58.368-0.512 70.144-27.648 11.776-27.136-0.512-58.368-27.648-70.144-13.312-5.632-28.672-5.632-42.496 0l-18.432 8.192v-117.76H399.872c14.848 33.28-0.512 72.704-33.792 87.552-33.28 14.848-72.704-0.512-87.552-33.792-7.68-16.896-7.68-35.84 0-53.248H166.912V512h137.216c-21.504 19.456-24.064 53.248-4.608 74.752 19.456 21.504 53.248 24.064 74.752 4.608 21.504-19.456 24.064-53.248 4.608-74.752l-4.608-4.608H512v-39.936h-13.312c-51.2 0-86.016-47.104-86.016-105.984s20.992-109.568 86.016-109.568h13.312V166.912h13.312v105.984h-26.624c-49.664 0-73.216 33.28-73.216 94.208 0 53.248 30.72 92.672 73.216 92.672 3.584 0.512 7.68 0.512 11.264 0l15.36-2.048V512h102.912c-13.824-35.84 4.096-76.8 40.448-90.624 35.84-13.824 76.8 4.096 90.624 40.448 6.144 15.872 6.144 33.792 0 50.176h97.792v13.312h-120.832c20.992-23.552 19.456-59.392-3.584-80.896-23.552-20.992-59.392-19.456-80.896 3.584-19.968 21.504-19.968 55.296 0 76.8H512z" fill="#6A68C6"></path><path d="M444.928 693.248c-23.04 13.312-52.224 5.12-65.024-17.408-4.096-7.68-6.144-15.36-6.144-24.064V392.192c0-26.624 20.992-47.616 47.616-47.616 8.704 0 16.896 2.048 24.576 6.656l221.696 132.608c23.04 13.312 30.208 42.496 16.896 65.024-4.096 6.656-10.24 12.8-16.896 16.896" fill="#FDDE80"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%">
|
||||
<path
|
||||
d="M273.408 166.912h477.696c58.368 0 105.984 47.616 105.984 105.984v477.696c0 58.368-47.616 105.984-105.984 105.984H273.408c-58.368 0-105.984-47.616-105.984-105.984V273.408C166.912 215.04 215.04 166.912 273.408 166.912z"
|
||||
fill="#7B78EB"></path>
|
||||
<path
|
||||
d="M512 525.312v98.816c33.28-14.848 72.704 0.512 87.552 33.792 14.848 33.28-0.512 72.704-33.792 87.552-16.896 7.68-35.84 7.68-53.248 0v111.616H273.408c-58.368 0-105.984-47.616-105.984-105.984V512h137.216c-21.504 19.456-24.064 53.248-4.608 74.752 19.456 21.504 53.248 24.064 74.752 4.608 21.504-18.944 24.064-53.248 4.608-74.752l-4.608-4.608H512v-40.96c-4.096 0.512-9.216 0.512-13.312 0-51.2 0-86.016-47.616-86.016-105.984s20.992-108.032 86.016-108.032h13.312V166.912h238.592c58.368 0 105.984 47.616 105.984 105.984v251.904h-120.832c20.992-23.552 19.456-59.392-3.584-80.896-23.552-20.992-59.392-19.456-80.896 3.584-19.968 21.504-19.968 55.296 0 76.8H512z"
|
||||
fill="#9796ED"></path>
|
||||
<path
|
||||
d="M512 525.312v98.816l13.312-4.096c35.84-7.68 72.704 15.872 79.872 52.224 7.68 35.84-18.432 72.192-54.272 78.848-4.096 1.024-8.704 1.024-13.312 1.024-9.216 0-16.384-3.072-25.088-6.144v111.616h-14.336v-132.608l18.432 8.192c27.136 11.776 58.368-0.512 70.144-27.648 11.776-27.136-0.512-58.368-27.648-70.144-13.312-5.632-28.672-5.632-42.496 0l-18.432 8.192v-117.76H399.872c14.848 33.28-0.512 72.704-33.792 87.552-33.28 14.848-72.704-0.512-87.552-33.792-7.68-16.896-7.68-35.84 0-53.248H166.912V512h137.216c-21.504 19.456-24.064 53.248-4.608 74.752 19.456 21.504 53.248 24.064 74.752 4.608 21.504-19.456 24.064-53.248 4.608-74.752l-4.608-4.608H512v-39.936h-13.312c-51.2 0-86.016-47.104-86.016-105.984s20.992-109.568 86.016-109.568h13.312V166.912h13.312v105.984h-26.624c-49.664 0-73.216 33.28-73.216 94.208 0 53.248 30.72 92.672 73.216 92.672 3.584 0.512 7.68 0.512 11.264 0l15.36-2.048V512h102.912c-13.824-35.84 4.096-76.8 40.448-90.624 35.84-13.824 76.8 4.096 90.624 40.448 6.144 15.872 6.144 33.792 0 50.176h97.792v13.312h-120.832c20.992-23.552 19.456-59.392-3.584-80.896-23.552-20.992-59.392-19.456-80.896 3.584-19.968 21.504-19.968 55.296 0 76.8H512z"
|
||||
fill="#6A68C6"></path>
|
||||
<path
|
||||
d="M444.928 693.248c-23.04 13.312-52.224 5.12-65.024-17.408-4.096-7.68-6.144-15.36-6.144-24.064V392.192c0-26.624 20.992-47.616 47.616-47.616 8.704 0 16.896 2.048 24.576 6.656l221.696 132.608c23.04 13.312 30.208 42.496 16.896 65.024-4.096 6.656-10.24 12.8-16.896 16.896"
|
||||
fill="#FDDE80"></path>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.5 KiB |
@ -1 +1,17 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><path d="M534.442796 378.982175m36.203867 36.203867l30.592268 30.592268q36.203867 36.203867 0 72.407734l-360.590518 360.590518q-36.203867 36.203867-72.407734 0l-30.592268-30.592268q-36.203867-36.203867 0-72.407735l360.590518-360.590517q36.203867-36.203867 72.407734 0Z" fill="#FF8693"></path><path d="M369.92 543.744l137.472-137.472a38.912 38.912 0 0 1 54.528 0l48.384 48.64a38.4 38.4 0 0 1 0 54.528l-137.984 137.984z" fill="#FC6376"></path><path d="M286.133941 631.021801m12.854616 12.85013l72.601422 72.576083q12.854616 12.850129 0.004486 25.704746l-1.62889 1.629458q-12.850129 12.854616-25.704745 0.004486l-72.601422-72.576083q-12.854616-12.850129-0.004486-25.704745l1.62889-1.629459q12.850129-12.854616 25.704745-0.004486Z" fill="#FFA9B1"></path><path d="M737.024 547.584a99.328 99.328 0 0 1 62.72-62.72l51.2-13.568a27.136 27.136 0 0 0 13.056-49.664L826.624 384a98.816 98.816 0 0 1-22.784-85.76l16.896-63.232c7.168-27.136-8.96-43.52-36.096-36.096l-63.232 16.896a98.816 98.816 0 0 1-85.76-23.04l-37.376-36.864a27.136 27.136 0 0 0-49.408 13.312l-13.824 51.2a97.792 97.792 0 0 1-62.464 62.72l-51.2 13.824a27.136 27.136 0 0 0-13.312 49.408L445.44 384a97.536 97.536 0 0 1 23.04 85.504l-16.896 63.232c-7.424 27.392 8.96 43.52 36.096 36.352l63.232-16.896a97.792 97.792 0 0 1 85.76 22.784l37.376 37.376a26.88 26.88 0 0 0 49.408-13.312z" fill="#FDDE80"></path><path d="M886.272 417.536l-74.752-75.008 30.464-114.432a41.216 41.216 0 0 0-8.704-41.472A41.728 41.728 0 0 0 791.808 179.2l-114.432 30.72-74.752-76.032A41.728 41.728 0 0 0 563.2 120.576a41.216 41.216 0 0 0-28.416 31.488l-27.392 102.4L404.48 281.6a42.24 42.24 0 0 0-31.744 28.16 42.24 42.24 0 0 0 13.312 40.448L460.8 425.216l-30.72 114.432a41.728 41.728 0 0 0 8.96 41.472 37.888 37.888 0 0 0 27.392 10.752 56.832 56.832 0 0 0 14.08-2.048l114.432-30.72 74.752 75.008a45.824 45.824 0 0 0 31.232 14.336 34.304 34.304 0 0 0 8.96 0 41.216 41.216 0 0 0 28.416-31.488l27.392-102.4 102.4-27.392a41.984 41.984 0 0 0 31.488-28.416 40.96 40.96 0 0 0-13.312-41.216z m-84.736-203.52h5.12a16.896 16.896 0 0 1 0 5.12l-25.6 93.696-72.96-73.728z m-32 139.776l-34.56 128-128 34.56-102.4-102.4 34.56-128 128-34.56z m-199.424-192c0-2.56 1.792-4.096 1.792-4.608a9.984 9.984 0 0 1 4.096 3.072l59.648 59.648-87.296 23.296z m-157.696 162.048L409.6 320a12.8 12.8 0 0 1 4.864-2.048l81.152-21.76-23.552 87.808z m58.368 230.4a18.944 18.944 0 0 1-5.12 0 17.92 17.92 0 0 1 0-5.12l25.6-93.696L563.2 528.64z m230.4 51.2c0 2.816-1.536 4.096-1.536 4.864a20.992 20.992 0 0 1-4.352-3.328l-59.392-59.392 87.296-23.552z m156.16-156.16l-81.152 21.76 23.296-87.04 59.392 59.392a40.96 40.96 0 0 1 3.328 3.84 12.8 12.8 0 0 1-4.096 2.56z" fill="#FCC029"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%">
|
||||
<path
|
||||
d="M534.442796 378.982175m36.203867 36.203867l30.592268 30.592268q36.203867 36.203867 0 72.407734l-360.590518 360.590518q-36.203867 36.203867-72.407734 0l-30.592268-30.592268q-36.203867-36.203867 0-72.407735l360.590518-360.590517q36.203867-36.203867 72.407734 0Z"
|
||||
fill="#FF8693"></path>
|
||||
<path
|
||||
d="M369.92 543.744l137.472-137.472a38.912 38.912 0 0 1 54.528 0l48.384 48.64a38.4 38.4 0 0 1 0 54.528l-137.984 137.984z"
|
||||
fill="#FC6376"></path>
|
||||
<path
|
||||
d="M286.133941 631.021801m12.854616 12.85013l72.601422 72.576083q12.854616 12.850129 0.004486 25.704746l-1.62889 1.629458q-12.850129 12.854616-25.704745 0.004486l-72.601422-72.576083q-12.854616-12.850129-0.004486-25.704745l1.62889-1.629459q12.850129-12.854616 25.704745-0.004486Z"
|
||||
fill="#FFA9B1"></path>
|
||||
<path
|
||||
d="M737.024 547.584a99.328 99.328 0 0 1 62.72-62.72l51.2-13.568a27.136 27.136 0 0 0 13.056-49.664L826.624 384a98.816 98.816 0 0 1-22.784-85.76l16.896-63.232c7.168-27.136-8.96-43.52-36.096-36.096l-63.232 16.896a98.816 98.816 0 0 1-85.76-23.04l-37.376-36.864a27.136 27.136 0 0 0-49.408 13.312l-13.824 51.2a97.792 97.792 0 0 1-62.464 62.72l-51.2 13.824a27.136 27.136 0 0 0-13.312 49.408L445.44 384a97.536 97.536 0 0 1 23.04 85.504l-16.896 63.232c-7.424 27.392 8.96 43.52 36.096 36.352l63.232-16.896a97.792 97.792 0 0 1 85.76 22.784l37.376 37.376a26.88 26.88 0 0 0 49.408-13.312z"
|
||||
fill="#FDDE80"></path>
|
||||
<path
|
||||
d="M886.272 417.536l-74.752-75.008 30.464-114.432a41.216 41.216 0 0 0-8.704-41.472A41.728 41.728 0 0 0 791.808 179.2l-114.432 30.72-74.752-76.032A41.728 41.728 0 0 0 563.2 120.576a41.216 41.216 0 0 0-28.416 31.488l-27.392 102.4L404.48 281.6a42.24 42.24 0 0 0-31.744 28.16 42.24 42.24 0 0 0 13.312 40.448L460.8 425.216l-30.72 114.432a41.728 41.728 0 0 0 8.96 41.472 37.888 37.888 0 0 0 27.392 10.752 56.832 56.832 0 0 0 14.08-2.048l114.432-30.72 74.752 75.008a45.824 45.824 0 0 0 31.232 14.336 34.304 34.304 0 0 0 8.96 0 41.216 41.216 0 0 0 28.416-31.488l27.392-102.4 102.4-27.392a41.984 41.984 0 0 0 31.488-28.416 40.96 40.96 0 0 0-13.312-41.216z m-84.736-203.52h5.12a16.896 16.896 0 0 1 0 5.12l-25.6 93.696-72.96-73.728z m-32 139.776l-34.56 128-128 34.56-102.4-102.4 34.56-128 128-34.56z m-199.424-192c0-2.56 1.792-4.096 1.792-4.608a9.984 9.984 0 0 1 4.096 3.072l59.648 59.648-87.296 23.296z m-157.696 162.048L409.6 320a12.8 12.8 0 0 1 4.864-2.048l81.152-21.76-23.552 87.808z m58.368 230.4a18.944 18.944 0 0 1-5.12 0 17.92 17.92 0 0 1 0-5.12l25.6-93.696L563.2 528.64z m230.4 51.2c0 2.816-1.536 4.096-1.536 4.864a20.992 20.992 0 0 1-4.352-3.328l-59.392-59.392 87.296-23.552z m156.16-156.16l-81.152 21.76 23.296-87.04 59.392 59.392a40.96 40.96 0 0 1 3.328 3.84 12.8 12.8 0 0 1-4.096 2.56z"
|
||||
fill="#FCC029"></path>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.8 KiB |
@ -1 +1,11 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><path d="M691.2 204.8a44.032 44.032 0 0 1 29.952 34.048 117.76 117.76 0 0 1-13.056 76.8s-19.2 29.952-24.32 39.936a235.008 235.008 0 0 0-25.6 107.008v40.704H365.312v-39.424a235.008 235.008 0 0 0-25.6-107.008c-5.12-9.984-24.32-39.936-24.32-39.936a117.76 117.76 0 0 1-13.056-76.8A44.544 44.544 0 0 1 336.896 204.8V147.712a29.952 29.952 0 0 1 27.136-31.744 29.952 29.952 0 0 1 27.648 31.744v73.728A237.056 237.056 0 0 0 512 253.952a241.408 241.408 0 0 0 125.184-35.072V147.712a27.136 27.136 0 1 1 53.76 0z" fill="#FF6A9B"></path><path d="M658.432 487.936H365.312L204.8 780.288a36.352 36.352 0 0 0 10.24 46.592 492.288 492.288 0 0 0 595.456 0 36.608 36.608 0 0 0 8.704-47.36z" fill="#FF9DC6"></path><path d="M409.6 537.6a9.984 9.984 0 0 0-13.568 4.608l-124.16 250.624a10.496 10.496 0 0 0 4.608 13.568 14.848 14.848 0 0 0 4.608 0 9.984 9.984 0 0 0 8.96-5.632l124.16-250.88A10.24 10.24 0 0 0 409.6 537.6zM455.936 643.072a9.984 9.984 0 0 0-12.032 7.424l-40.448 170.752a10.24 10.24 0 0 0 7.424 12.288h2.304a9.728 9.728 0 0 0 9.728-7.936l40.448-170.752a9.984 9.984 0 0 0-7.424-11.776zM750.848 791.808l-124.16-250.624A9.984 9.984 0 0 0 614.4 537.6a10.24 10.24 0 0 0-4.608 13.312l124.16 250.88a9.984 9.984 0 0 0 8.96 5.632 14.848 14.848 0 0 0 4.608 0 10.496 10.496 0 0 0 3.328-15.616zM579.84 650.496a9.984 9.984 0 0 0-19.456 4.608l40.448 170.752a9.728 9.728 0 0 0 9.728 7.936h2.304a10.24 10.24 0 0 0 7.424-12.288z" fill="#FF6A9B"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%">
|
||||
<path
|
||||
d="M691.2 204.8a44.032 44.032 0 0 1 29.952 34.048 117.76 117.76 0 0 1-13.056 76.8s-19.2 29.952-24.32 39.936a235.008 235.008 0 0 0-25.6 107.008v40.704H365.312v-39.424a235.008 235.008 0 0 0-25.6-107.008c-5.12-9.984-24.32-39.936-24.32-39.936a117.76 117.76 0 0 1-13.056-76.8A44.544 44.544 0 0 1 336.896 204.8V147.712a29.952 29.952 0 0 1 27.136-31.744 29.952 29.952 0 0 1 27.648 31.744v73.728A237.056 237.056 0 0 0 512 253.952a241.408 241.408 0 0 0 125.184-35.072V147.712a27.136 27.136 0 1 1 53.76 0z"
|
||||
fill="#FF6A9B"></path>
|
||||
<path
|
||||
d="M658.432 487.936H365.312L204.8 780.288a36.352 36.352 0 0 0 10.24 46.592 492.288 492.288 0 0 0 595.456 0 36.608 36.608 0 0 0 8.704-47.36z"
|
||||
fill="#FF9DC6"></path>
|
||||
<path
|
||||
d="M409.6 537.6a9.984 9.984 0 0 0-13.568 4.608l-124.16 250.624a10.496 10.496 0 0 0 4.608 13.568 14.848 14.848 0 0 0 4.608 0 9.984 9.984 0 0 0 8.96-5.632l124.16-250.88A10.24 10.24 0 0 0 409.6 537.6zM455.936 643.072a9.984 9.984 0 0 0-12.032 7.424l-40.448 170.752a10.24 10.24 0 0 0 7.424 12.288h2.304a9.728 9.728 0 0 0 9.728-7.936l40.448-170.752a9.984 9.984 0 0 0-7.424-11.776zM750.848 791.808l-124.16-250.624A9.984 9.984 0 0 0 614.4 537.6a10.24 10.24 0 0 0-4.608 13.312l124.16 250.88a9.984 9.984 0 0 0 8.96 5.632 14.848 14.848 0 0 0 4.608 0 10.496 10.496 0 0 0 3.328-15.616zM579.84 650.496a9.984 9.984 0 0 0-19.456 4.608l40.448 170.752a9.728 9.728 0 0 0 9.728 7.936h2.304a10.24 10.24 0 0 0 7.424-12.288z"
|
||||
fill="#FF6A9B"></path>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
32
imgs/zone/food.svg
Normal file
@ -0,0 +1,32 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%">
|
||||
<path
|
||||
d="M192.075294 503.883294m-75.294118 0a75.294118 75.294118 0 1 0 150.588236 0 75.294118 75.294118 0 1 0-150.588236 0Z"
|
||||
fill="#FA942D"></path>
|
||||
<path
|
||||
d="M342.663529 411.211294m-75.294117 0a75.294118 75.294118 0 1 0 150.588235 0 75.294118 75.294118 0 1 0-150.588235 0Z"
|
||||
fill="#FA942D"></path>
|
||||
<path
|
||||
d="M284.747294 480.722824m-75.294118 0a75.294118 75.294118 0 1 0 150.588236 0 75.294118 75.294118 0 1 0-150.588236 0Z"
|
||||
fill="#FE5D79"></path>
|
||||
<path
|
||||
d="M765.470118 532.841412m-127.427765 0a127.427765 127.427765 0 1 0 254.855529 0 127.427765 127.427765 0 1 0-254.855529 0Z"
|
||||
fill="#FA942D"></path>
|
||||
<path
|
||||
d="M632.259765 457.547294m-133.210353 0a133.210353 133.210353 0 1 0 266.420706 0 133.210353 133.210353 0 1 0-266.420706 0Z"
|
||||
fill="#FA942D"></path>
|
||||
<path
|
||||
d="M672.798118 556.016941m-150.588236 0a150.588235 150.588235 0 1 0 301.176471 0 150.588235 150.588235 0 1 0-301.176471 0Z"
|
||||
fill="#FE5D79"></path>
|
||||
<path
|
||||
d="M932.291765 474.925176a28.762353 28.762353 0 0 1 28.747294 28.762353l-0.045177 1.355295-0.090353 1.355294c-14.305882 150.919529-130.605176 272.865882-280.741647 299.188706l20.178824 80.745411a23.160471 23.160471 0 0 1-22.467765 28.777412H343.371294a23.160471 23.160471 0 0 1-22.467765-28.777412l20.178824-80.745411C192.813176 779.595294 77.552941 660.329412 60.928 512.015059l-0.557176-5.376a28.958118 28.958118 0 0 1 28.822588-31.713883h843.083294z"
|
||||
fill="#FDDC7A"></path>
|
||||
<path
|
||||
d="M442.548706 196.924235h136.146823c21.263059 0 39.800471 14.456471 44.950589 35.087059l60.732235 242.913882H336.865882l60.732236-242.898823a46.336 46.336 0 0 1 44.950588-35.102118z"
|
||||
fill="#F6C338"></path>
|
||||
<path
|
||||
d="M688.037647 192.903529c9.441882-30.177882 28.385882-29.409882 34.680471-47.585882 7.062588-20.449882 9.366588-45.718588 6.927058-75.821176 16.850824 17.935059 25.976471 37.014588 30.945883 62.283294 4.894118 24.937412-9.125647 44.182588-29.06353 74.480941-19.922824 30.313412-8.809412 67.614118 0 94.915765-16.850824-17.92-59.904-55.777882-43.474823-108.272942zM283.361882 154.247529c11.324235-37.707294 34.063059-36.773647 41.60753-59.482353 8.493176-25.554824 11.264-57.133176 8.31247-94.765176 20.239059 22.407529 31.201882 46.260706 37.165177 77.854118 5.872941 31.171765-10.947765 55.220706-34.876235 93.108706-23.943529 37.872941-10.601412 84.48 0 118.633411-20.239059-22.422588-71.936-69.722353-52.208942-135.348706z"
|
||||
fill="#C6D2E1"></path>
|
||||
<path
|
||||
d="M510.629647 706.605176a92.672 92.672 0 0 1 92.672 92.672v115.832471H417.957647v-115.832471a92.672 92.672 0 0 1 92.672-92.672z"
|
||||
fill="#F5BC20"></path>
|
||||
</svg>
|
After Width: | Height: | Size: 2.7 KiB |
@ -1 +1,9 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><path d="M166.4 166.144m90.112 0l510.976 0q90.112 0 90.112 90.112l0 510.976q0 90.112-90.112 90.112l-510.976 0q-90.112 0-90.112-90.112l0-510.976q0-90.112 90.112-90.112Z" fill="#58D598"></path><path d="M307.2 325.632h136.448v136.448H307.2zM580.096 325.632h136.448v136.448h-136.448z" fill="#17AD8A"></path><path d="M443.648 462.336v75.776h-64.256v204.544h59.392v-68.096H585.216v68.096h59.136v-204.544h-64.256v-75.776h-136.448z" fill="#17AD8A"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%">
|
||||
<path
|
||||
d="M166.4 166.144m90.112 0l510.976 0q90.112 0 90.112 90.112l0 510.976q0 90.112-90.112 90.112l-510.976 0q-90.112 0-90.112-90.112l0-510.976q0-90.112 90.112-90.112Z"
|
||||
fill="#58D598"></path>
|
||||
<path d="M307.2 325.632h136.448v136.448H307.2zM580.096 325.632h136.448v136.448h-136.448z" fill="#17AD8A"></path>
|
||||
<path
|
||||
d="M443.648 462.336v75.776h-64.256v204.544h59.392v-68.096H585.216v68.096h59.136v-204.544h-64.256v-75.776h-136.448z"
|
||||
fill="#17AD8A"></path>
|
||||
</svg>
|
Before Width: | Height: | Size: 544 B After Width: | Height: | Size: 592 B |
@ -1 +1,11 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><path d="M873.472 321.792c-46.08-46.592-102.4-73.472-161.536-40.192a177.152 177.152 0 0 0-51.2-161.536s-83.456 107.52-15.104 219.648c-12.288 13.568-24.32 27.136-36.352 39.424-26.88 27.136 14.592 69.12 41.216 41.984l68.608-69.632c40.704-40.96 76.8-23.808 112.896 12.288 26.624 26.88 68.096-15.104 41.472-41.984z" fill="#58D598"></path><path d="M705.024 344.576a189.696 189.696 0 0 0-270.848 0 195.072 195.072 0 0 0-41.216 62.464 249.088 249.088 0 0 0-177.664 74.496 256 256 0 0 0 0 359.68 248.576 248.576 0 0 0 354.816 0 256 256 0 0 0 73.472-179.2 190.976 190.976 0 0 0 61.44-41.728 195.84 195.84 0 0 0 0-275.712z" fill="#FF5C7A"></path><path d="M514.304 808.704a187.136 187.136 0 0 1-267.264-5.12 193.536 193.536 0 0 1 5.12-271.104s-45.056 120.832 43.776 214.272a210.176 210.176 0 0 0 218.368 61.952" fill="#F14767"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%">
|
||||
<path
|
||||
d="M873.472 321.792c-46.08-46.592-102.4-73.472-161.536-40.192a177.152 177.152 0 0 0-51.2-161.536s-83.456 107.52-15.104 219.648c-12.288 13.568-24.32 27.136-36.352 39.424-26.88 27.136 14.592 69.12 41.216 41.984l68.608-69.632c40.704-40.96 76.8-23.808 112.896 12.288 26.624 26.88 68.096-15.104 41.472-41.984z"
|
||||
fill="#58D598"></path>
|
||||
<path
|
||||
d="M705.024 344.576a189.696 189.696 0 0 0-270.848 0 195.072 195.072 0 0 0-41.216 62.464 249.088 249.088 0 0 0-177.664 74.496 256 256 0 0 0 0 359.68 248.576 248.576 0 0 0 354.816 0 256 256 0 0 0 73.472-179.2 190.976 190.976 0 0 0 61.44-41.728 195.84 195.84 0 0 0 0-275.712z"
|
||||
fill="#FF5C7A"></path>
|
||||
<path
|
||||
d="M514.304 808.704a187.136 187.136 0 0 1-267.264-5.12 193.536 193.536 0 0 1 5.12-271.104s-45.056 120.832 43.776 214.272a210.176 210.176 0 0 0 218.368 61.952"
|
||||
fill="#F14767"></path>
|
||||
</svg>
|
Before Width: | Height: | Size: 920 B After Width: | Height: | Size: 984 B |
17
imgs/zone/information.svg
Normal file
@ -0,0 +1,17 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%">
|
||||
<path
|
||||
d="M760.685714 768a21.942857 21.942857 0 0 0 19.836343 21.840457L782.628571 789.942857a21.942857 21.942857 0 0 0 21.840458-19.836343L804.571429 768V321.828571h29.257142a58.514286 58.514286 0 0 1 58.514286 58.514286v438.857143a58.514286 58.514286 0 0 1-58.514286 58.514286H190.171429a58.514286 58.514286 0 0 1-58.514286-58.514286V204.8a58.514286 58.514286 0 0 1 58.514286-58.514286h512a58.514286 58.514286 0 0 1 58.514285 58.514286v563.2z"
|
||||
fill="#7DD3E0"></path>
|
||||
<path
|
||||
d="M219.428571 234.057143m29.257143 0l394.971429 0q29.257143 0 29.257143 29.257143l0 263.314285q0 29.257143-29.257143 29.257143l-394.971429 0q-29.257143 0-29.257143-29.257143l0-263.314285q0-29.257143 29.257143-29.257143Z"
|
||||
fill="#3DA9D3"></path>
|
||||
<path
|
||||
d="M404.772571 300.514743l129.462858 80.925257a15.945143 15.945143 0 0 1 0 27.062857l-129.462858 80.925257a15.945143 15.945143 0 0 1-24.429714-13.531428V314.046171a15.945143 15.945143 0 0 1 24.429714-13.531428z"
|
||||
fill="#FFD469"></path>
|
||||
<path
|
||||
d="M219.428571 614.4m29.257143 0l394.971429 0q29.257143 0 29.257143 29.257143l0 0q0 29.257143-29.257143 29.257143l-394.971429 0q-29.257143 0-29.257143-29.257143l0 0q0-29.257143 29.257143-29.257143Z"
|
||||
fill="#3DA9D3"></path>
|
||||
<path
|
||||
d="M219.428571 731.428571m29.257143 0l219.428572 0q29.257143 0 29.257143 29.257143l0 0q0 29.257143-29.257143 29.257143l-219.428572 0q-29.257143 0-29.257143-29.257143l0 0q0-29.257143 29.257143-29.257143Z"
|
||||
fill="#3DA9D3"></path>
|
||||
</svg>
|
After Width: | Height: | Size: 1.6 KiB |
@ -1 +1,16 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><path d="M918.784 510.208a187.904 187.904 0 0 0-88.832-159.488 156.416 156.416 0 0 0 1.792-22.016 150.784 150.784 0 0 0-210.944-138.496 151.04 151.04 0 0 0-216.32 0 150.784 150.784 0 0 0-210.944 138.496 156.416 156.416 0 0 0 1.792 22.016 187.648 187.648 0 0 0-13.824 309.504v1.536a215.296 215.296 0 0 0 332.8 179.2 215.04 215.04 0 0 0 332.8-179.2v-2.56a187.904 187.904 0 0 0 71.68-148.992z" fill="#FC6B8A"></path><path d="M680.704 479.744A150.528 150.528 0 0 1 572.672 435.2a150.016 150.016 0 0 1-120.064 0 150.528 150.528 0 0 1-108.032 45.824h-11.264v167.168a166.4 166.4 0 0 0 165.888 165.888h33.536a166.4 166.4 0 0 0 165.888-165.888v-169.728a137.216 137.216 0 0 1-17.92 1.28z" fill="#FFFFFF"></path><path d="M510.464 651.264m-33.536 0a33.536 33.536 0 1 0 67.072 0 33.536 33.536 0 1 0-67.072 0Z" fill="#E2006C"></path><path d="M635.904 554.496H614.4v-21.504a12.032 12.032 0 0 0-11.776-11.776h-4.864a12.032 12.032 0 0 0-11.776 11.776v21.504h-21.248a11.776 11.776 0 0 0-11.776 11.52v5.12a11.776 11.776 0 0 0 11.776 11.52h21.248v21.504a12.032 12.032 0 0 0 11.776 11.776h4.864a12.032 12.032 0 0 0 11.776-11.776v-21.504h21.248a11.776 11.776 0 0 0 11.776-11.52v-5.12a11.776 11.776 0 0 0-11.52-11.52zM455.936 554.496H435.2v-21.504a12.032 12.032 0 0 0-11.776-11.776h-4.864a12.032 12.032 0 0 0-11.776 11.776v21.504H384a11.776 11.776 0 0 0-11.776 11.52v5.12a11.776 11.776 0 0 0 11.776 11.52h21.248v21.504a12.032 12.032 0 0 0 11.776 11.776h4.864a12.032 12.032 0 0 0 13.312-11.776v-21.504h21.248a11.52 11.52 0 0 0 11.776-11.52v-5.12a11.52 11.52 0 0 0-12.288-11.52z" fill="#FF5C7A"></path><path d="M600.32 651.008a12.288 12.288 0 0 0-12.288 12.544c0 34.048-34.816 61.696-76.8 61.696s-76.8-27.648-76.8-61.696a12.544 12.544 0 1 0-25.6 0c0 47.616 45.824 86.528 102.4 86.528s102.4-38.912 102.4-86.528a12.544 12.544 0 0 0-13.312-12.544z" fill="#EB53A8"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%">
|
||||
<path
|
||||
d="M918.784 510.208a187.904 187.904 0 0 0-88.832-159.488 156.416 156.416 0 0 0 1.792-22.016 150.784 150.784 0 0 0-210.944-138.496 151.04 151.04 0 0 0-216.32 0 150.784 150.784 0 0 0-210.944 138.496 156.416 156.416 0 0 0 1.792 22.016 187.648 187.648 0 0 0-13.824 309.504v1.536a215.296 215.296 0 0 0 332.8 179.2 215.04 215.04 0 0 0 332.8-179.2v-2.56a187.904 187.904 0 0 0 71.68-148.992z"
|
||||
fill="#FC6B8A"></path>
|
||||
<path
|
||||
d="M680.704 479.744A150.528 150.528 0 0 1 572.672 435.2a150.016 150.016 0 0 1-120.064 0 150.528 150.528 0 0 1-108.032 45.824h-11.264v167.168a166.4 166.4 0 0 0 165.888 165.888h33.536a166.4 166.4 0 0 0 165.888-165.888v-169.728a137.216 137.216 0 0 1-17.92 1.28z"
|
||||
fill="#FFFFFF"></path>
|
||||
<path d="M510.464 651.264m-33.536 0a33.536 33.536 0 1 0 67.072 0 33.536 33.536 0 1 0-67.072 0Z" fill="#E2006C">
|
||||
</path>
|
||||
<path
|
||||
d="M635.904 554.496H614.4v-21.504a12.032 12.032 0 0 0-11.776-11.776h-4.864a12.032 12.032 0 0 0-11.776 11.776v21.504h-21.248a11.776 11.776 0 0 0-11.776 11.52v5.12a11.776 11.776 0 0 0 11.776 11.52h21.248v21.504a12.032 12.032 0 0 0 11.776 11.776h4.864a12.032 12.032 0 0 0 11.776-11.776v-21.504h21.248a11.776 11.776 0 0 0 11.776-11.52v-5.12a11.776 11.776 0 0 0-11.52-11.52zM455.936 554.496H435.2v-21.504a12.032 12.032 0 0 0-11.776-11.776h-4.864a12.032 12.032 0 0 0-11.776 11.776v21.504H384a11.776 11.776 0 0 0-11.776 11.52v5.12a11.776 11.776 0 0 0 11.776 11.52h21.248v21.504a12.032 12.032 0 0 0 11.776 11.776h4.864a12.032 12.032 0 0 0 13.312-11.776v-21.504h21.248a11.52 11.52 0 0 0 11.776-11.52v-5.12a11.52 11.52 0 0 0-12.288-11.52z"
|
||||
fill="#FF5C7A"></path>
|
||||
<path
|
||||
d="M600.32 651.008a12.288 12.288 0 0 0-12.288 12.544c0 34.048-34.816 61.696-76.8 61.696s-76.8-27.648-76.8-61.696a12.544 12.544 0 1 0-25.6 0c0 47.616 45.824 86.528 102.4 86.528s102.4-38.912 102.4-86.528a12.544 12.544 0 0 0-13.312-12.544z"
|
||||
fill="#EB53A8"></path>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 2.0 KiB |
@ -1 +1,8 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><path d="M881.408 664.064V504.32a168.192 168.192 0 0 0-128-162.56l-7.936-1.792v144.896a12.288 12.288 0 0 1-14.592 11.776 170.752 170.752 0 0 0-30.464-2.816h-138.752v-27.648a37.632 37.632 0 0 1 11.776-27.648 175.872 175.872 0 0 0 57.856-135.68A179.2 179.2 0 0 0 460.8 132.352a175.872 175.872 0 0 0-180.992 176.128V409.6h32.256a225.536 225.536 0 0 0 15.872 19.2 36.608 36.608 0 0 1 9.472 25.6v42.496A193.792 193.792 0 0 0 179.2 712.96a197.12 197.12 0 0 0 197.12 166.656h325.12a148.48 148.48 0 0 0 45.568-6.144 217.088 217.088 0 0 0 64.256-31.744 176.896 176.896 0 0 0 18.176-15.616l4.608-4.352a156.16 156.16 0 0 0 47.36-111.872v-35.84c0.512-3.072 0.256-6.656 0-9.984z" fill="#FFD778"></path><path d="M468.736 238.592a40.192 40.192 0 1 0 40.192 40.192 40.192 40.192 0 0 0-40.192-40.192zM323.584 362.752H217.6a34.816 34.816 0 1 0 0 69.376h106.24a34.816 34.816 0 1 0 0-69.376z" fill="#FB813A"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%">
|
||||
<path
|
||||
d="M881.408 664.064V504.32a168.192 168.192 0 0 0-128-162.56l-7.936-1.792v144.896a12.288 12.288 0 0 1-14.592 11.776 170.752 170.752 0 0 0-30.464-2.816h-138.752v-27.648a37.632 37.632 0 0 1 11.776-27.648 175.872 175.872 0 0 0 57.856-135.68A179.2 179.2 0 0 0 460.8 132.352a175.872 175.872 0 0 0-180.992 176.128V409.6h32.256a225.536 225.536 0 0 0 15.872 19.2 36.608 36.608 0 0 1 9.472 25.6v42.496A193.792 193.792 0 0 0 179.2 712.96a197.12 197.12 0 0 0 197.12 166.656h325.12a148.48 148.48 0 0 0 45.568-6.144 217.088 217.088 0 0 0 64.256-31.744 176.896 176.896 0 0 0 18.176-15.616l4.608-4.352a156.16 156.16 0 0 0 47.36-111.872v-35.84c0.512-3.072 0.256-6.656 0-9.984z"
|
||||
fill="#FFD778"></path>
|
||||
<path
|
||||
d="M468.736 238.592a40.192 40.192 0 1 0 40.192 40.192 40.192 40.192 0 0 0-40.192-40.192zM323.584 362.752H217.6a34.816 34.816 0 1 0 0 69.376h106.24a34.816 34.816 0 1 0 0-69.376z"
|
||||
fill="#FB813A"></path>
|
||||
</svg>
|
Before Width: | Height: | Size: 992 B After Width: | Height: | Size: 1.0 KiB |
@ -1 +1,11 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><path d="M954.624 452.864H919.04v-168.96a37.376 37.376 0 0 0-25.6-36.608A36.608 36.608 0 0 0 846.848 281.6v170.24H199.936v-168.96a37.632 37.632 0 0 0-25.6-36.608A36.352 36.352 0 0 0 128 281.6v170.24H92.16a15.616 15.616 0 0 0-15.36 15.872v82.688a15.36 15.36 0 0 0 15.36 15.616h26.88v85.248a135.68 135.68 0 0 0 134.4 136.192h114.432a135.68 135.68 0 0 0 134.4-136.192v-20.992a7.936 7.936 0 0 1 7.68-7.936h25.6a7.68 7.68 0 0 1 7.68 7.936v20.992a135.936 135.936 0 0 0 134.4 136.192H793.6a135.68 135.68 0 0 0 134.4-136.192v-85.248h25.6a15.36 15.36 0 0 0 15.36-15.616v-81.664a15.616 15.616 0 0 0-15.36-15.872" fill="#E5E6E6"></path><path d="M361.216 727.552h-102.4A87.296 87.296 0 0 1 172.8 640v-79.872a61.184 61.184 0 0 1 60.416-61.44h153.6a61.184 61.184 0 0 1 60.416 61.44V640a87.296 87.296 0 0 1-86.528 87.552" fill="#FF5C7A"></path><path d="M685.568 727.552h102.4A87.296 87.296 0 0 0 873.984 640v-79.872a61.184 61.184 0 0 0-60.416-61.44h-153.6a61.184 61.184 0 0 0-60.416 61.44V640a87.296 87.296 0 0 0 86.528 87.552" fill="#2CBAE5"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%">
|
||||
<path
|
||||
d="M954.624 452.864H919.04v-168.96a37.376 37.376 0 0 0-25.6-36.608A36.608 36.608 0 0 0 846.848 281.6v170.24H199.936v-168.96a37.632 37.632 0 0 0-25.6-36.608A36.352 36.352 0 0 0 128 281.6v170.24H92.16a15.616 15.616 0 0 0-15.36 15.872v82.688a15.36 15.36 0 0 0 15.36 15.616h26.88v85.248a135.68 135.68 0 0 0 134.4 136.192h114.432a135.68 135.68 0 0 0 134.4-136.192v-20.992a7.936 7.936 0 0 1 7.68-7.936h25.6a7.68 7.68 0 0 1 7.68 7.936v20.992a135.936 135.936 0 0 0 134.4 136.192H793.6a135.68 135.68 0 0 0 134.4-136.192v-85.248h25.6a15.36 15.36 0 0 0 15.36-15.616v-81.664a15.616 15.616 0 0 0-15.36-15.872"
|
||||
fill="#E5E6E6"></path>
|
||||
<path
|
||||
d="M361.216 727.552h-102.4A87.296 87.296 0 0 1 172.8 640v-79.872a61.184 61.184 0 0 1 60.416-61.44h153.6a61.184 61.184 0 0 1 60.416 61.44V640a87.296 87.296 0 0 1-86.528 87.552"
|
||||
fill="#FF5C7A"></path>
|
||||
<path
|
||||
d="M685.568 727.552h102.4A87.296 87.296 0 0 0 873.984 640v-79.872a61.184 61.184 0 0 0-60.416-61.44h-153.6a61.184 61.184 0 0 0-60.416 61.44V640a87.296 87.296 0 0 0 86.528 87.552"
|
||||
fill="#2CBAE5"></path>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.2 KiB |
@ -1 +1,11 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><path d="M881.92 460.8A335.36 335.36 0 0 0 547.584 125.696h-73.216A335.616 335.616 0 0 0 139.776 460.8v313.6a18.688 18.688 0 0 0 18.432 18.688h41.984c13.568 46.336 37.888 80.384 88.576 80.384h98.304a37.376 37.376 0 0 0 37.376-36.864l1.28-284.672a36.864 36.864 0 0 0-37.12-37.12h-99.84a111.616 111.616 0 0 0-51.2 12.8v-73.216a242.432 242.432 0 0 1 241.664-241.664h67.328a242.176 242.176 0 0 1 241.408 241.664v74.496a110.592 110.592 0 0 0-54.272-14.08h-99.84a36.864 36.864 0 0 0-37.12 37.12v284.672a37.376 37.376 0 0 0 37.376 36.864h98.304c51.2 0 75.008-34.048 88.576-80.384h41.984a18.688 18.688 0 0 0 18.432-18.688z" fill="#45C7DD"></path><path d="M646.141043 825.220963m0.045396-32.511969l0.273801-196.095809q0.045395-32.511968 32.557364-32.466573l1.023999 0.00143q32.511968 0.045395 32.466573 32.557364l-0.273802 196.095809q-0.045395 32.511968-32.557363 32.466573l-1.023999-0.00143q-32.511968-0.045395-32.466573-32.557364Z" fill="#FF5C7A"></path><path d="M307.222608 825.246563m0.045395-32.511969l0.273801-196.095809q0.045395-32.511968 32.557364-32.466573l1.023999 0.00143q32.511968 0.045395 32.466573 32.557364l-0.273801 196.095809q-0.045395 32.511968-32.557364 32.466573l-1.023999-0.00143q-32.511968-0.045395-32.466573-32.557364Z" fill="#FF5C7A"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%">
|
||||
<path
|
||||
d="M881.92 460.8A335.36 335.36 0 0 0 547.584 125.696h-73.216A335.616 335.616 0 0 0 139.776 460.8v313.6a18.688 18.688 0 0 0 18.432 18.688h41.984c13.568 46.336 37.888 80.384 88.576 80.384h98.304a37.376 37.376 0 0 0 37.376-36.864l1.28-284.672a36.864 36.864 0 0 0-37.12-37.12h-99.84a111.616 111.616 0 0 0-51.2 12.8v-73.216a242.432 242.432 0 0 1 241.664-241.664h67.328a242.176 242.176 0 0 1 241.408 241.664v74.496a110.592 110.592 0 0 0-54.272-14.08h-99.84a36.864 36.864 0 0 0-37.12 37.12v284.672a37.376 37.376 0 0 0 37.376 36.864h98.304c51.2 0 75.008-34.048 88.576-80.384h41.984a18.688 18.688 0 0 0 18.432-18.688z"
|
||||
fill="#45C7DD"></path>
|
||||
<path
|
||||
d="M646.141043 825.220963m0.045396-32.511969l0.273801-196.095809q0.045395-32.511968 32.557364-32.466573l1.023999 0.00143q32.511968 0.045395 32.466573 32.557364l-0.273802 196.095809q-0.045395 32.511968-32.557363 32.466573l-1.023999-0.00143q-32.511968-0.045395-32.466573-32.557364Z"
|
||||
fill="#FF5C7A"></path>
|
||||
<path
|
||||
d="M307.222608 825.246563m0.045395-32.511969l0.273801-196.095809q0.045395-32.511968 32.557364-32.466573l1.023999 0.00143q32.511968 0.045395 32.466573 32.557364l-0.273801 196.095809q-0.045395 32.511968-32.557364 32.466573l-1.023999-0.00143q-32.511968-0.045395-32.466573-32.557364Z"
|
||||
fill="#FF5C7A"></path>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.4 KiB |
@ -1 +1,18 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><path d="M510.208 683.264h-114.176l-50.688 209.408H674.816l-50.688-209.408h-113.92z" fill="#FFD778"></path><path d="M535.552 150.528v-28.16a25.6 25.6 0 1 0-51.2 0v28.16a271.872 271.872 0 0 0-244.992 269.568v97.28a25.6 25.6 0 0 0 26.88 26.88h487.936a25.6 25.6 0 0 0 25.6-26.88v-97.28a271.616 271.616 0 0 0-244.224-269.568z" fill="#48CFE5"></path><path d="M125.696 464.64m103.168 0l562.432 0q103.168 0 103.168 103.168l0 15.36q0 103.168-103.168 103.168l-562.432 0q-103.168 0-103.168-103.168l0-15.36q0-103.168 103.168-103.168Z" fill="#2CBAE5"></path><path d="M742.4 537.6a37.632 37.632 0 1 0 37.632 37.632A37.376 37.376 0 0 0 742.4 537.6zM276.736 537.6a37.632 37.632 0 1 0 37.632 37.632A37.632 37.632 0 0 0 276.736 537.6z" fill="#FFD778"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%">
|
||||
<path
|
||||
d="M492.270933 147.729067A255.342933 255.342933 0 0 1 627.2 620.2624v51.2a37.546667 37.546667 0 0 1-25.6 34.133333h-221.866667a44.654933 44.654933 0 0 1-25.6-34.133333v-51.2a256.648533 256.648533 0 0 1 138.1376-472.533333z"
|
||||
fill="#FFA200"></path>
|
||||
<path
|
||||
d="M550.4 534.929067v-76.8h51.2c46.609067 0 51.2-26.786133 51.2-42.666667v-128c0-23.1168-17.2032-42.666667-51.2-42.666667h-213.333333c-42.103467 0-59.733333 21.111467-59.733334 42.666667v76.8h102.4v-68.266667h119.466667v119.466667h-51.2c-60.501333-0.5632-76.8 24.405333-76.8 42.666667v76.8h128z m-62.6688 24.533333a59.733333 59.733333 0 1 1-59.733333 59.733333 59.733333 59.733333 0 0 1 59.733333-59.733333z"
|
||||
fill="#FFF0D3"></path>
|
||||
<path d="M354.133333 739.7376h273.066667v8.533333a128 128 0 0 1-128 128h-17.066667a128 128 0 0 1-128-128v-8.533333z"
|
||||
fill="#5FB5EC"></path>
|
||||
<path
|
||||
d="M746.666667 210.6624h119.466666a17.066667 17.066667 0 0 1 0 34.133333h-119.466666a17.066667 17.066667 0 0 1 0-34.133333z m59.733333-59.733333a17.066667 17.066667 0 0 1 17.066667 17.066666v119.466667a17.066667 17.066667 0 0 1-34.133334 0v-119.466667a17.066667 17.066667 0 0 1 17.066667-17.066666z"
|
||||
fill="#FFE074"></path>
|
||||
<path
|
||||
d="M157.866667 662.929067h119.466666a17.066667 17.066667 0 0 1 0 34.133333h-119.466666a17.066667 17.066667 0 0 1 0-34.133333z m59.733333-59.733334a17.066667 17.066667 0 0 1 17.066667 17.066667v119.466667a17.066667 17.066667 0 0 1-34.133334 0v-119.466667a17.066667 17.066667 0 0 1 17.066667-17.066667z"
|
||||
fill="#FFE074"></path>
|
||||
<path d="M200.533333 662.9376h34.133334v34.133333h-34.133334z" fill="#FFE074"></path>
|
||||
<path d="M789.333333 210.670933h34.133334v34.133334h-34.133334z" fill="#FFE074"></path>
|
||||
</svg>
|
Before Width: | Height: | Size: 838 B After Width: | Height: | Size: 1.8 KiB |
12
imgs/zone/technology_old.svg
Normal file
@ -0,0 +1,12 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%">
|
||||
<path d="M510.208 683.264h-114.176l-50.688 209.408H674.816l-50.688-209.408h-113.92z" fill="#FFD778"></path>
|
||||
<path
|
||||
d="M535.552 150.528v-28.16a25.6 25.6 0 1 0-51.2 0v28.16a271.872 271.872 0 0 0-244.992 269.568v97.28a25.6 25.6 0 0 0 26.88 26.88h487.936a25.6 25.6 0 0 0 25.6-26.88v-97.28a271.616 271.616 0 0 0-244.224-269.568z"
|
||||
fill="#48CFE5"></path>
|
||||
<path
|
||||
d="M125.696 464.64m103.168 0l562.432 0q103.168 0 103.168 103.168l0 15.36q0 103.168-103.168 103.168l-562.432 0q-103.168 0-103.168-103.168l0-15.36q0-103.168 103.168-103.168Z"
|
||||
fill="#2CBAE5"></path>
|
||||
<path
|
||||
d="M742.4 537.6a37.632 37.632 0 1 0 37.632 37.632A37.376 37.376 0 0 0 742.4 537.6zM276.736 537.6a37.632 37.632 0 1 0 37.632 37.632A37.632 37.632 0 0 0 276.736 537.6z"
|
||||
fill="#FFD778"></path>
|
||||
</svg>
|
After Width: | Height: | Size: 907 B |
@ -1 +1,11 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><path d="M271.616 247.808a212.224 212.224 0 0 0-49.664 172.8l25.6 126.72c56.832 21.76 60.16 87.552 67.328 149.248a1167.872 1167.872 0 0 1 190.208-14.08 1247.488 1247.488 0 0 1 196.096 14.08c7.68-61.696 4.352-126.72 59.904-148.736l25.6-128a211.712 211.712 0 0 0-49.92-172.288 218.624 218.624 0 0 0-165.12-74.752h-134.912a218.624 218.624 0 0 0-165.12 74.752" fill="#FFB161"></path><path d="M505.088 412.672l-34.816-34.56a19.456 19.456 0 0 0-27.392 27.392l25.6 25.6-25.6 25.6a19.456 19.456 0 0 0 27.392 27.392l34.816-34.56 35.072 34.56a18.688 18.688 0 0 0 13.568 5.632 19.456 19.456 0 0 0 13.824-33.024l-25.6-25.6 25.6-25.6a19.456 19.456 0 0 0-13.824-33.024 18.688 18.688 0 0 0-13.568 5.632z" fill="#FFE494"></path><path d="M822.016 482.56a130.816 130.816 0 0 0-133.888 128v68.864l-368.128 1.536v-69.376a130.304 130.304 0 0 0-120.32-128h-13.568A81.92 81.92 0 0 0 102.4 563.2a76.8 76.8 0 0 0 0 13.312 79.104 79.104 0 0 0 38.912 54.784l8.96 4.352h2.304a25.6 25.6 0 0 1 15.36 22.016v63.744a112.384 112.384 0 0 0 80.896 105.472 51.2 51.2 0 0 0 98.816 5.888h313.088a51.2 51.2 0 0 0 98.816-5.888 112.384 112.384 0 0 0 79.104-105.472V650.752a25.6 25.6 0 0 1 8.192-11.52h1.536l4.608-2.816a80.384 80.384 0 0 0 51.2-61.44v-12.032a81.92 81.92 0 0 0-83.712-79.616" fill="#FB952C"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%">
|
||||
<path
|
||||
d="M271.616 247.808a212.224 212.224 0 0 0-49.664 172.8l25.6 126.72c56.832 21.76 60.16 87.552 67.328 149.248a1167.872 1167.872 0 0 1 190.208-14.08 1247.488 1247.488 0 0 1 196.096 14.08c7.68-61.696 4.352-126.72 59.904-148.736l25.6-128a211.712 211.712 0 0 0-49.92-172.288 218.624 218.624 0 0 0-165.12-74.752h-134.912a218.624 218.624 0 0 0-165.12 74.752"
|
||||
fill="#FFB161"></path>
|
||||
<path
|
||||
d="M505.088 412.672l-34.816-34.56a19.456 19.456 0 0 0-27.392 27.392l25.6 25.6-25.6 25.6a19.456 19.456 0 0 0 27.392 27.392l34.816-34.56 35.072 34.56a18.688 18.688 0 0 0 13.568 5.632 19.456 19.456 0 0 0 13.824-33.024l-25.6-25.6 25.6-25.6a19.456 19.456 0 0 0-13.824-33.024 18.688 18.688 0 0 0-13.568 5.632z"
|
||||
fill="#FFE494"></path>
|
||||
<path
|
||||
d="M822.016 482.56a130.816 130.816 0 0 0-133.888 128v68.864l-368.128 1.536v-69.376a130.304 130.304 0 0 0-120.32-128h-13.568A81.92 81.92 0 0 0 102.4 563.2a76.8 76.8 0 0 0 0 13.312 79.104 79.104 0 0 0 38.912 54.784l8.96 4.352h2.304a25.6 25.6 0 0 1 15.36 22.016v63.744a112.384 112.384 0 0 0 80.896 105.472 51.2 51.2 0 0 0 98.816 5.888h313.088a51.2 51.2 0 0 0 98.816-5.888 112.384 112.384 0 0 0 79.104-105.472V650.752a25.6 25.6 0 0 1 8.192-11.52h1.536l4.608-2.816a80.384 80.384 0 0 0 51.2-61.44v-12.032a81.92 81.92 0 0 0-83.712-79.616"
|
||||
fill="#FB952C"></path>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.4 KiB |
128
live/info.md
@ -1,16 +1,16 @@
|
||||
# 直播间基本信息
|
||||
|
||||
## 用户直播间状态
|
||||
## 获取用户对应的直播间状态
|
||||
|
||||
> http://api.live.bilibili.com/room/v1/Room/getRoomInfoOld
|
||||
|
||||
*方式:GET*
|
||||
*请求方式:GET*
|
||||
|
||||
**参数:**
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ----------- | ------ | ---- |
|
||||
| mid | url | 目标用户UID | 必要 | |
|
||||
| mid | num | 目标用户UID | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -20,29 +20,35 @@
|
||||
| ------- | ---- | -------- | --------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | 作用尚不明确 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------------- | ---- | ------------- | ------------------------ |
|
||||
| roomStatus | num | 直播间状态 | 0:无房间<br />1:有房间 |
|
||||
| roundStatus | num | 轮播状态 | 0:未轮播<br />1:轮播 |
|
||||
| liveStatus | num | 直播状态 | 0:未开播<br />1:直播中 |
|
||||
| url | str | 直播间网页url | |
|
||||
| title | str | 直播间标题 | |
|
||||
| cover | str | 直播间封面 | |
|
||||
| online | num | 直播间人气 | 值为上次直播刷新 |
|
||||
| roomid | num | 直播间ID | |
|
||||
| broadcast_type | num | 0 | |
|
||||
| online_hidden | num | 0 | |
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------------- | ---- | ---------------- | ------------------------ |
|
||||
| roomStatus | num | 直播间状态 | 0:无房间<br />1:有房间 |
|
||||
| roundStatus | num | 轮播状态 | 0:未轮播<br />1:轮播 |
|
||||
| liveStatus | num | 直播状态 | 0:未开播<br />1:直播中 |
|
||||
| url | str | 直播间网页url | |
|
||||
| title | str | 直播间标题 | |
|
||||
| cover | str | 直播间封面 | |
|
||||
| online | num | 直播间人气 | 值为上次直播刷新 |
|
||||
| roomid | num | 直播间ID(短号) | |
|
||||
| broadcast_type | num | 0 | |
|
||||
| online_hidden | num | 0 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询用户`UID=322892`的直播间信息
|
||||
|
||||
http://api.live.bilibili.com/room/v1/Room/getRoomInfoOld?mid=322892
|
||||
```shell
|
||||
curl -G 'http://api.live.bilibili.com/room/v1/Room/getRoomInfoOld' \
|
||||
--data-urlencode 'mid=322892'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -64,3 +70,89 @@ http://api.live.bilibili.com/room/v1/Room/getRoomInfoOld?mid=322892
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 获取房间页初始化信息
|
||||
|
||||
> http://api.live.bilibili.com/room/v1/Room/room_init
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ----------- | ------ | ---- |
|
||||
| id | num | 目标直播间号(短号) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | --------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />60004:直播间不存在 |
|
||||
| msg | str | 错误信息 | 默认为ok |
|
||||
| message | str | 错误信息 | 默认为ok |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------------- | ---- | ------------- | ------------------------ |
|
||||
| room_id | num | 直播间真实ID | |
|
||||
| short_id | num | 直播间ID(短号) | |
|
||||
| uid | num | 主播用户UID | |
|
||||
| need_p2p | num | 是否p2p | |
|
||||
| is_hidden | bool | 是否隐藏 | |
|
||||
| is_locked | bool | 是否锁定 | |
|
||||
| is_portrait | bool | 是否竖屏 | |
|
||||
| live_status | num | 直播状态 | 0:未开播<br />1:直播中 |
|
||||
| hidden_till | num | 隐藏时间戳 | |
|
||||
| lock_till | num | 锁定时间戳 | |
|
||||
| encrypted | bool | 是否加密 | |
|
||||
| pwd_verified | bool | 加密房间是否通过密码验证 | `encrypted`=true时才有意义 |
|
||||
| live_time | num | 开播时长 | |
|
||||
| room_shield | num | 未知 | |
|
||||
| is_sp | num | 是否为特殊直播间 | 0:普通直播间<br />1:付费直播间 |
|
||||
| special_type | num | 特殊直播间标志 | 0:普通直播间<br />1:付费直播间<br />2:拜年祭直播间 |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询直播间`ID=76`的直播间信息
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.live.bilibili.com/room/v1/Room/room_init' \
|
||||
--data-urlencode 'id=76'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code":0,
|
||||
"msg":"ok",
|
||||
"message":"ok",
|
||||
"data":{
|
||||
"room_id":14073662,
|
||||
"short_id":76,
|
||||
"uid":50333369,
|
||||
"need_p2p":0,
|
||||
"is_hidden":false,
|
||||
"is_locked":false,
|
||||
"is_portrait":false,
|
||||
"live_status":1,
|
||||
"hidden_till":0,
|
||||
"lock_till":0,
|
||||
"encrypted":false,
|
||||
"pwd_verified":false,
|
||||
"live_time":1602151186,
|
||||
"room_shield":1,
|
||||
"is_sp":0,
|
||||
"special_type":0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
210
live/live_area.md
Normal file
@ -0,0 +1,210 @@
|
||||
# 直播间分区
|
||||
|
||||
## 获取全部直播间分区列表
|
||||
|
||||
> http://api.live.bilibili.com/room/v1/Area/getList
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
直播分区共有两级,分别是父分区和子分区
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ------ | ---------- | ------------- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| msg | str | 错误信息 | 默认为success |
|
||||
| message | str | 错误信息 | 默认为success |
|
||||
| data | array | 父分区列表 | |
|
||||
|
||||
`data`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------- | ---- |
|
||||
| 0 | obj | 父分区1 | |
|
||||
| n | obj | 父分区(n+1) | |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`data`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ---------- | ---- |
|
||||
| id | num | 父分区ID | |
|
||||
| name | name | 父分区名 | |
|
||||
| list | list | 子分区列表 | |
|
||||
|
||||
`data`数组中的对象中的`list`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------- | ---- |
|
||||
| 0 | obj | 子分区1 | |
|
||||
| n | obj | 子分区(n+1) | |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`list`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | ----------------- | ---------------- |
|
||||
| id | str | 子分区ID | |
|
||||
| parent_id | str | 父分区ID | |
|
||||
| old_area_id | str | 旧分区ID | |
|
||||
| name | str | 子分区名 | |
|
||||
| act_id | str | 0 | **作用尚不明确** |
|
||||
| pk_status | str | ??? | **作用尚不明确** |
|
||||
| hot_status | num | 是否为热门分区 | 0:否<br />1:是 |
|
||||
| lock_status | str | 0 | **作用尚不明确** |
|
||||
| pic | str | 子分区标志图片url | |
|
||||
| parent_name | str | 父分区名 | |
|
||||
| area_type | num | | |
|
||||
|
||||
**示例:**
|
||||
|
||||
如想在`网游`父分区下的`英雄联盟`分区开播,则查到子分区ID为`86`
|
||||
|
||||
```shell
|
||||
curl 'http://api.live.bilibili.com/room/v1/Area/getList'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"message": "success",
|
||||
"data": [
|
||||
{
|
||||
"id": 2,
|
||||
"name": "网游",
|
||||
"list": [
|
||||
{
|
||||
"id": "86",
|
||||
"parent_id": "2",
|
||||
"old_area_id": "4",
|
||||
"name": "英雄联盟",
|
||||
"act_id": "0",
|
||||
"pk_status": "0",
|
||||
"hot_status": 1,
|
||||
"lock_status": "0",
|
||||
"pic": "http://i0.hdslb.com/bfs/vc/dcfb14f14ec83e503147a262e7607858b05d7ac0.png",
|
||||
"parent_name": "网游",
|
||||
"area_type": 0
|
||||
},
|
||||
{
|
||||
"id": "252",
|
||||
"parent_id": "2",
|
||||
"old_area_id": "3",
|
||||
"name": "逃离塔科夫",
|
||||
"act_id": "0",
|
||||
"pk_status": "0",
|
||||
"hot_status": 1,
|
||||
"lock_status": "0",
|
||||
"pic": "http://i0.hdslb.com/bfs/vc/762a7de3dd5fe8165d1d55b232484a017941592f.png",
|
||||
"parent_name": "网游",
|
||||
"area_type": 0
|
||||
},
|
||||
{
|
||||
"id": "80",
|
||||
"parent_id": "2",
|
||||
"old_area_id": "1",
|
||||
"name": "绝地求生",
|
||||
"act_id": "0",
|
||||
"pk_status": "0",
|
||||
"hot_status": 1,
|
||||
"lock_status": "0",
|
||||
"pic": "http://i0.hdslb.com/bfs/vc/43ca83fdcd10505eaeef1b76cf8ce642a53b94da.png",
|
||||
"parent_name": "网游",
|
||||
"area_type": 0
|
||||
},
|
||||
…………
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"name": "手游",
|
||||
"list": [
|
||||
{
|
||||
"id": "35",
|
||||
"parent_id": "3",
|
||||
"old_area_id": "12",
|
||||
"name": "王者荣耀",
|
||||
"act_id": "0",
|
||||
"pk_status": "0",
|
||||
"hot_status": 1,
|
||||
"lock_status": "0",
|
||||
"pic": "http://i0.hdslb.com/bfs/vc/0fefa924760b2dd492a12dddafe179bfa1216918.png",
|
||||
"parent_name": "手游",
|
||||
"area_type": 0
|
||||
},
|
||||
…………
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"name": "单机",
|
||||
"list": [
|
||||
{
|
||||
"id": "236",
|
||||
"parent_id": "6",
|
||||
"old_area_id": "1",
|
||||
"name": "主机游戏",
|
||||
"act_id": "0",
|
||||
"pk_status": "0",
|
||||
"hot_status": 1,
|
||||
"lock_status": "0",
|
||||
"pic": "http://i0.hdslb.com/bfs/vc/edb636ee59f902e3134a2790545045bddd70978e.png",
|
||||
"parent_name": "单机",
|
||||
"area_type": 0
|
||||
},
|
||||
…………
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"name": "娱乐",
|
||||
"list": [
|
||||
{
|
||||
"id": "21",
|
||||
"parent_id": "1",
|
||||
"old_area_id": "10",
|
||||
"name": "视频唱见",
|
||||
"act_id": "0",
|
||||
"pk_status": "1",
|
||||
"hot_status": 1,
|
||||
"lock_status": "0",
|
||||
"pic": "http://i0.hdslb.com/bfs/vc/72b93ddafdf63c9f0b626ad546847a3c03c92b6f.png",
|
||||
"cate_id": "12",
|
||||
"parent_name": "娱乐",
|
||||
"area_type": 0
|
||||
},
|
||||
…………
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"name": "电台",
|
||||
"list": [
|
||||
{
|
||||
"id": "190",
|
||||
"parent_id": "5",
|
||||
"old_area_id": "10",
|
||||
"name": "唱见电台",
|
||||
"act_id": "0",
|
||||
"pk_status": "0",
|
||||
"hot_status": 0,
|
||||
"lock_status": "0",
|
||||
"pic": "http://i0.hdslb.com/bfs/vc/d22d7fafbf9b24e2bc3ce1df5eb9f006e6035e5d.png",
|
||||
"parent_name": "电台",
|
||||
"area_type": 0
|
||||
},
|
||||
…………
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
160
live/live_stream.md
Normal file
@ -0,0 +1,160 @@
|
||||
# 直播间视频流
|
||||
|
||||
## 根据真实直播间号获取直播视频流
|
||||
|
||||
> http://api.live.bilibili.com/room/v1/Room/playUrl
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ----------- | ------ | ---- |
|
||||
| cid | num | 目标真实直播间号 | 必要 | 直播间的`room_id`(非短号) |
|
||||
| platform | str | 直播流格式 | 非必要 | h5:hls方式<br />web:http-flv方式<br />默认为http-flv方式 |
|
||||
| quality | num | 画质 | 非必要 | `qn`与`quality`任选其一<br />2:流畅<br />3:高清<br />4:原画 |
|
||||
| qn | str | 画质 | 非必要 | `qn`与`quality`任选其一<br />80:流畅<br />150:高清<br />400:蓝光<br />10000:原画 |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | --------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-400:参数错误<br />19002003:房间信息不存在 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | str | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------------- | ---- | ------------- | ------------------------ |
|
||||
| current_quality | num | 当前画质代码`qn` | |
|
||||
| accept_quality | array | 可选画质数参数 | |
|
||||
| current_qn | num | 当前画质代码`quality` | |
|
||||
| quality_description | array | 可选画质参数`quality` | |
|
||||
| durl | array | 直播流url组 | |
|
||||
|
||||
`accept_quality`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------------- | ---- |
|
||||
| 0 | str | `qn`画质代码1 | |
|
||||
| n | str | `qn`画质代码(n+1) | |
|
||||
| …… | str | …… | …… |
|
||||
|
||||
`quality_description`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------- | ---- |
|
||||
| 0 | obj | 画质代码1 | |
|
||||
| n | obj | 画质代码(n+1) | |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`quality_description`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | -------------------- | ---- |
|
||||
| qn | num | 画质代码 | |
|
||||
| desc | str | 该代码对应的画质名称 | |
|
||||
|
||||
`durl`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------- | ---- |
|
||||
| 0 | obj | 主线服务器 | |
|
||||
| n | obj | 备线n服务器 | |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`durl`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------------- | ---- | ------------- | ------------------------ |
|
||||
| url | str | 直播流url | flv或m3u8格式<br />**注:带有转义** |
|
||||
| length | num | 0 | 作用尚不明确 |
|
||||
| order | num | 服务器线路序号 | |
|
||||
| stream_type | num | 0 | 作用尚不明确 |
|
||||
| p2p_type | num | 0 | 作用尚不明确 |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询直播间`CID=14073662`的直播间信息
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.live.bilibili.com/room/v1/Room/playUrl' \
|
||||
--data-urlencode 'id=14073662' \
|
||||
--data-urlencode 'qn=10000' \
|
||||
--data-urlencode 'platform=web'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"current_quality": 3,
|
||||
"accept_quality": [
|
||||
"4",
|
||||
"3",
|
||||
"2"
|
||||
],
|
||||
"current_qn": 3,
|
||||
"quality_description": [
|
||||
{
|
||||
"qn": 4,
|
||||
"desc": "原画"
|
||||
},
|
||||
{
|
||||
"qn": 3,
|
||||
"desc": "高清"
|
||||
},
|
||||
{
|
||||
"qn": 2,
|
||||
"desc": "流畅"
|
||||
}
|
||||
],
|
||||
"durl": [
|
||||
{
|
||||
"url": "https://d1--cn-gotcha04.bilivideo.com/live-bvc/601131/live_14073662_bs_3699814_1500.flv?cdn=cn-gotcha04&expires=1602496530&len=0&oi=1939228219&pt=&qn=150&trid=e6540d81a5d04c2ea459c46ebe77472a&sigparams=cdn,expires,len,oi,pt,qn,trid&sign=20e4ac695fbdd1d11d5dac4f93caa783&ptype=0&src=9&sl=1&order=1",
|
||||
"length": 0,
|
||||
"order": 1,
|
||||
"stream_type": 0,
|
||||
"p2p_type": 0
|
||||
},
|
||||
{
|
||||
"url": "https://d1--cn-gotcha01.bilivideo.com/live-bvc/757951/live_14073662_bs_3699814_1500.flv?cdn=cn-gotcha01&expires=1602496530&len=0&oi=1939228219&pt=&qn=150&trid=e6540d81a5d04c2ea459c46ebe77472a&sigparams=cdn,expires,len,oi,pt,qn,trid&sign=9deea67bb9e9c1f0fa3886a34aa09473&ptype=0&src=9&sl=1&order=2",
|
||||
"length": 0,
|
||||
"order": 2,
|
||||
"stream_type": 0,
|
||||
"p2p_type": 0
|
||||
},
|
||||
{
|
||||
"url": "https://d1--cn-gotcha04.bilivideo.com/live-bvc/982058/live_14073662_bs_3699814_1500.flv?cdn=cn-gotcha04&expires=1602496530&len=0&oi=1939228219&pt=&qn=150&trid=e6540d81a5d04c2ea459c46ebe77472a&sigparams=cdn,expires,len,oi,pt,qn,trid&sign=8753b270960034660184d975d86c0161&ptype=0&src=9&sl=1&order=3",
|
||||
"length": 0,
|
||||
"order": 3,
|
||||
"stream_type": 0,
|
||||
"p2p_type": 0
|
||||
},
|
||||
{
|
||||
"url": "https://d1--cn-gotcha04.bilivideo.com/live-bvc/139554/live_14073662_bs_3699814_1500.flv?cdn=cn-gotcha04&expires=1602496530&len=0&oi=1939228219&pt=&qn=150&trid=e6540d81a5d04c2ea459c46ebe77472a&sigparams=cdn,expires,len,oi,pt,qn,trid&sign=cf93474e923c9ba8288c45d954f81045&ptype=0&src=9&sl=1&order=4",
|
||||
"length": 0,
|
||||
"order": 4,
|
||||
"stream_type": 0,
|
||||
"p2p_type": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 播放直播流媒体
|
||||
|
||||
以上获得到`url`字段中的值为直播流url,例如`https://d1--cn-gotcha04.bilivideo.com/live-bvc/601131/live_14073662_bs_3699814_1500.flv?cdn=cn-gotcha04&expires=1602496530&len=0&oi=1939228219&pt=&qn=150&trid=e6540d81a5d04c2ea459c46ebe77472a&sigparams=cdn,expires,len,oi,pt,qn,trid&sign=20e4ac695fbdd1d11d5dac4f93caa783&ptype=0&src=9&sl=1&order=1`导入播放器即可播放直播
|
262
live/manage.md
Normal file
@ -0,0 +1,262 @@
|
||||
# 直播间管理
|
||||
|
||||
**本页所有操作均需登录(Cookie)**
|
||||
|
||||
## 更新直播间标题
|
||||
|
||||
> http://api.live.bilibili.com/room/v1/Room/update
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
鉴权方式:Cookie中`bili_jct`的值正确并与`csrf`相同
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------- | ---- | ------------------------ | ------ | -------------------- |
|
||||
| room_id | num | 直播间ID | 必要 | 必须为自己的直播间ID |
|
||||
| title | str | 直播间标题 | 必要 | 最大20字符 |
|
||||
| csrf | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ------ | -------- | ------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />65530:token错误(登录错误)<br />1:错误 |
|
||||
| msg | str | 错误信息 | 默认为ok |
|
||||
| message | str | 错误信息 | 默认为ok |
|
||||
| data | array | 空 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
修改直播间`10352053`标题为`测试`
|
||||
|
||||
```shell
|
||||
curl 'http://api.live.bilibili.com/room/v1/Room/update' \
|
||||
--data-urlencode 'room_id=10352053' \
|
||||
--data-urlencode 'title=测试' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx;bili_jct=xx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "ok",
|
||||
"message": "ok",
|
||||
"data": []
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 开始直播
|
||||
|
||||
> http://api.live.bilibili.com/room/v1/Room/startLive
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
鉴权方式:Cookie中`bili_jct`的值正确并与`csrf`相同
|
||||
|
||||
开播时必须有分区选择,开播后返回推流地址
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| -------- | ---- | ------------------------ | ------ | ----------------------------------- |
|
||||
| room_id | num | 直播间ID | 必要 | 必须为自己的直播间ID |
|
||||
| area_v2 | num | 直播分区ID(子分区ID) | 必要 | 详见[直播分区](live_area.md) |
|
||||
| platform | str | 直播平台 | 必要 | web端:<br />bililink:android_link |
|
||||
| csrf | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />65530:token错误(登录错误)<br />1:错误<br />60009:分区不存在<br />**(其他错误码有待补充)** |
|
||||
| msg | str | 错误信息 | 默认为空 |
|
||||
| message | str | 错误信息 | 默认为空 |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ----- | ---------------- | ---------------------- |
|
||||
| change | num | 是否改变状态 | 0:未改变<br />1:改变 |
|
||||
| status | str | LIVE | |
|
||||
| room_type | num | 0 | 作用尚不明确 |
|
||||
| rtmp | obj | RTMP推流地址信息 | |
|
||||
| protocols | array | ??? | 作用尚不明确 |
|
||||
| try_time | str | ??? | 作用尚不明确 |
|
||||
| live_key | str | ??? | 作用尚不明确 |
|
||||
| notice | obj | ??? | 作用尚不明确 |
|
||||
|
||||
`data`中的`rtmp`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | -------------------------------- | ------------ |
|
||||
| addr | str | RTMP推流(发送)地址 | **重要** |
|
||||
| code | str | RTMP推流参数(密钥) | **重要** |
|
||||
| new_link | str | 获取CDN推流ip地址重定向信息的url | 没啥用 |
|
||||
| provider | str | ??? | 作用尚不明确 |
|
||||
|
||||
`data`中的`protocols`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------ | ------------ |
|
||||
| 0 | obj | ??? | 作用尚不明确 |
|
||||
|
||||
`data`中的`protocols`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | -------------------------------- | ------------ |
|
||||
| protocol | str | rtmp | 作用尚不明确 |
|
||||
| addr | str | RTMP推流(发送)地址 | |
|
||||
| code | str | RTMP推流参数(密钥) | |
|
||||
| new_link | str | 获取CDN推流ip地址重定向信息的url | |
|
||||
| provider | str | txy | 作用尚不明确 |
|
||||
|
||||
`data`中的`notice`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | ---- | ------------ |
|
||||
| type | num | 1 | 作用尚不明确 |
|
||||
| status | num | 0 | 作用尚不明确 |
|
||||
| title | str | 空 | 作用尚不明确 |
|
||||
| msg | str | 空 | 作用尚不明确 |
|
||||
| button_text | str | 空 | 作用尚不明确 |
|
||||
| button_url | str | 空 | 作用尚不明确 |
|
||||
|
||||
**示例:**
|
||||
|
||||
以`27`作为分区ID开播直播间`10352053`
|
||||
|
||||
其中`"data"."rtmp"."addr"`为推流地址
|
||||
|
||||
`"data"."rtmp"."code"`为推流参数
|
||||
|
||||
```shell
|
||||
curl 'http://api.live.bilibili.com/room/v1/Room/startLive' \
|
||||
--data-urlencode 'room_id=10352053' \
|
||||
--data-urlencode 'area_v2=27' \
|
||||
--data-urlencode 'platform=pc' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx;bili_jct=xx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "",
|
||||
"message": "",
|
||||
"data": {
|
||||
"change": 1,
|
||||
"status": "LIVE",
|
||||
"room_type": 0,
|
||||
"rtmp": {
|
||||
"addr": "rtmp://txy.live-send.acg.tv/live-txy/",
|
||||
"code": "?streamname=live_293793435_1567354&key=***",
|
||||
"new_link": "http://tcdns.myqcloud.com:8086/bilibili_redirect?up_rtmp=txy.live-send.acg.tv%2Flive-txy%2F%3Fstreamname%3Dlive_293793435_1567354%26key%3D***",
|
||||
"provider": "txy"
|
||||
},
|
||||
"protocols": [
|
||||
{
|
||||
"protocol": "rtmp",
|
||||
"addr": "rtmp://txy.live-send.acg.tv/live-txy/",
|
||||
"code": "?streamname=live_293793435_1567354&key=***",
|
||||
"new_link": "http://tcdns.myqcloud.com:8086/bilibili_redirect?up_rtmp=txy.live-send.acg.tv%2Flive-txy%2F%3Fstreamname%3Dlive_293793435_1567354%26key%3D***",
|
||||
"provider": "txy"
|
||||
}
|
||||
],
|
||||
"try_time": "0000-00-00 00:00:00",
|
||||
"live_key": "l:one:live:record:10352053:1589344980",
|
||||
"notice": {
|
||||
"type": 1,
|
||||
"status": 0,
|
||||
"title": "",
|
||||
"msg": "",
|
||||
"button_text": "",
|
||||
"button_url": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 关闭直播
|
||||
|
||||
> http://api.live.bilibili.com/room/v1/Room/stopLive
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
鉴权方式:Cookie中`bili_jct`的值正确并与`csrf`相同
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------- | ---- | ------------------------ | ------ | -------------------- |
|
||||
| room_id | num | 直播间ID | 必要 | 必须为自己的直播间ID |
|
||||
| csrf | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />65530:token错误(登录错误)<br />-400:没有权限<br />**(其他错误码有待补充)** |
|
||||
| msg | str | 错误信息 | 默认为空 |
|
||||
| message | str | 错误信息 | 默认为空 |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------ | ---- | ------------ | ---------------------- |
|
||||
| change | num | 是否改变状态 | 0:未改变<br />1:改变 |
|
||||
| status | str | PREPARING | |
|
||||
|
||||
**示例:**
|
||||
|
||||
关闭直播间`10352053`的直播
|
||||
|
||||
```shell
|
||||
curl 'http://api.live.bilibili.com/room/v1/Room/stopLive' \
|
||||
--data-urlencode 'room_id=10352053' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx;bili_jct=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "",
|
||||
"message": "",
|
||||
"data": {
|
||||
"change": 1,
|
||||
"status": "PREPARING"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
168
live/message_stream.md
Normal file
@ -0,0 +1,168 @@
|
||||
# 直播间信息流
|
||||
|
||||
|
||||
|
||||
## 数据包格式
|
||||
|
||||
数据包为websocket,格式为头部数据+正文数据
|
||||
|
||||
操作流程:
|
||||
|
||||
发送认证包->接收认证包回应->接收普通包&(每30秒发送心跳包->接收心跳回应)
|
||||
|
||||
头部格式:
|
||||
|
||||
| 偏移量 | 长度 | 类型 | 含义 |
|
||||
| ------ | ---- | ------ | ------------------------------------------------------------ |
|
||||
| 0 | 4 | uint32 | 封包总大小(头部大小+正文大小) |
|
||||
| 4 | 2 | uint16 | 头部大小(一般为0x0010,16字节) |
|
||||
| 6 | 2 | uint16 | 协议版本:<br />0普通包正文不使用压缩 <br />1心跳及认证包正文不使用压缩<br />2普通包正文使用zlib压缩 |
|
||||
| 8 | 4 | uint32 | 操作码(封包类型) |
|
||||
| 12 | 4 | uint32 | sequence,可以取常数1 |
|
||||
|
||||
操作码:
|
||||
|
||||
| 代码 | 含义 |
|
||||
| ---- | -------------------- |
|
||||
| 2 | 心跳包 |
|
||||
| 3 | 心跳包回复(人气值) |
|
||||
| 5 | 普通包(命令) |
|
||||
| 7 | 认证包 |
|
||||
| 8 | 认证包回复 |
|
||||
|
||||
### 认证包
|
||||
|
||||
方式:(上行)
|
||||
|
||||
连接成功后5秒内发送,否则强制断开连接
|
||||
|
||||
正文:
|
||||
|
||||
json格式
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ---- | ------------ | -------------- |
|
||||
| uid | num | 用户UID | 不可为0 |
|
||||
| roomid | num | 加入房间的ID | |
|
||||
| protover | num | 协议版本 | 现在是2 |
|
||||
| platform | str | 平台标识 | 可为"web" |
|
||||
| clientver | str | 客户端版本 | 现在是"1.10.3" |
|
||||
| type | num | 必须为2 | |
|
||||
| key | str | 认证秘钥 | |
|
||||
|
||||
示例:
|
||||
|
||||
```
|
||||
00000000 00 00 00 f0 00 10 00 01 00 00 00 07 00 00 00 01 |................|
|
||||
00000010 7b 22 75 69 64 22 3a 32 39 33 37 39 33 34 33 35 |{"uid":293793435|
|
||||
00000020 2c 22 72 6f 6f 6d 69 64 22 3a 32 31 36 38 36 32 |,"roomid":216862|
|
||||
00000030 33 37 2c 22 70 72 6f 74 6f 76 65 72 22 3a 32 2c |37,"protover":2,|
|
||||
00000040 22 70 6c 61 74 66 6f 72 6d 22 3a 22 77 65 62 22 |"platform":"web"|
|
||||
00000050 2c 22 63 6c 69 65 6e 74 76 65 72 22 3a 22 31 2e |,"clientver":"1.|
|
||||
00000060 31 30 2e 33 22 2c 22 74 79 70 65 22 3a 32 2c 22 |10.3","type":2,"|
|
||||
00000070 6b 65 79 22 3a 22 43 6f 4b 68 5f 61 49 46 42 6c |key":"CoKh_aIFBl|
|
||||
00000080 51 32 4c 57 77 64 79 4e 43 6b 2d 69 5f 42 76 72 |Q2LWwdyNCk-i_Bvr|
|
||||
00000090 64 72 72 55 4d 32 78 57 6c 74 62 35 77 6b 54 50 |drrUM2xWltb5wkTP|
|
||||
000000a0 4e 72 44 55 49 2d 73 46 32 41 56 56 4f 44 78 43 |NrDUI-sF2AVVODxC|
|
||||
000000b0 52 42 39 69 64 76 74 34 46 32 4d 50 31 45 4a 6c |RB9idvt4F2MP1EJl|
|
||||
000000c0 4d 68 49 57 6b 31 5a 69 73 67 6e 32 67 67 66 6c |MhIWk1Zisgn2ggfl|
|
||||
000000d0 68 72 65 6e 4f 4b 65 39 7a 56 65 6d 78 35 7a 5f |hrenOKe9zVemx5z_|
|
||||
000000e0 5a 4d 43 61 55 77 4c 31 65 70 6d 7a 5a 53 22 7d |ZMCaUwL1epmzZS"}|
|
||||
```
|
||||
|
||||
|
||||
|
||||
### 认证包回复
|
||||
|
||||
方式:(下行)
|
||||
|
||||
在认证包发送成功后就会收到
|
||||
|
||||
json格式
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------ | --------- |
|
||||
| code | num | 返回值 | 0认证成功 |
|
||||
|
||||
示例:
|
||||
|
||||
```
|
||||
00000000 00 00 00 1a 00 10 00 01 00 00 00 08 00 00 00 01 |................|
|
||||
00000010 7b 22 63 6f 64 65 22 3a 30 7d |{"code":0}|
|
||||
```
|
||||
|
||||
|
||||
|
||||
### 心跳包
|
||||
|
||||
方式:(上行)
|
||||
|
||||
30秒左右发送一次,否则60秒后会被强制断开连接
|
||||
|
||||
正文:
|
||||
|
||||
特定字符
|
||||
|
||||
[object Object]
|
||||
|
||||
示例:
|
||||
|
||||
```
|
||||
00000000 00 00 00 1f 00 10 00 01 00 00 00 02 00 00 00 01 |................|
|
||||
00000010 5b 6f 62 6a 65 63 74 20 4f 62 6a 65 63 74 5d |[object Object]|
|
||||
```
|
||||
|
||||
### 心跳回应(人气值)
|
||||
|
||||
方式:(下行)
|
||||
|
||||
在心跳包发送成功后就会收到
|
||||
|
||||
正文:
|
||||
|
||||
uint32整数,代表房间当前的人气值
|
||||
|
||||
示例:
|
||||
|
||||
```
|
||||
00000000 00 00 00 14 00 10 00 01 00 00 00 03 00 00 00 01 |................|
|
||||
00000010 00 00 14 83 |....|
|
||||
```
|
||||
|
||||
可见房间内人气值为5251人
|
||||
|
||||
### 普通包
|
||||
|
||||
方式:(下行)
|
||||
|
||||
#### 弹幕
|
||||
|
||||
|
||||
|
||||
#### 送礼
|
||||
|
||||
|
||||
|
||||
#### 欢迎加入房间
|
||||
|
||||
|
||||
|
||||
#### 欢迎房管加入房间
|
||||
|
||||
|
||||
|
||||
#### 系统消息
|
||||
|
||||
|
||||
|
||||
#### 主播准备中
|
||||
|
||||
|
||||
|
||||
#### 直播开始
|
||||
|
||||
|
||||
|
||||
#### 直播状态更新
|
||||
|
||||
|
170
login/QR.md
@ -1,170 +0,0 @@
|
||||
# 二维码登录
|
||||
|
||||
流程&逻辑:
|
||||
|
||||
1. 获取`二维码内容url`以及`秘钥`,以`二维码内容url`生成二维码,等待手机客户端扫描
|
||||
2. 以`秘钥`作为参数进行POST
|
||||
3. if "code"==true goto 6 else goto 4(是否已经确认)
|
||||
4. if "data"==-4 goto 2 else goto 5(是否已经扫描)
|
||||
5. if "data"==-5 goto 3 && 提示`已扫描`else goto 1&提示`二维码超时或错误`(秘钥是否有效)
|
||||
6. 成功后会自动配置cookie 如需登录游戏分站则访问`data`.`url`中的url
|
||||
|
||||
<img src="/imgs/2233login.png"/>
|
||||
|
||||
|
||||
|
||||
## 申请二维码URL及扫码秘钥
|
||||
|
||||
> http://passport.bilibili.com/qrcode/getLoginUrl
|
||||
|
||||
*方式:GET*
|
||||
|
||||
秘钥超时为180秒
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------ | ---- | -------- | ------------ |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| status | bool | true | 作用尚不明确 |
|
||||
| ts | num | 请求时间 | 时间戳 |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ----- | ------------- | ---------- |
|
||||
| url | str | 二维码内容url | 恒为87字符 |
|
||||
| oauthKey | str | 扫码登录秘钥 | 恒为32字符 |
|
||||
|
||||
**示例:**
|
||||
|
||||
用申请到的`data`.`url`中的值生成二维码,等待手机客户端扫描,并将`data`.`oauthKey`保存等待使用
|
||||
|
||||
http://passport.bilibili.com/qrcode/getLoginUrl
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"status": true,
|
||||
"ts": 1583314311,
|
||||
"data": {
|
||||
"url": "https://passport.bilibili.com/qrcode/h5/login?oauthKey=c3bd5286a2b40a822f5f60e9bf3f602e",
|
||||
"oauthKey": "c3bd5286a2b40a822f5f60e9bf3f602e"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
## 验证二维码登录
|
||||
|
||||
> http://passport.bilibili.com/qrcode/getLoginInfo
|
||||
|
||||
*方式:POST*
|
||||
|
||||
秘钥超时为180秒
|
||||
|
||||
验证正确时会进行设置以下cookie项:
|
||||
|
||||
`sid` `DedeUserID` `DedeUserID__ckMd5` `SESSDATA` `bili_jct`
|
||||
|
||||
**参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| -------- | ---- | ------------ | ------ | ----------------------------- |
|
||||
| oauthKey | data | 扫码登录秘钥 | 必要 | |
|
||||
| gourl | data | 跳转url | 非必要 | 默认为http://www.bilibili.com |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---------------------------- | ----------------------------------------- | ------------------------------------------------------------ |
|
||||
| status | bool | 扫码是否成功 | true:成功<br />false:未成功 |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| message | str | 错误信息 | 正确无 |
|
||||
| ts | num | 扫码时间 | 错误无 |
|
||||
| data | 正确时:obj<br />错误时:num | 正确时:游戏分站url<br />错误时:错误代码 | 错误时:<br />-1:秘钥错误<br />-2:秘钥超时<br />-4:未扫描<br />-5:未确认 |
|
||||
|
||||
data 对象:
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | --------------- | ---- |
|
||||
| url | str | 游戏分站登录url | |
|
||||
|
||||
**示例:**
|
||||
|
||||
curl -d "oauthKey=xxx" "http://passport.bilibili.com/qrcode/getLoginInfo"
|
||||
|
||||
当秘钥正确时但未扫描时`status`为`false`,`data`为num值`-4`
|
||||
|
||||
```json
|
||||
{
|
||||
"status":false,
|
||||
"data":-4,
|
||||
"message":"Can't scan~"
|
||||
}
|
||||
```
|
||||
|
||||
扫描成功但手机端未确认时`status`为`false`,`data`为num值`-5`
|
||||
|
||||
```json
|
||||
{
|
||||
"status":false,
|
||||
"data":-5,
|
||||
"message":"Can't confirm~"
|
||||
}
|
||||
```
|
||||
|
||||
扫描成功手机端确认登录后,`status`为`true`,`data`为对象,并向浏览器写入cookie
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"status": true,
|
||||
"ts": 1583315474,
|
||||
"data": {
|
||||
"url": "https://passport.biligame.com/crossDomain?DedeUserID=***&DedeUserID__ckMd5=***&Expires=***&SESSDATA=***&bili_jct=***&gourl=http%3A%2F%2Fwww.bilibili.com"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
回复头部抓包信息:
|
||||
|
||||
可明显看见设置了几个cookie(本人手打已测试成功登录B站)
|
||||
|
||||
```http
|
||||
HTTP/1.1 200 OK
|
||||
Date: Wed, 04 Mar 2020 10:36:37 GMT
|
||||
Content-Type: application/json;charset=UTF-8
|
||||
Transfer-Encoding: chunked
|
||||
Connection: keep-alive
|
||||
Server: Apache-Coyote/1.1
|
||||
Set-Cookie: sid=***; Domain=.bilibili.com; Expires=Thu, 04-Mar-2021 10:36:37 GMT; Path=/
|
||||
Set-Cookie: DedeUserID=***; Domain=.bilibili.com; Expires=Mon, 31-Aug-2020 10:19:57 GMT; Path=/
|
||||
Set-Cookie: DedeUserID__ckMd5=***; Domain=.bilibili.com; Expires=Mon, 31-Aug-2020 10:19:57 GMT; Path=/
|
||||
Set-Cookie: SESSDATA=***; Domain=.bilibili.com; Expires=Mon, 31-Aug-2020 10:19:57 GMT; Path=/; HttpOnly
|
||||
Set-Cookie: bili_jct=***; Domain=.bilibili.com; Expires=Mon, 31-Aug-2020 10:19:57 GMT; Path=/
|
||||
Expires: Wed, 04 Mar 2020 10:36:36 GMT
|
||||
Cache-Control: no-cache
|
||||
X-Cache-Webcdn: BYPASS from ks-sxhz-dx-w-01
|
||||
```
|
||||
|
||||
**游戏分站登录url与cookie的数据对应(也可用于不方便设置cookie的场合提取使用)**
|
||||
|
||||
https://passport.biligame.com/crossDomain?
|
||||
|
||||
DedeUserID=(登录UID)&
|
||||
|
||||
DedeUserID__ckMd5=(DedeUserID__ckMd5)&
|
||||
|
||||
Expires=(过期时间 秒)&
|
||||
|
||||
SESSDATA=(登录token)&
|
||||
|
||||
bili_jct=(登录csrf)&
|
||||
|
||||
gourl=(跳转网址 默认为主页)
|
||||
|
64
login/exit.md
Normal file
@ -0,0 +1,64 @@
|
||||
# 退出账号登录
|
||||
|
||||
## 退出登录(web端)
|
||||
|
||||
> http://passport.bilibili.com/login?act=exit
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:仅可Cookie(SESSDATA)
|
||||
|
||||
验证登录成功后会进行删除以下cookie项:
|
||||
|
||||
`DedeUserID` `DedeUserID__ckMd5` `SESSDATA` `bili_jct`
|
||||
|
||||
并在服务器注销该登录Token(SESSDATA),该Token即失效
|
||||
|
||||
**回复:**
|
||||
|
||||
响应为一个用于跳转html页面
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl 'http://passport.bilibili.com/login?act=exit' \
|
||||
-b 'SESSDATA=xxx;DedeUserID__ckMd5=xxx;SESSDATA=xxx;bili_jct=xxx'
|
||||
```
|
||||
|
||||
**响应头部抓包信息:**
|
||||
|
||||
使用set-cookie删除了以上cookie项
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```http
|
||||
HTTP/1.1 200 OK
|
||||
Date: Mon, 27 Jul 2020 13:42:21 GMT
|
||||
Content-Type: text/html;charset=UTF-8
|
||||
Transfer-Encoding: chunked
|
||||
Connection: keep-alive
|
||||
Server: Apache-Coyote/1.1
|
||||
Set-Cookie: SESSDATA=""; Domain=.bilibili.com; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; HttpOnly
|
||||
Set-Cookie: SESSDATA__ckMd5=""; Domain=.bilibili.com; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/
|
||||
Set-Cookie: SESSDATA=""; Domain=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; HttpOnly
|
||||
Set-Cookie: SESSDATA__ckMd5=""; Domain=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/
|
||||
Set-Cookie: DedeUserID=""; Domain=.bilibili.com; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/
|
||||
Set-Cookie: DedeUserID__ckMd5=""; Domain=.bilibili.com; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/
|
||||
Set-Cookie: DedeUserID=""; Domain=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/
|
||||
Set-Cookie: DedeUserID__ckMd5=""; Domain=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/
|
||||
Set-Cookie: bili_jct=""; Domain=.bilibili.com; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/
|
||||
Set-Cookie: bili_jct__ckMd5=""; Domain=.bilibili.com; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/
|
||||
Set-Cookie: bili_jct=""; Domain=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/
|
||||
Set-Cookie: bili_jct__ckMd5=""; Domain=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/
|
||||
Set-Cookie: JSESSIONID=F857ED4084F8824BFDB4CD97EEC3D758; Path=/; HttpOnly
|
||||
Content-Language: zh-CN
|
||||
X-TKID: 1595857341658620367002
|
||||
Expires: Mon, 27 Jul 2020 13:42:20 GMT
|
||||
Cache-Control: no-cache
|
||||
X-Cache-Webcdn: BYPASS from jd-sxhz-dx-w-01
|
||||
Content-Encoding: gzip
|
||||
|
||||
```
|
||||
|
||||
</details>
|
351
login/login_action/QR.md
Normal file
@ -0,0 +1,351 @@
|
||||
# 二维码登录
|
||||
|
||||
web端流程&逻辑:
|
||||
|
||||
1. 获取`二维码内容url`以及`密钥`,以`二维码内容url`生成二维码,等待手机客户端扫描
|
||||
2. 以`密钥`作为参数进行POST
|
||||
3. if `code` == `true` goto `6` else goto 4(是否已经确认)
|
||||
4. if `data` == `-4` goto `2` else goto 5(是否已经扫描)
|
||||
5. if `data` == `-5` goto `3` & 提示`已扫描` else goto `1`&提示`二维码超时或错误`(密钥是否有效)
|
||||
6. 成功后会自动配置cookie 如需登录游戏分站则访问`data`.`url`中的url
|
||||
|
||||
TV端流程&逻辑:
|
||||
|
||||
1. 获取`二维码内容url`以及`密钥`,以`二维码内容url`生成二维码,等待手机客户端扫描
|
||||
2. 以`密钥`作为参数进行POST
|
||||
3. if `code` == `0` 提示`扫码成功`并存储`access_key`于`refersh_key` else goto `4`
|
||||
4. if `code` == `86039` 提示`未扫描`&goto `2` else goto `5`
|
||||
5. if `code` == `86038` 提示`二维码超时或错误`&goto `1`
|
||||
|
||||
<img src="/imgs/2233login.png"/>
|
||||
|
||||
|
||||
|
||||
## 申请二维码URL及扫码密钥(web端)
|
||||
|
||||
> http://passport.bilibili.com/qrcode/getLoginUrl
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
密钥超时为180秒
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------ | ---- | -------- | ------------ |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| status | bool | true | 作用尚不明确 |
|
||||
| ts | num | 请求时间 | 时间戳 |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | ------------- | ---------- |
|
||||
| url | str | 二维码内容url | 恒为87字符 |
|
||||
| oauthKey | str | 扫码登录秘钥 | 恒为32字符 |
|
||||
|
||||
**示例:**
|
||||
|
||||
用申请到的`data`.`url`中的值生成二维码,等待手机客户端扫描,并将`data`.`oauthKey`保存等待使用
|
||||
|
||||
```shell
|
||||
curl 'http://passport.bilibili.com/qrcode/getLoginUrl'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"status": true,
|
||||
"ts": 1583314311,
|
||||
"data": {
|
||||
"url": "https://passport.bilibili.com/qrcode/h5/login?oauthKey=c3bd5286a2b40a822f5f60e9bf3f602e",
|
||||
"oauthKey": "c3bd5286a2b40a822f5f60e9bf3f602e"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 使用扫码登录(web端)
|
||||
|
||||
> http://passport.bilibili.com/qrcode/getLoginInfo
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
密钥超时为180秒
|
||||
|
||||
验证登录成功后会进行设置以下cookie项:
|
||||
|
||||
`DedeUserID` `DedeUserID__ckMd5` `SESSDATA` `bili_jct`
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| -------- | ---- | ------------ | ------ | ----------------------------- |
|
||||
| oauthKey | str | 扫码登录秘钥 | 必要 | |
|
||||
| gourl | str | 跳转url | 非必要 | 默认为http://www.bilibili.com |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---------------------------- | ----------------------------------------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| message | str | 错误信息 | 正确无 |
|
||||
| ts | num | 扫码时间 | 错误无 |
|
||||
| status | bool | 扫码是否成功 | true:成功<br />false:未成功 |
|
||||
| data | 正确时:obj<br />错误时:num | 正确时:游戏分站url<br />错误时:错误代码 | 未成功时:<br />-1:密钥错误<br />-2:密钥超时<br />-4:未扫描<br />-5:未确认 |
|
||||
|
||||
data 对象:
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------------- | ---- |
|
||||
| url | str | 游戏分站跨域登录url | |
|
||||
|
||||
**示例:**
|
||||
|
||||
使用扫描秘钥`c3bd5286a2b40a822f5f60e9bf3f602e`登录
|
||||
|
||||
```shell
|
||||
curl "http://passport.bilibili.com/qrcode/getLoginInfo"\
|
||||
--data-urlencode 'oauthKey=c3bd5286a2b40a822f5f60e9bf3f602e' \
|
||||
-c 'cookie.txt'
|
||||
```
|
||||
|
||||
当密钥正确时但未扫描时`status`为`false`,`data`为num值`-4`
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"status":false,
|
||||
"data":-4,
|
||||
"message":"Can't scan~"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
扫描成功但手机端未确认时`status`为`false`,`data`为num值`-5`
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"status":false,
|
||||
"data":-5,
|
||||
"message":"Can't confirm~"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
扫描成功手机端确认登录后,`status`为`true`,`data`为对象,并向浏览器写入cookie
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"status": true,
|
||||
"ts": 1583315474,
|
||||
"data": {
|
||||
"url": "https://passport.biligame.com/crossDomain?DedeUserID=***&DedeUserID__ckMd5=***&Expires=***&SESSDATA=***&bili_jct=***&gourl=http%3A%2F%2Fwww.bilibili.com"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
**响应头部抓包信息:**
|
||||
|
||||
可明显看见设置了几个cookie(填入浏览器即可成功登录)
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```http
|
||||
HTTP/1.1 200 OK
|
||||
Date: Wed, 04 Mar 2020 10:36:37 GMT
|
||||
Content-Type: application/json;charset=UTF-8
|
||||
Transfer-Encoding: chunked
|
||||
Connection: keep-alive
|
||||
Server: Apache-Coyote/1.1
|
||||
Set-Cookie: sid=***; Domain=.bilibili.com; Expires=Thu, 04-Mar-2021 10:36:37 GMT; Path=/
|
||||
Set-Cookie: DedeUserID=***; Domain=.bilibili.com; Expires=Mon, 31-Aug-2020 10:19:57 GMT; Path=/
|
||||
Set-Cookie: DedeUserID__ckMd5=***; Domain=.bilibili.com; Expires=Mon, 31-Aug-2020 10:19:57 GMT; Path=/
|
||||
Set-Cookie: SESSDATA=***; Domain=.bilibili.com; Expires=Mon, 31-Aug-2020 10:19:57 GMT; Path=/; HttpOnly
|
||||
Set-Cookie: bili_jct=***; Domain=.bilibili.com; Expires=Mon, 31-Aug-2020 10:19:57 GMT; Path=/
|
||||
Expires: Wed, 04 Mar 2020 10:36:36 GMT
|
||||
Cache-Control: no-cache
|
||||
X-Cache-Webcdn: BYPASS from ks-sxhz-dx-w-01
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
**游戏分站跨域登录url:**
|
||||
|
||||
游戏分站跨域登录url与cookie的值一一对应,可用于不方便设置cookie的场合提取使用
|
||||
|
||||
https://passport.biligame.com/crossDomain?
|
||||
|
||||
DedeUserID=(登录UID)&
|
||||
|
||||
DedeUserID__ckMd5=(登录UID MD5值)&
|
||||
|
||||
Expires=(过期时间 秒)&
|
||||
|
||||
SESSDATA=(登录token)&
|
||||
|
||||
bili_jct=(csrf)&
|
||||
|
||||
gourl=(跳转网址 默认为主页)
|
||||
|
||||
## 申请二维码URL及扫码密钥(TV端)
|
||||
|
||||
> http://passport.bilibili.com/x/passport-tv-login/qrcode/auth_code
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
鉴权方式:appkey
|
||||
|
||||
密钥超时为180秒
|
||||
|
||||
本接口可申请用于APP方式登录的`access_key`
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| -------- | ---- | ---------- | ----------- | ------------------------ |
|
||||
| appkey | str | APP密钥 | APP方式必要 | 仅可用`4409e2ce8ffd12b8` |
|
||||
| local_id | str | TV端ID | TV端必要 | 可为0 |
|
||||
| ts | num | 当前时间戳 | APP方式必要 | |
|
||||
| sign | str | APP签名 | APP方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ---------------------------------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-3:API校验密匙错误<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | ------------- | ---------- |
|
||||
| url | str | 二维码内容url | 恒为87字符 |
|
||||
| oauthKey | str | 扫码登录秘钥 | 恒为32字符 |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl 'http://passport.bilibili.com/x/passport-tv-login/qrcode/auth_code' \
|
||||
--data-urlencode 'appkey=4409e2ce8ffd12b8' \
|
||||
--data-urlencode 'local_id=0' \
|
||||
--data-urlencode 'ts=0' \
|
||||
--data-urlencode 'sign=e134154ed6add881d28fbdf68653cd9c'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"url": "https://passport.bilibili.com/x/passport-tv-login/h5/qrcode/auth?auth_code=0eeb635a64526709d70cb4c854a3b001",
|
||||
"auth_code": "0eeb635a64526709d70cb4c854a3b001"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 使用扫码登录(TV端)
|
||||
|
||||
> http://passport.bilibili.com/x/passport-tv-login/qrcode/poll
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
鉴权方式:appkey
|
||||
|
||||
密钥超时为180秒
|
||||
|
||||
验证登录成功后会返回可用于APP方式登录的`access_key`以及`refresh_token`
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| --------- | ---- | ---------- | ----------- | ------------------------ |
|
||||
| appkey | str | APP密钥 | APP方式必要 | 仅可用`4409e2ce8ffd12b8` |
|
||||
| auth_code | str | 扫码秘钥 | 必要 | |
|
||||
| local_id | str | TV端ID | TV端必要 | 可为0 |
|
||||
| ts | num | 当前时间戳 | APP方式必要 | |
|
||||
| sign | str | APP签名 | APP方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ----------------------------- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-3:API校验密匙错误<br />-400:请求错误<br />86038:二维码已失效<br />86039:二维码尚未确认 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | 有效时:obj<br />无效时:null | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------- | ---- | ------------ | -------------------- |
|
||||
| mid | num | 登录用户UID | |
|
||||
| access_token | str | APP登录Token | |
|
||||
| refresh_token | str | APP刷新Token | |
|
||||
| expires_in | num | 有效时间 | 单位为秒 一般为30天 |
|
||||
|
||||
**示例:**
|
||||
|
||||
使用扫描秘钥`6214464b3025541abf6f654cf7569a01`进行验证登录
|
||||
|
||||
```shell
|
||||
curl 'http://passport.bilibili.com/x/passport-tv-login/qrcode/poll' \
|
||||
--data-urlencode 'appkey=4409e2ce8ffd12b8' \
|
||||
--data-urlencode 'auth_code=6214464b3025541abf6f654cf7569a01' \
|
||||
--data-urlencode 'local_id=0' \
|
||||
--data-urlencode 'ts=0' \
|
||||
--data-urlencode 'sign=87de3d0fee7c3f4facd244537238914e' \
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"mid": 293793435,
|
||||
"access_token": "***",
|
||||
"refresh_token": "***",
|
||||
"expires_in": 2592000
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
240
login/login_action/SMS.md
Normal file
@ -0,0 +1,240 @@
|
||||
# 短信登录
|
||||
|
||||
web端短信登录流程:
|
||||
|
||||
1. [完成人机验证](readme.md)
|
||||
2. 发送短信,使用国际地区代码`cid`+手机号码`tel`+登录密钥`key`+极验`challenge`+验证结果`validate`+验证结果`seccode`
|
||||
3. 提交短信验证码以验证登录操作,使用国际地区代码`cid`+手机号码`tel`+短信验证码`smsCode`
|
||||
|
||||
## 获取国际地区代码(web端)
|
||||
|
||||
> http://passport.bilibili.com/web/generic/country/list
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | -------- | ------- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| data | obj | 数据本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------ | ----- | -------------- | ---- |
|
||||
| common | array | 常用国家或地区 | |
|
||||
| others | array | 其他国家或地区 | |
|
||||
|
||||
`data`中的`common`和`others`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | --------------- | ---- |
|
||||
| 0 | obj | 国家或地区1 | |
|
||||
| n | obj | 国家或地区(n+1) | |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`common`和`others`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------- | ---- | -------------- | ---- |
|
||||
| id | num | 国际代码值 | |
|
||||
| cname | str | 国家或地区名 | |
|
||||
| country_id | str | 国家或地区区号 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl 'http://passport.bilibili.com/web/generic/country/list'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"data": {
|
||||
"common": [
|
||||
{
|
||||
"id": 1,
|
||||
"cname": "中国大陆",
|
||||
"country_id": "86"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"cname": "中国香港特别行政区",
|
||||
"country_id": "852"
|
||||
},
|
||||
…………
|
||||
],
|
||||
"others": [
|
||||
{
|
||||
"id": 22,
|
||||
"cname": "阿富汗",
|
||||
"country_id": "93"
|
||||
},
|
||||
{
|
||||
"id": 20,
|
||||
"cname": "阿尔巴尼亚",
|
||||
"country_id": "355"
|
||||
},
|
||||
…………
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 发送短信验证码(web端)
|
||||
|
||||
> http://passport.bilibili.com/web/sms/general/v2/send
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
短信发送CD时间为60s
|
||||
|
||||
短信验证码超时时间为5min
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| tel | num | 手机号码 | 必要 | |
|
||||
| cid | num | 国际地区代码 | 必要 | |
|
||||
| type | num | 21 | 必要 | 必须为`21` |
|
||||
| captchaType | num | 6 | 必要 | 必须为`6` |
|
||||
| key | str | 登录秘钥 | 必要 | 从B站API获取 |
|
||||
| challenge | str | 极验challenge | 必要 | 从B站API获取 |
|
||||
| validate | str | 极验结果 | 必要 | 从极验获取 |
|
||||
| seccode | str | 极验结果+`|jordan` | 必要 | 从极验获取 |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------ | ---- | -------- | --------- |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误<br />1002:手机号格式错误<br />1015:短信发送次数已达上限<br />1003:验证码已经发送<br />2400:登录秘钥错误<br />2406:验证极验服务出错 |
|
||||
| message | str | 错误信息 | 成功为"验证码短信已下发" |
|
||||
|
||||
**示例:**
|
||||
|
||||
例如手机号为`13888888888`,国际ID为`1(中国大陆)`,登录秘钥为`aabbccdd`,极验challenge为`2333`,极验结果为`666666`,进行发送短信验证码操作
|
||||
|
||||
```shell
|
||||
curl 'http://passport.bilibili.com/web/sms/general/v2/send' \
|
||||
--data-urlencode 'tel=13888888888' \
|
||||
--data-urlencode 'cid=1' \
|
||||
--data-urlencode 'type=21' \
|
||||
--data-urlencode 'captchaType=6' \
|
||||
--data-urlencode 'key=aabbccdd' \
|
||||
--data-urlencode 'challenge=2333' \
|
||||
--data-urlencode 'validate=666666' \
|
||||
--data-urlencode 'seccode=666666|jordan'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "验证码短信已下发"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 使用短信验证码登录(web端)
|
||||
|
||||
> http://passport.bilibili.com/web/login/rapid
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
验证登录成功后会进行设置以下cookie项:
|
||||
|
||||
`DedeUserID` `DedeUserID__ckMd5` `SESSDATA` `bili_jct`
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| cid | num | 国际地区代码 | 必要 | |
|
||||
| tel | num | 手机号码 | 必要 | |
|
||||
| smsCode | num | 短信验证码 | 必要 | 超时时间为5min |
|
||||
| goUrl | str | 跳转url | 非必要 | 默认为https://www.bilibili.com |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误<br />1006:请输入正确的短信验证码<br />1007:短信验证码已过期 |
|
||||
| message | str | 错误信息 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --- | --- | --- | --- |
|
||||
| is_new | bool | false | 未知,估计是未注册时自动注册新用户 |
|
||||
| status | num | 0 | 未知,可能0就是成功吧 |
|
||||
| url | str | 跳转url | 默认为https://www.bilibili.com |
|
||||
|
||||
**示例:**
|
||||
|
||||
使用手机号`13888888888`,短信验证码为`123456`,进行验证登录操作
|
||||
|
||||
```shell
|
||||
curl 'https://passport.bilibili.com/web/login/rapid'
|
||||
--data-urlencode 'cid=1' \
|
||||
--data-urlencode 'tel=13888888888' \
|
||||
--data-urlencode 'smsCode=123456'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"data": {
|
||||
"is_new": false,
|
||||
"status": 0,
|
||||
"url": "https://space.bilibili.com"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
**响应头部抓包信息:**
|
||||
|
||||
可明显看见设置了几个cookie(填入浏览器即可成功登录)
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```http
|
||||
HTTP/1.1 200 OK
|
||||
Date: Mon, 13 Jul 2020 09:57:33 GMT
|
||||
Content-Type: application/json;charset=UTF-8
|
||||
Content-Length: 78
|
||||
Connection: keep-alive
|
||||
Server: Apache-Coyote/1.1
|
||||
Set-Cookie: DedeUserID=***; Domain=.bilibili.com; Expires=Sat, 18-Jul-2020 09:57:57 GMT; Path=/
|
||||
Set-Cookie: DedeUserID__ckMd5=***; Domain=.bilibili.com; Expires=Sat, 18-Jul-2020 09:57:57 GMT; Path=/
|
||||
Set-Cookie: SESSDATA=***; Domain=.bilibili.com; Expires=Sat, 18-Jul-2020 09:57:57 GMT; Path=/; HttpOnly
|
||||
Set-Cookie: bili_jct=***; Domain=.bilibili.com; Expires=Sat, 18-Jul-2020 09:57:57 GMT; Path=/
|
||||
Expires: Mon, 13 Jul 2020 09:57:32 GMT
|
||||
Cache-Control: no-cache
|
||||
X-Cache-Webcdn: BYPASS from jd-sxhz-dx-w-01
|
||||
|
||||
```
|
||||
|
||||
</details>
|
256
login/login_action/password.md
Normal file
@ -0,0 +1,256 @@
|
||||
# 账号密码登录
|
||||
|
||||
web端密码登录流程:
|
||||
|
||||
1. [完成人机验证](readme.md)
|
||||
2. 加密登录密码,获取RSA公钥`key`与盐值`hash`**(盐值有效时间为20s)**,并连接盐值+密码字串(注意先后顺序),使用RSA公钥加密,得到base64格式密文
|
||||
4. 登录操作验证,使用账号`username`**(手机号或邮箱)**+密文密码`password`+登录密钥`key`+极验`challenge`+验证结果`validate`+验证结果`seccode`
|
||||
|
||||
## 获取加密公钥及密码盐值1(web端)
|
||||
|
||||
> http://passport.bilibili.com/login?act=getkey
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------ | ---------------- |
|
||||
| hash | str | 密码校验盐值 | 有效时间为20s |
|
||||
| key | str | RSA公钥 | **公钥为固定值** |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl 'http://passport.bilibili.com/login?act=getkey'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"hash":"07c6501690c1af85",
|
||||
"key":"-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjb4V7EidX/ym28t2ybo0U6t0n\n6p4ej8VjqKHg100va6jkNbNTrLQqMCQCAYtXMXXp2Fwkk6WR+12N9zknLjf+C9sx\n/+l48mjUU8RqahiFD1XT/u2e0m2EN029OhCgkHx3Fc/KlFSIbak93EH/XlYis0w+\nXl69GV6klzgxW6d2xQIDAQAB\n-----END PUBLIC KEY-----\n"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 获取加密公钥及密码盐值2(APP端)
|
||||
|
||||
> http://passport.bilibili.com/api/oauth2/getKey
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
鉴权方式:appkey
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------- | ----------- | ---- |
|
||||
| appkey | str | APP密钥 | APP方式必要 | |
|
||||
| sign | str | APP签名 | APP方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------ | ---------------- |
|
||||
| hash | str | 验证hash盐值 | 有效时间为20s |
|
||||
| key | str | RSA公钥 | **公钥为固定值** |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl 'http://passport.bilibili.com/api/oauth2/getKey' \
|
||||
--data-urlencode 'appkey=1d8b6e7d45233436' \
|
||||
--data-urlencode 'sign=17004c193f688f0b5665c1068e733aff'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"hash":"07c6501690c1af85",
|
||||
"key":"-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjb4V7EidX/ym28t2ybo0U6t0n\n6p4ej8VjqKHg100va6jkNbNTrLQqMCQCAYtXMXXp2Fwkk6WR+12N9zknLjf+C9sx\n/+l48mjUU8RqahiFD1XT/u2e0m2EN029OhCgkHx3Fc/KlFSIbak93EH/XlYis0w+\nXl69GV6klzgxW6d2xQIDAQAB\n-----END PUBLIC KEY-----\n"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 登录密码的加密
|
||||
|
||||
**注:RSA公钥一般为固定值**
|
||||
|
||||
```
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjb4V7EidX/ym28t2ybo0U6t0n
|
||||
6p4ej8VjqKHg100va6jkNbNTrLQqMCQCAYtXMXXp2Fwkk6WR+12N9zknLjf+C9sx
|
||||
/+l48mjUU8RqahiFD1XT/u2e0m2EN029OhCgkHx3Fc/KlFSIbak93EH/XlYis0w+
|
||||
Xl69GV6klzgxW6d2xQIDAQAB
|
||||
-----END PUBLIC KEY-----
|
||||
```
|
||||
|
||||
例如登录密码为:
|
||||
|
||||
```
|
||||
BiShi22332323
|
||||
```
|
||||
|
||||
获取到的盐值为:
|
||||
|
||||
```
|
||||
8e0db05c46f4052c
|
||||
```
|
||||
|
||||
那么按照`盐值`+`密码字串`连接二者得到:
|
||||
|
||||
```
|
||||
8e0db05c46f4052cBiShi22332323
|
||||
```
|
||||
|
||||
用公钥进行RSA加密得到base64字串:
|
||||
|
||||
因为公钥的**无法解密性**和盐值的**超时机制**,故无法本地验证加密结果
|
||||
|
||||
```
|
||||
YgpjxAQ22pKa9socHIKPCZX0a/NS6Ng9Zzy+rp16b0LJGT6RHw2ERs3+ijCpG96PKTY1Baavwf0xgotmNvpl25l1KO5y4AjcqeWTzNTSVn6ejonBXGmBMybHHYawJ0aMPn1eDGpKrbI91mrF+h2x+fsnnpuZ1gheiYGzFmtshUc=
|
||||
```
|
||||
|
||||
## 使用账号密码登录(web端)
|
||||
|
||||
> http://passport.bilibili.com/web/login/v2
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
验证登录成功后会进行设置以下cookie项:
|
||||
|
||||
`sid` `DedeUserID` `DedeUserID__ckMd5` `SESSDATA` `bili_jct`
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ----------- | ---- | ---------------- | ------ | ---------------- |
|
||||
| captchaType | num | 6 | 必要 | 必须为`6` |
|
||||
| username | str | 用户登录账号 | 必要 | 手机号或邮箱地址 |
|
||||
| password | str | 加密后的带盐密码 | 必要 | base64格式 |
|
||||
| keep | bool | true | 必要 | 必须为`true` |
|
||||
| key | str | 登录秘钥 | 必要 | 从B站API获取 |
|
||||
| challenge | str | 极验challenge | 必要 | 从B站API获取 |
|
||||
| validate | str | 极验结果 | 必要 | 从极验获取 |
|
||||
| seccode | str | 极验结果 | 必要 | 从极验获取 |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | ---------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误<br />-629:账号或密码错误<br />-653:用户名或密码不能为空<br />-662:提交超时,请重新提交<br />-2001:缺少必要的的参数<br />-2100:需验证手机号或邮箱<br />2400:登录秘钥错误<br />2406:验证极验服务出错 |
|
||||
| ts | num | 当前时间戳 | 成功时无此项 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| data | obj | 数据本体 | 成功时有此项 |
|
||||
|
||||
`data`对象:
|
||||
|
||||
**未登录时:**
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | ------------------- | ---- |
|
||||
| redirectUrl | str | 游戏分站跨域登录url | |
|
||||
|
||||
**已登录时:**
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | ------------------------ | ---- |
|
||||
| isLogin | bool | true | |
|
||||
| goUrl | str | https://www.bilibili.com | |
|
||||
|
||||
**需验证手机号或邮箱时**
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | ------------------------ | ---------------- |
|
||||
| mid | num | 用户UID | |
|
||||
| tel | str | 绑定的手机号 | 星号隐藏部分信息 |
|
||||
| email | str | 绑定的邮箱 | 星号隐藏部分信息 |
|
||||
| sorce | num | 0 | **作用尚不明确** |
|
||||
| keeptime | num | 1 | **作用尚不明确** |
|
||||
| goUrl | str | https://www.bilibili.com | |
|
||||
|
||||
**示例:**
|
||||
|
||||
例如用户账号为`12345678900`,加密后的密码为`xxx`,登录秘钥为`aabbccdd`,极验challenge为`2333`,极验结果为`666666`,进行验证登录操作
|
||||
|
||||
```shell
|
||||
curl 'https://passport.bilibili.com/web/login/v2' \
|
||||
--data-urlencode 'captchaType=6' \
|
||||
--data-urlencode 'username=12345678900' \
|
||||
--data-urlencode 'password=xxx' \
|
||||
--data-urlencode 'keep=true' \
|
||||
--data-urlencode 'key=aabbccdd' \
|
||||
--data-urlencode 'challenge=2333' \
|
||||
--data-urlencode 'validate=666666' \
|
||||
--data-urlencode 'seccode=666666|jordan'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"data": {
|
||||
"redirectUrl": "https://passport.biligame.com/crossDomain?DedeUserID=***&DedeUserID__ckMd5=***&Expires=15551000&SESSDATA=***&bili_jct=***&gourl=https%3A%2F%2Fwww.bilibili.com"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
**响应头部抓包信息:**
|
||||
|
||||
可明显看见设置了几个cookie(填入浏览器即可成功登录)
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```http
|
||||
HTTP/1.1 200 OK
|
||||
Date: Mon, 13 Jul 2020 06:56:00 GMT
|
||||
Content-Type: application/json;charset=UTF-8
|
||||
Content-Length: 273
|
||||
Connection: keep-alive
|
||||
Server: Apache-Coyote/1.1
|
||||
Set-Cookie: DedeUserID=***; Domain=.bilibili.com; Expires=Sat, 09-Jan-2021 06:39:43 GMT; Path=/
|
||||
Set-Cookie: DedeUserID__ckMd5=***; Domain=.bilibili.com; Expires=Sat, 09-Jan-2021 06:39:43 GMT; Path=/
|
||||
Set-Cookie: SESSDATA=***; Domain=.bilibili.com; Expires=Sat, 09-Jan-2021 06:39:43 GMT; Path=/; HttpOnly
|
||||
Set-Cookie: bili_jct=***; Domain=.bilibili.com; Expires=Sat, 09-Jan-2021 06:39:43 GMT; Path=/
|
||||
Content-Security-Policy-Report-Only: default-src 'self' data: *.bilibili.com *.hdslb.com; style-src 'self' 'unsafe-inline' *.hdslb.com static.geetest.com; img-src 'self' data: blob: *.bilibili.com *.hdslb.com http://*.hdslb.com static.geetest.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' *.bilibili.com *.hdslb.com api.geetest.com static.geetest.com; object-src 'self' *.hdslb.com; media-src 'self' *.acgvideo.com http://*.acgvideo.com *.ksyungslb.com; connect-src 'self' data: wss://*.bilibili.com:* *.bilibili.com *.hdslb.com *.biliapi.net *.biliapi.com; frame-ancestors 'self' *.bilibili.com *.biligame.com; report-uri https://security.bilibili.com/csp_report
|
||||
Expires: Mon, 13 Jul 2020 06:55:59 GMT
|
||||
Cache-Control: no-cache
|
||||
X-Cache-Webcdn: BYPASS from jd-sxhz-dx-w-01
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
**游戏分站跨域登录url:**
|
||||
|
||||
游戏分站跨域登录url与cookie的值一一对应,可用于不方便设置cookie的场合提取使用
|
||||
|
||||
https://passport.biligame.com/crossDomain?
|
||||
|
||||
DedeUserID=(登录UID)&
|
||||
|
||||
DedeUserID__ckMd5=(登录UID MD5值)&
|
||||
|
||||
Expires=(过期时间 秒)&
|
||||
|
||||
SESSDATA=(登录token)&
|
||||
|
||||
bili_jct=(csrf)&
|
||||
|
||||
gourl=(跳转网址 默认为主页)
|
93
login/login_action/readme.md
Normal file
@ -0,0 +1,93 @@
|
||||
# 登录操作
|
||||
|
||||
人机验证方式登录包含**账号密码登录**与手**机短信验证码登录**
|
||||
|
||||
**注:扫码登录**不需要进行**人机验证**,故**不使用**以下接口
|
||||
|
||||
## 扫码登录
|
||||
|
||||
- [扫码登录](QR.md)
|
||||
|
||||
## 验证登录
|
||||
|
||||
人机验证流程:
|
||||
|
||||
1. 请求验证码参数,得到登录密钥`key`与极验ID`gt`和极验KEY`challenge`
|
||||
2. 进行滑动or点击验证
|
||||
3. 返回验证结果`validate`与`seccode`,进行短信或密码登录
|
||||
|
||||
|
||||
### 申请验证码参数
|
||||
|
||||
> http://passport.bilibili.com/web/captcha/combine?plat=6
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------ | ---- | -------- | --------- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ----- | ------ | -------- |
|
||||
| result | obj | 套了个娃 | |
|
||||
| type | num | 1 | **作用尚不明确** |
|
||||
|
||||
`result`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ----- | ------ | -------- |
|
||||
| success | num | 1 | **作用尚不明确** |
|
||||
| gt | str | 极验ID | 一般为固定值 |
|
||||
| challenge | str | 极验KEY | 由B站后端产生用于人机验证 |
|
||||
| key | str | 登录秘钥 | 与人机验证无关,与登录接口有关,但与极验KEY对应 |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl 'https://passport.bilibili.com/web/captcha/combine?plat=6'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"data": {
|
||||
"result": {
|
||||
"success": 1,
|
||||
"gt": "bd111e81eda1cbb9f54425aafc0908ac",
|
||||
"challenge": "2903a8eb967a1d990444cb23ea42f417",
|
||||
"key": "76fb59fbd83a4d9d816162c5156fc964"
|
||||
},
|
||||
"type": 1
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
### 进行验证
|
||||
|
||||
本文档为Bilibili文档,验证码为geetest极验提供,故不提供api
|
||||
|
||||
附: [手动验证器](https://kuresaru.github.io/geetest-validator/)
|
||||
[及其源码](https://github.com/kuresaru/geetest-validator)
|
||||
|
||||
1. 打开手动验证器,在1、2分别填入上面API返回的`gt`和`challenge`
|
||||
2. 点击按钮3,稍等加载验证码,点击按钮4进行验证
|
||||
3. 验证完成后,点击按钮5生成验证结果
|
||||
4. 使用最开始获得到的`key`、`challenge`和刚获得到的`validate`、`seccode`继续之后的登录操作
|
||||
|
||||
|
||||
### 继续登录
|
||||
|
||||
- [短信登录](SMS.md)
|
||||
- [密码登录](password.md)
|
@ -1,14 +1,16 @@
|
||||
# 登录基本信息
|
||||
|
||||
## 登录用户信息1(完整)
|
||||
**本页所有操作均需登录(Cookie或APP)**
|
||||
|
||||
> http://api.bilibili.com/nav (带有转义)
|
||||
## 登录用户信息1(web端)
|
||||
|
||||
> http://api.bilibili.com/nav(带有转义)
|
||||
>
|
||||
> http://api.bilibili.com/x/web-interface/nav (原始数据)
|
||||
> http://api.bilibili.com/x/web-interface/nav(原始数据)
|
||||
|
||||
*方式:GET*
|
||||
*请求方式:GET*
|
||||
|
||||
需要登录(SESSDATA)
|
||||
认证方式:仅可Cookie(SESSDATA)
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -18,36 +20,39 @@
|
||||
| ------- | ---- | -------- | ----------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | 作用尚不明确 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------------- | ---- | ---------------- | ------------------------------- |
|
||||
| isLogin | bool | 是否已登录 | |
|
||||
| email_verified | num | 是否验证邮箱地址 | 0:未验证<br />1:已验证 |
|
||||
| face | str | 登录用户头像url | |
|
||||
| level_info | obj | 等级信息 | |
|
||||
| mid | num | 登录UID | |
|
||||
| mobile_verified | num | 是否验证手机号 | 0:未验证<br />1:已验证 |
|
||||
| money | num | 拥有硬币数 | |
|
||||
| moral | num | 当前节操值 | 上限70 |
|
||||
| official | obj | 认证信息 | |
|
||||
| officialVerify | obj | 认证信息2 | |
|
||||
| pendant | obj | 挂件信息 | |
|
||||
| scores | num | 0 | 作用尚不明确 |
|
||||
| uname | str | 登录用户昵称 | |
|
||||
| vipDueDate | num | 大会员到期时间 | 毫秒 时间戳 |
|
||||
| vipStatus | num | 会员开通状态 | 0:无<br />1:有 |
|
||||
| vipType | num | 大会员类型 | 0:无<br />1:月度<br />2:年度 |
|
||||
| vip_pay_type | num | 会员开通状态 | 0:无<br />1:有 |
|
||||
| vip_theme_type | num | 0 | 作用尚不明确 |
|
||||
| wallet | obj | B币信息 | |
|
||||
| has_shop | bool | false | 作用尚不明确 |
|
||||
| shop_url | str | 空 | 作用尚不明确 |
|
||||
| allowance_count | num | 0 | 作用尚不明确 |
|
||||
| answer_status | num | 0 | 作用尚不明确 |
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------------------- | ---- | ---------------- | ------------------------------- |
|
||||
| isLogin | bool | 是否已登录 | false:未登录<br />true:已登录 |
|
||||
| email_verified | num | 是否验证邮箱地址 | 0:未验证<br />1:已验证 |
|
||||
| face | str | 用户头像url | |
|
||||
| level_info | obj | 等级信息 | |
|
||||
| mid | num | 用户UID | |
|
||||
| mobile_verified | num | 是否验证手机号 | 0:未验证<br />1:已验证 |
|
||||
| money | num | 拥有硬币数 | |
|
||||
| moral | num | 当前节操值 | 上限70 |
|
||||
| official | obj | 认证信息 | |
|
||||
| officialVerify | obj | 认证信息2 | |
|
||||
| pendant | obj | 头像框信息 | |
|
||||
| scores | num | 0 | **作用尚不明确** |
|
||||
| uname | str | 用户昵称 | |
|
||||
| vipDueDate | num | 大会员到期时间 | 毫秒 时间戳 |
|
||||
| vipStatus | num | 会员开通状态 | 0:无<br />1:有 |
|
||||
| vipType | num | 大会员类型 | 0:无<br />1:月度<br />2:年度 |
|
||||
| vip_pay_type | num | 会员开通状态 | 0:无<br />1:有 |
|
||||
| vip_theme_type | num | 0 | **作用尚不明确** |
|
||||
| vip_label | obj | 大会员信息 | |
|
||||
| vip_avatar_subscript | num | 是否显示会员图标 | 0:不显示<br />1:显示 |
|
||||
| vip_nickname_color | str | 会员昵称颜色 | 颜色码 |
|
||||
| wallet | obj | B币信息 | |
|
||||
| has_shop | bool | false | **作用尚不明确** |
|
||||
| shop_url | str | 空 | **作用尚不明确** |
|
||||
| allowance_count | num | 0 | **作用尚不明确** |
|
||||
| answer_status | num | 0 | **作用尚不明确** |
|
||||
|
||||
`data`中的`level_info`对象:
|
||||
|
||||
@ -56,7 +61,7 @@
|
||||
| current_level | num | 当前等级 | |
|
||||
| current_min | num | 当前等级经验最低值 | |
|
||||
| current_exp | num | 当前经验 | |
|
||||
| next_exp | num | 升级下一等级需达到的经验 | |
|
||||
| next_exp | 小于6级时:num<br />6级时:str | 升级下一等级需达到的经验 |当用户等级为Lv6时,值为`--`,代表无穷大 |
|
||||
|
||||
`data`中的`official`对象:
|
||||
|
||||
@ -76,95 +81,117 @@
|
||||
|
||||
`data`中的`pendant`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------ | ---- | ----------- | ------------ |
|
||||
| pid | num | 挂件id | |
|
||||
| name | str | 挂件名称 | |
|
||||
| image | str | 挂件图片url | |
|
||||
| expire | num | 0 | 作用尚不明确 |
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------ | ---- | ----------- | ---------------- |
|
||||
| pid | num | 挂件id | |
|
||||
| name | str | 挂件名称 | |
|
||||
| image | str | 挂件图片url | |
|
||||
| expire | num | 0 | **作用尚不明确** |
|
||||
|
||||
`data`中的`vip_label`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | ------------ | ---------------- |
|
||||
| path | str | 空 | **作用尚不明确** |
|
||||
| text | str | 会员类型文字 | |
|
||||
| label_theme | str | 会员类型 | |
|
||||
|
||||
`data`中的`wallet`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------------- | ---- | ------------- | ------------ |
|
||||
| mid | num | 登录用户UID | |
|
||||
| bcoin_balance | num | 拥有B币数 | |
|
||||
| coupon_balance | num | 每月奖励B币数 | |
|
||||
| coupon_due_time | num | 0 | 作用尚不明确 |
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------------- | ---- | ------------- | ---------------- |
|
||||
| mid | num | 登录用户UID | |
|
||||
| bcoin_balance | num | 拥有B币数 | |
|
||||
| coupon_balance | num | 每月奖励B币数 | |
|
||||
| coupon_due_time | num | 0 | **作用尚不明确** |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询当前登录用户的信息
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/nav' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
http://api.bilibili.com/x/web-interface/nav
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"isLogin": true,
|
||||
"email_verified": 1,
|
||||
"face": "http://i1.hdslb.com/bfs/face/480e2e98513aaeb65d2f2c76dbae750c4de722e9.jpg",
|
||||
"level_info": {
|
||||
"current_level": 5,
|
||||
"current_min": 10800,
|
||||
"current_exp": 14270,
|
||||
"next_exp": 28800
|
||||
},
|
||||
"mid": 293793435,
|
||||
"mobile_verified": 1,
|
||||
"money": 2.5,
|
||||
"moral": 70,
|
||||
"official": {
|
||||
"role": 0,
|
||||
"title": "",
|
||||
"desc": "",
|
||||
"type": -1
|
||||
},
|
||||
"officialVerify": {
|
||||
"type": -1,
|
||||
"desc": ""
|
||||
},
|
||||
"pendant": {
|
||||
"pid": 1492,
|
||||
"name": "2020拜年祭·典藏",
|
||||
"image": "http://i0.hdslb.com/bfs/face/6550f53324c330f201a528e70ef305cb10ac2c01.png",
|
||||
"expire": 0
|
||||
},
|
||||
"scores": 0,
|
||||
"uname": "社会易姐QwQ",
|
||||
"vipDueDate": 1612454400000,
|
||||
"vipStatus": 1,
|
||||
"vipType": 2,
|
||||
"vip_pay_type": 1,
|
||||
"vip_theme_type": 0,
|
||||
"wallet": {
|
||||
"mid": 293793435,
|
||||
"bcoin_balance": 10,
|
||||
"coupon_balance": 5,
|
||||
"coupon_due_time": 0
|
||||
},
|
||||
"has_shop": false,
|
||||
"shop_url": "",
|
||||
"allowance_count": 0,
|
||||
"answer_status": 0
|
||||
}
|
||||
"code":0,
|
||||
"message":"0",
|
||||
"ttl":1,
|
||||
"data":{
|
||||
"isLogin":true,
|
||||
"email_verified":1,
|
||||
"face":"http://i1.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
|
||||
"level_info":{
|
||||
"current_level":5,
|
||||
"current_min":10800,
|
||||
"current_exp":17065,
|
||||
"next_exp":28800
|
||||
},
|
||||
"mid":293793435,
|
||||
"mobile_verified":1,
|
||||
"money":33.4,
|
||||
"moral":70,
|
||||
"official":{
|
||||
"role":0,
|
||||
"title":"",
|
||||
"desc":"",
|
||||
"type":-1
|
||||
},
|
||||
"officialVerify":{
|
||||
"type":-1,
|
||||
"desc":""
|
||||
},
|
||||
"pendant":{
|
||||
"pid":0,
|
||||
"name":"",
|
||||
"image":"",
|
||||
"expire":0,
|
||||
"image_enhance":""
|
||||
},
|
||||
"scores":0,
|
||||
"uname":"社会易姐QwQ",
|
||||
"vipDueDate":1612454400000,
|
||||
"vipStatus":1,
|
||||
"vipType":2,
|
||||
"vip_pay_type":1,
|
||||
"vip_theme_type":0,
|
||||
"vip_label":{
|
||||
"path":"",
|
||||
"text":"年度大会员",
|
||||
"label_theme":"annual_vip"
|
||||
},
|
||||
"vip_avatar_subscript":1,
|
||||
"vip_nickname_color":"#FB7299",
|
||||
"wallet":{
|
||||
"mid":293793435,
|
||||
"bcoin_balance":8,
|
||||
"coupon_balance":5,
|
||||
"coupon_due_time":0
|
||||
},
|
||||
"has_shop":false,
|
||||
"shop_url":"",
|
||||
"allowance_count":0,
|
||||
"answer_status":0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 登录用户信息2(web端)(仅部分)
|
||||
|
||||
## 登录用户信息2(仅部分 带有转义)
|
||||
> http://account.bilibili.com/home/userInfo
|
||||
|
||||
> http://account.bilibili.com/home/userInfo (带有转义)
|
||||
*请求方式:GET*
|
||||
|
||||
*方式:GET*
|
||||
认证方式:仅可Cookie(SESSDATA)
|
||||
|
||||
需要登录(SESSDATA)
|
||||
鉴权方式:Cookie中`DedeUserID`存在且不为0
|
||||
|
||||
需要验证DedeUserID存在且不为0
|
||||
带有转义
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -185,6 +212,7 @@ http://api.bilibili.com/x/web-interface/nav
|
||||
| coins | num | 拥有硬币数 | |
|
||||
| face | str | 登录用户头像url | |
|
||||
| nameplate_current | null | ??? | 作用尚不明确 |
|
||||
| nameplate_current | str | 登录用户勋章url | |
|
||||
| pendant_current | str | 登录用户头像框url | |
|
||||
| uname | str | 登录用户昵称 | |
|
||||
| userStatus | str | 登录用户状态 | |
|
||||
@ -204,9 +232,13 @@ http://api.bilibili.com/x/web-interface/nav
|
||||
|
||||
**示例:**
|
||||
|
||||
查询当前登录用户的信息
|
||||
```shell
|
||||
curl 'http://account.bilibili.com/home/userInfo' \
|
||||
-b 'SESSDATA=xxx;DedeUserID=1;'
|
||||
```
|
||||
|
||||
http://account.bilibili.com/home/userInfo
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -234,15 +266,176 @@ http://account.bilibili.com/home/userInfo
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 登录用户信息(APP端)
|
||||
|
||||
> http://app.bilibili.com/x/v2/account/myinfo
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:仅可APP
|
||||
|
||||
鉴权方式:appkey
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------ | ----------- | ---- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
| appkey | str | APP密钥 | APP方式必要 | |
|
||||
| ts | num | 当前时间戳 | APP方式必要 | |
|
||||
| sign | str | APP签名 | APP方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-3:API校验密匙错误<br />-101:账号未登录<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------------- | ---- | ---------------- | ----------------------------- |
|
||||
| mid | num | 用户UID | |
|
||||
| name | str | 用户昵称 | |
|
||||
| sign | str | 用户签名 | |
|
||||
| coins | num | 拥有硬币数 | |
|
||||
| birthday | str | 用户生日 | YYYY-MM-DD |
|
||||
| face | str | 用户头像url | |
|
||||
| sex | num | 用户性别 | 0:私密<br />1:男<br />2:女 |
|
||||
| level | num | 用户等级 | 0-6 |
|
||||
| rank | num | 1000 | **作用尚不明确** |
|
||||
| silence | num | 用户是否被封禁 | 0:正常<br />1:封禁 |
|
||||
| vip | obj | 会员信息 | |
|
||||
| email_status | num | 是否验证邮箱地址 | 0:未验证<br />1:已验证 |
|
||||
| tel_status | num | 是否验证手机号 | 0:未验证<br />1:已验证 |
|
||||
| official | obj | 认证信息 | |
|
||||
| identification | num | 1 | **作用尚不明确** |
|
||||
| invite | obj | | |
|
||||
| is_tourist | num | 0 | **作用尚不明确** |
|
||||
| pin_prompting | num | 0 | **作用尚不明确** |
|
||||
|
||||
`data`中的`vip`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------------- | ---- | ---------------- | ------------------------------- |
|
||||
| type | num | 大会员类型 | 0:无<br />1:月度<br />2:年度 |
|
||||
| status | num | 会员开通状态 | 0:无<br />1:有 |
|
||||
| due_date | num | 大会员到期时间 | 毫秒 时间戳 |
|
||||
| vip_pay_type | num | 会员开通状态 | 0:无<br />1:有 |
|
||||
| theme_type | num | 会员开通状态 | 0:无<br />1:有 |
|
||||
| label | obj | 大会员信息 | |
|
||||
| avatar_subscript | num | 是否显示会员图标 | 0:不显示<br />1:显示 |
|
||||
| nickname_color | str | 会员昵称颜色 | 颜色码 |
|
||||
|
||||
`vip`中的`label`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | ------------ | ---------------- |
|
||||
| path | str | 空 | **作用尚不明确** |
|
||||
| text | str | 会员类型文字 | |
|
||||
| label_theme | str | 会员类型 | |
|
||||
|
||||
`data`中的`official`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ---- | -------- | ----------------------------------------------- |
|
||||
| role | num | 认证类型 | 0:无<br />1 2:个人认证<br />3 4 5 6:机构认证 |
|
||||
| title | str | 认证信息 | 无为空 |
|
||||
| desc | str | 认证备注 | 无为空 |
|
||||
| type | num | 认证备注 | 无为空 |
|
||||
|
||||
`data`中的`invite`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------- | ---- | ---- | ---------------- |
|
||||
| invite_remind | num | 1 | **作用尚不明确** |
|
||||
| display | bool | true | **作用尚不明确** |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl -G 'http://app.bilibili.com/x/v2/account/myinfo' \
|
||||
--data-urlencode 'access_key=xxx' \
|
||||
--data-urlencode 'appkey=4409e2ce8ffd12b8' \
|
||||
--data-urlencode 'ts=0' \
|
||||
--data-urlencode 'sign=b8fb8480049c525994be6507a97ae0b6'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"mid": 293793435,
|
||||
"name": "社会易姐QwQ",
|
||||
"sign": "高中技术宅一枚,爱好MC&电子&8-bit音乐&数码&编程,资深猿厨,粉丝群:1136462265",
|
||||
"coins": 33.4,
|
||||
"birthday": "2002-03-05",
|
||||
"face": "http://i1.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
|
||||
"sex": 1,
|
||||
"level": 5,
|
||||
"rank": 10000,
|
||||
"silence": 0,
|
||||
"vip": {
|
||||
"type": 2,
|
||||
"status": 1,
|
||||
"due_date": 1612454400000,
|
||||
"vip_pay_type": 1,
|
||||
"theme_type": 0,
|
||||
"label": {
|
||||
"path": "",
|
||||
"text": "年度大会员",
|
||||
"label_theme": "annual_vip"
|
||||
},
|
||||
"avatar_subscript": 1,
|
||||
"nickname_color": "#FB7299"
|
||||
},
|
||||
"email_status": 1,
|
||||
"tel_status": 1,
|
||||
"official": {
|
||||
"role": 0,
|
||||
"title": "",
|
||||
"desc": "",
|
||||
"type": -1
|
||||
},
|
||||
"identification": 1,
|
||||
"invite": {
|
||||
"invite_remind": 1,
|
||||
"display": true
|
||||
},
|
||||
"is_tourist": 0,
|
||||
"pin_prompting": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
## 登录用户状态数
|
||||
## 登录用户状态数(双端)
|
||||
|
||||
> http://api.bilibili.com/x/web-interface/nav/stat
|
||||
|
||||
*方式:GET*
|
||||
*请求方式:GET*
|
||||
|
||||
需要登录(SESSDATA)
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------ | ----------- | ---- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -252,7 +445,7 @@ http://account.bilibili.com/home/userInfo
|
||||
| ------- | ---- | -------- | ----------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | 作用尚不明确 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
@ -263,21 +456,101 @@ http://account.bilibili.com/home/userInfo
|
||||
|
||||
**示例:**
|
||||
|
||||
查询当前登录用户的状态数
|
||||
当前登录用户的状态数为粉丝596,关注754,发送的动态252
|
||||
|
||||
粉丝数为365,关注数为695,发送的动态数为162
|
||||
Cookie方式:
|
||||
|
||||
http://api.bilibili.com/x/web-interface/nav/stat
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/web-interface/nav/stat' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"following": 695,
|
||||
"follower": 365,
|
||||
"dynamic_count": 162
|
||||
}
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"following": 754,
|
||||
"follower": 596,
|
||||
"dynamic_count": 252
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
APP方式:
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/web-interface/nav/stat' \
|
||||
--data-urlencode 'access_key=d907f51122c59599d580ade2315af971'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"following": 754,
|
||||
"follower": 596,
|
||||
"dynamic_count": 252
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 获取硬币数
|
||||
|
||||
> http://account.bilibili.com/site/getCoin
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:仅可Cookie(SESSDATA)
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------ | ---- | -------- | ----------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录 |
|
||||
| status | bool | true | 作用尚不明确 |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | -------------------------------------- | ---------- | ---- |
|
||||
| money | 硬币为正数时:num<br />硬币为0时:null | 当前硬币数 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl 'http://account.bilibili.com/site/getCoin' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"status": true,
|
||||
"data": {
|
||||
"money": 42.4
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
67
login/login_notice.md
Normal file
@ -0,0 +1,67 @@
|
||||
# 登录记录
|
||||
|
||||
## 查询登录记录
|
||||
|
||||
> http://api.bilibili.com/x/safecenter/login_notice
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ------- | ------ | -------------------------------------------- |
|
||||
| mid | num | 用户UID | 必要 | |
|
||||
| buvid | str | 设备ID | 非必要 | 为操作登录接口时Cookie中的`buvid3`可为任意值 |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | --------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | ----------- | -------------------------- |
|
||||
| mid | num | 登录用户UID | |
|
||||
| device_name | str | 登录设备 | 依靠操作登录接口时的UA决定 |
|
||||
| login_type | str | 登录方式 | 根据登录接口决定 |
|
||||
| login_time | str | 登录时间 | YYYY-MM-DD hh:mm:ss |
|
||||
| location | str | 登录位置 | 依靠ip决定 |
|
||||
| ip | str | 登录ip | 部分用`*`打码 |
|
||||
|
||||
**示例:**
|
||||
|
||||
查询用户`293793435`设备ID为`fuck_chenrui`的登录记录
|
||||
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/safecenter/login_notice' \
|
||||
--data-urlencode 'mid=293793435' \
|
||||
--data-urlencode 'buvid=fuck_chenrui'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"mid": 293793435,
|
||||
"device_name": "Chrome浏览器",
|
||||
"login_type": "扫码登录",
|
||||
"login_time": "2020-10-02 22:42:38",
|
||||
"location": "中国陕西渭南",
|
||||
"ip": "36.40.***.**"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
657
login/member_center.md
Normal file
@ -0,0 +1,657 @@
|
||||
# 个人中心
|
||||
|
||||
## 获取我的信息
|
||||
|
||||
> http://api.bilibili.com/x/member/web/account
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------ | ----------- | ---- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ----------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ---- | -------------- | --------------------------------------- |
|
||||
| mid | num | 我的UID | |
|
||||
| uname | str | 我的昵称 | |
|
||||
| userid | str | 我的用户名 | |
|
||||
| sign | str | 我的签名 | |
|
||||
| birthday | str | 我的生日 | YYYY-MM-DD |
|
||||
| sex | str | 我的性别 | 男 女 保密 |
|
||||
| nick_free | bool | 是否未设置昵称 | false:设置过昵称<br />true:未设置昵称 |
|
||||
| rank | str | 我的会员等级 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/member/web/account' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code":0,
|
||||
"message":"0",
|
||||
"ttl":1,
|
||||
"data":{
|
||||
"mid":293793435,
|
||||
"uname":"社会易姐QwQ",
|
||||
"userid":"bili_84675323391",
|
||||
"sign":"高中技术宅一枚,爱好MC&电子&8-bit音乐&数码&编程,资深猿厨,粉丝群:1136462265",
|
||||
"birthday":"2002-03-05",
|
||||
"sex":"男",
|
||||
"nick_free":false,
|
||||
"rank":"正式会员"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 查询每日奖励状态
|
||||
|
||||
> http://api.bilibili.com/x/member/web/exp/reward
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------ | ----------- | ---- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ----------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------- | ---- | -------------------- | ------------------------------------------------------------ |
|
||||
| login | bool | 每日登录 | false:未完成<br />true:已完成<br />完成奖励5经验 |
|
||||
| watch | bool | 每日观看 | false:未完成<br />true:已完成<br />完成奖励5经验 |
|
||||
| coins | num | 每日投币所奖励的经验 | 上限为50<br />注:该值更新存在延迟<br />[另外一个专门API](#查询每日投币获得经验数) |
|
||||
| share | bool | 每日分享 | false:未完成<br />true:已完成<br />完成奖励5经验 |
|
||||
| email | bool | 绑定邮箱 | false:未完成<br />true:已完成 |
|
||||
| tel | bool | 绑定手机号 | false:未完成<br />true:已完成<br />首次完成完成奖励100经验 |
|
||||
| safe_question | bool | 设置密保问题 | false:未完成<br />true:已完成 |
|
||||
| identify_card | bool | 实名认证 | false:未完成<br />true:已完成<br />首次完成奖励50经验 |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/member/web/exp/reward' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"login": true,
|
||||
"watch": true,
|
||||
"coins": 30,
|
||||
"share": true,
|
||||
"email": true,
|
||||
"tel": true,
|
||||
"safe_question": true,
|
||||
"identify_card": true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 查询每日投币获得经验数
|
||||
|
||||
>http://www.bilibili.com/plus/account/exp.php
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:仅可Cookie(SESSDATA)
|
||||
|
||||
鉴权方式:Cookie中`DedeUserID`存在且不为0
|
||||
|
||||
该接口实时更新,未发现延迟
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------------------- | ----------- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| number | num | 每日投币所奖励的经验 | 上限为50<br |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl 'http://www.bilibili.com/plus/account/exp.php' \
|
||||
-b 'SESSDATA=xxx;DedeUserID=1'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"number": 20
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 查询大会员状态
|
||||
|
||||
> http://api.bilibili.com/x/vip/web/user/info
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:仅可Cookie(SESSDATA)
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ----------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------ | ---- | ---------------- | ------------------------------------------------------------ |
|
||||
| mid | num | 我的UID | |
|
||||
| vip_type | num | 大会员类型 | 0:无<br />1:月度<br />2:年度 |
|
||||
| vip_status | num | 大会员状态 | 1:正常<br />2:由于IP地址更换过于频繁,服务被冻结<br />3:你的大会员账号风险过高,大会员功能已被锁定 |
|
||||
| vip_due_date | num | 大会员到期时间 | 时间戳 毫秒 |
|
||||
| vip_pay_type | num | 是否已购买大会员 | 0:未购买<br />1:已购买 |
|
||||
| theme_type | num | 0 | 作用尚不明确 |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/vip/web/user/info' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"mid": 293793435,
|
||||
"vip_type": 2,
|
||||
"vip_status": 1,
|
||||
"vip_due_date": 1612454400000,
|
||||
"vip_pay_type": 1,
|
||||
"theme_type": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 查询账号安全情况
|
||||
|
||||
> http://passport.bilibili.com/web/site/user/info
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
鉴权方式:如用Cookie方式认证时Cookie中`DedeUserID`存在且不为0
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------ | ----------- | ---- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ----------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------- | ---- | ---------------- | ---- |
|
||||
| account_info | obj | 账号绑定信息 | |
|
||||
| account_safe | obj | 密码安全信息 | |
|
||||
| account_sns | obj | 互联登录绑定信息 | |
|
||||
| account_other | obj | | |
|
||||
|
||||
`data`中的`account_info`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------------- | ---- | -------------- | ------------------------------- |
|
||||
| hide_tel | str | 绑定的手机号 | 星号隐藏部分信息 |
|
||||
| hide_mail | str | 绑定的邮箱 | 星号隐藏部分信息 |
|
||||
| bind_tel | bool | 是否绑定手机号 | false:未绑定<br />true:已绑定 |
|
||||
| bind_mail | bool | 是否绑定邮箱 | false:未绑定<br />true:已绑定 |
|
||||
| tel_verify | bool | 是否验证手机号 | false:未验证<br />true:已验证 |
|
||||
| mail_verify | bool | 是否验证邮箱 | false:未验证<br />true:已验证 |
|
||||
| unneeded_check | bool | 是否未设置密码 | false:已设置<br />true:未设置 |
|
||||
|
||||
`data`中的`account_safe`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ---- | ---------------- | ----------------------------- |
|
||||
| Score | num | 当前密码强度 | 0-100 |
|
||||
| pwd_level | num | 当前密码强度等级 | 1:弱<br />2:中<br />3:强 |
|
||||
| security | bool | 当前密码是否安全 | false:不安全<br />true:安全 |
|
||||
|
||||
`data`中的`account_sns`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------- | ---- | ------------ | ------------------------ |
|
||||
| weibo_bind | num | 是否绑定微博 | 0:未绑定<br />1:已绑定 |
|
||||
| qq_bind | num | 是否绑定qq | 0:未绑定<br />1:已绑定 |
|
||||
|
||||
`data`中的`account_other`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------- | ---- | ----- | ------------ |
|
||||
| skipVerify | bool | false | 作用尚不明确 |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl 'http://passport.bilibili.com/web/site/user/info' \
|
||||
-b 'SESSDATA=xxx;DedeUserID=1;'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"data": {
|
||||
"account_info": {
|
||||
"hide_tel": "153*****056",
|
||||
"hide_mail": "144****@qq.com",
|
||||
"bind_tel": true,
|
||||
"bind_mail": true,
|
||||
"tel_verify": true,
|
||||
"mail_verify": true,
|
||||
"unneeded_check": false
|
||||
},
|
||||
"account_safe": {
|
||||
"Score": 90,
|
||||
"pwd_level": 3,
|
||||
"security": true
|
||||
},
|
||||
"account_sns": {
|
||||
"weibo_bind": 1,
|
||||
"qq_bind": 1
|
||||
},
|
||||
"account_other": {
|
||||
"skipVerify": false
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 查询账号实名认证状态
|
||||
|
||||
> http://api.bilibili.com/x/member/realname/status
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------ | ----------- | ---- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ----------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------ | ---- | ------------ | ------------------------ |
|
||||
| status | num | 实名认证状态 | 0:未认证<br />1:已认证 |
|
||||
|
||||
**示例:**
|
||||
|
||||
当前状态为已认证
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/member/realname/status' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"status": 1
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 查询实名认证详细信息
|
||||
|
||||
> http://api.bilibili.com/x/member/realname/apply/status
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------ | ----------- | ---- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ----------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 数据本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ---- | ------------ | ------------------------------------------------------------ |
|
||||
| status | num | 认证状态 | 1:已认证<br />3:未认证 |
|
||||
| remark | str | 驳回信息 | 默认为空 |
|
||||
| realname | str | 实名姓名 | 星号隐藏完全信息 |
|
||||
| card | str | 证件号码 | 星号隐藏部分信息 |
|
||||
| card_type | num | 证件类型代码 | 0:身份证<br />2:港澳居民来往内地通行证<br />3:台湾居民来往大陆通行证<br />4:护照(中国签发)<br />5:外国人永久居留证<br />6:其他国家或地区身份证明 |
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/member/realname/apply/status' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"status": 1,
|
||||
"remark": "",
|
||||
"realname": "***",
|
||||
"card": "6****************7",
|
||||
"card_type": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 查询硬币变化情况
|
||||
|
||||
> http://api.bilibili.com/x/member/web/coin/log
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
仅能查询最近一周的情况
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------ | ----------- | ---- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ----------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 数据本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----- | ------ | ---------------- | ---- |
|
||||
| list | array | 变化记录条目列表 | |
|
||||
| count | num | 变化记录条目数 | |
|
||||
|
||||
`data`中的`list`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ----------------- | ---- |
|
||||
| 0 | obj | 变化记录条目1 | |
|
||||
| n | obj | 变化记录条目(n+1) | |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`list`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------ | ---- | -------- | ---------------------- |
|
||||
| time | str | 变化时间 | YYYY-MM-DD HH:MM:SS |
|
||||
| delta | num | 变化量 | 正值为收入,负值为支出 |
|
||||
| reason | str | 变化说明 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/member/web/coin/log' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"list": [
|
||||
{
|
||||
"time": "2020-05-19 23:58:29",
|
||||
"delta": -1,
|
||||
"reason": "给视频 BV1j5411s7M8 打赏"
|
||||
},
|
||||
{
|
||||
"time": "2020-05-19 16:02:53",
|
||||
"delta": -1,
|
||||
"reason": "给视频 BV1Ht4y117A1 打赏"
|
||||
},
|
||||
{
|
||||
"time": "2020-05-19 15:38:42",
|
||||
"delta": 0.1,
|
||||
"reason": "给视频 BV1nb411C7aa 打赏"
|
||||
},
|
||||
{
|
||||
"time": "2020-05-19 02:19:20",
|
||||
"delta": 1,
|
||||
"reason": "登录奖励"
|
||||
},
|
||||
{
|
||||
"time": "2020-05-18 22:34:04",
|
||||
"delta": -1,
|
||||
"reason": "给视频 BV1Bp4y1Q7uw 打赏"
|
||||
},
|
||||
{
|
||||
"time": "2020-05-18 22:33:59",
|
||||
"delta": -1,
|
||||
"reason": "给视频 BV1j5411s7M8 打赏"
|
||||
},
|
||||
{
|
||||
"time": "2020-05-18 02:45:53",
|
||||
"delta": 1,
|
||||
"reason": "登录奖励"
|
||||
},
|
||||
{
|
||||
"time": "2020-05-17 03:02:38",
|
||||
"delta": 1,
|
||||
"reason": "登录奖励"
|
||||
},
|
||||
{
|
||||
"time": "2020-05-16 01:57:02",
|
||||
"delta": 1,
|
||||
"reason": "登录奖励"
|
||||
},
|
||||
{
|
||||
"time": "2020-05-15 11:10:35",
|
||||
"delta": 0.2,
|
||||
"reason": "给视频 BV1Yt41137T6 打赏"
|
||||
},
|
||||
{
|
||||
"time": "2020-05-15 00:34:27",
|
||||
"delta": 1,
|
||||
"reason": "登录奖励"
|
||||
},
|
||||
{
|
||||
"time": "2020-05-14 02:11:37",
|
||||
"delta": 1,
|
||||
"reason": "登录奖励"
|
||||
},
|
||||
{
|
||||
"time": "2020-05-13 02:12:28",
|
||||
"delta": 1,
|
||||
"reason": "登录奖励"
|
||||
}
|
||||
],
|
||||
"count": 13
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 修改个人签名
|
||||
|
||||
> http://api.bilibili.com/x/member/web/sign/update
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)或APP
|
||||
|
||||
修改签名不会立即生效,会等待审核队列稍后生效
|
||||
|
||||
**正文参数( application/x-www-form-urlencoded ):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ---------- | ---- | ------------------------ | -------------- | -------------------------------------------- |
|
||||
| access_key | str | APP登录Token | APP方式必要 | |
|
||||
| user_sign | str | 要设置的签名内容 | 非必要 | 删除签名留空或省去即可<br />最多支持70个字符 |
|
||||
| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------------------------------------------------------ |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-111:csrf校验失败<br />40015:签名包含敏感词<br />40021:签名不能包含表情图片<br />40022:签名过长 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
更新个人标签为`高中技术宅一枚,爱好MC&电子&8-bit音乐&数码&编程,资深猿厨,粉丝群:1136462265`
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/member/web/sign/update' \
|
||||
--data-urlencode 'user_sign=高中技术宅一枚,爱好MC&电子&8-bit音乐&数码&编程,粉丝群:1136462265' \
|
||||
--data-urlencode 'csrf=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code":0,
|
||||
"message":"0",
|
||||
"ttl":1
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -1,48 +0,0 @@
|
||||
# 私信
|
||||
|
||||
**本页所有操作均需登录(SESSDATA)**
|
||||
|
||||
## 未读私信数
|
||||
|
||||
> http://api.vc.bilibili.com/session_svr/v1/session_svr/single_unread
|
||||
|
||||
*方式:GET*
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | --------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-6:账号未登录 |
|
||||
| message | str | 错误信息 | 默认为ok |
|
||||
| ttl | num | 1 | 作用尚不明确 |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
data 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------------- | ---- | -------------------- | ------------ |
|
||||
| unfollow_unread | num | 未关注用户未读私信数 | |
|
||||
| follow_unread | num | 已关注用户未读私信数 | |
|
||||
| _gt_ | num | 0 | 作用尚不明确 |
|
||||
|
||||
**示例:**
|
||||
|
||||
以下信息代表了为未关注用户未读私信数为`10`条,已关注用户未读私信数为`3`条
|
||||
|
||||
http://api.vc.bilibili.com/session_svr/v1/session_svr/single_unread
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "ok",
|
||||
"message": "ok",
|
||||
"data": {
|
||||
"unfollow_unread": 1,
|
||||
"follow_unread": 6,
|
||||
"_gt_": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
@ -1,4 +1,4 @@
|
||||
# 消息
|
||||
# 通知消息
|
||||
|
||||
**本页所有操作均需登录(SESSDATA)**
|
||||
|
||||
@ -6,7 +6,9 @@
|
||||
|
||||
> http://api.bilibili.com/x/msgfeed/unread
|
||||
|
||||
*方式:GET*
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -16,7 +18,7 @@
|
||||
| ------- | ---- | -------- | ----------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-101:账号未登录 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | 作用尚不明确 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
data 对象:
|
||||
@ -28,13 +30,19 @@ data 对象:
|
||||
| like | num | 未读点赞数 | |
|
||||
| reply | num | 未读回复数 | |
|
||||
| sys_msg | num | 未读系统通知数 | |
|
||||
| up | num | 0 | 作用尚不明确 |
|
||||
| up | num | UP主助手信息数 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
以下信息代表了未读点赞数为`10`,未读回复数为`3`,未读at消息数为`1`,未读系统通知数为`1`
|
||||
以下信息代表了未读点赞数为10,未读回复数为4,未读at消息数为3,未读系统通知数为2,UP主助手信息数为1
|
||||
|
||||
http://api.bilibili.com/x/msgfeed/unread
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/msgfeed/unread' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -42,13 +50,14 @@ http://api.bilibili.com/x/msgfeed/unread
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"at": 1,
|
||||
"at": 3,
|
||||
"chat": 0,
|
||||
"like": 10,
|
||||
"reply": 3,
|
||||
"sys_msg": 1,
|
||||
"up": 0
|
||||
"reply": 4,
|
||||
"sys_msg": 2,
|
||||
"up": 1
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
193
message/private_msg.md
Normal file
@ -0,0 +1,193 @@
|
||||
# 私信
|
||||
|
||||
**本页所有操作均需登录(SESSDATA)**
|
||||
|
||||
## 未读私信数
|
||||
|
||||
> http://api.vc.bilibili.com/session_svr/v1/session_svr/single_unread
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | --------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-6:账号未登录 |
|
||||
| message | str | 错误信息 | 默认为ok |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------------- | ---- | -------------------- | ---- |
|
||||
| unfollow_unread | num | 未关注用户未读私信数 | |
|
||||
| follow_unread | num | 已关注用户未读私信数 | |
|
||||
| _gt_ | num | 0 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
以下信息代表了为未关注用户未读私信数为`10`条,已关注用户未读私信数为`3`条
|
||||
|
||||
```shell
|
||||
curl 'http://api.vc.bilibili.com/session_svr/v1/session_svr/single_unread' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "ok",
|
||||
"message": "ok",
|
||||
"data": {
|
||||
"unfollow_unread": 1,
|
||||
"follow_unread": 6,
|
||||
"_gt_": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 发送私信(web端)
|
||||
|
||||
> http://api.vc.bilibili.com/web_im/v1/web_im/send_msg
|
||||
|
||||
*请求方式:POST*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
**正文参数(application/x-www-form-urlencoded):**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------------------ | ------------------------------------ | ------------------------ | ------ | -------------------------------------- |
|
||||
| msg[sender_uid] | num | 发送者UID | 必要 | |
|
||||
| msg[receiver_id] | num | 接收者UID | 必要 | |
|
||||
| msg[receiver_type] | num | 1 | 必要 | 固定为1 |
|
||||
| msg[msg_type] | num | 消息类型 | 必要 | 1:发送文字<br>2:发送图片<br>5:撤回消息 |
|
||||
| msg[msg_status] | num | 0 | 非必要 | |
|
||||
| msg[content] | 发送文字时:str<br />撤回消息时:num | 消息内容 | 必要 | **详见下表** |
|
||||
| csrf_token | str | CSRF Token(位于cookie) | 必要 | |
|
||||
|
||||
`msg[content]`消息内容:
|
||||
|
||||
当发送文字时(`msg[msg_type]=1`):
|
||||
|
||||
该参数为json序列字串
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ---- |
|
||||
| content | str | 私信内容 | |
|
||||
|
||||
当发送图片时(`msg[msg_type]=2`):
|
||||
|
||||
该参数为json序列字串
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | -------- | :-------------------------------------------- |
|
||||
| url | str | 图片url | 默认为B站相簿图片上传通道<br />也可用三方图床 |
|
||||
| width | num | 图片的宽 | 单位:像素(非必要) |
|
||||
| height | num | 图片的高 | 单位:像素(非必要) |
|
||||
| type | str | 图片格式 | (非必要) |
|
||||
| original | num | 1 | **作用未知**(非必要) |
|
||||
| size | num | 文件大小 | 单位:千字节(非必要)<br>__向上取整__ |
|
||||
|
||||
当撤回消息时(`msg[msg_type]=5`):
|
||||
|
||||
该参数为数值,为目标消息的` msg_key `
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ----------- |
|
||||
| code | num | 返回值 | 0:成功<br> |
|
||||
| message | str | 错误信息 | 默认为ok |
|
||||
| msg | str | 错误信息 | 默认为ok |
|
||||
| data | obj | 主体 | 出错时为空 |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | ---- | ------------ |
|
||||
| msg_key | num | | 作用尚不明确 |
|
||||
| \_gt\_ | num | 0 | 作用尚不明确 |
|
||||
|
||||
**示例:**
|
||||
|
||||
给目标用户`UID=1`发一条文字私信:
|
||||
|
||||
> up主你好,
|
||||
>
|
||||
> 催更[doge]
|
||||
|
||||
```shell
|
||||
curl 'http://api.vc.bilibili.com/web_im/v1/web_im/send_msg' \
|
||||
--data-urlencode 'msg[sender_uid]=293793435' \
|
||||
--data-urlencode 'msg[receiver_id]=1' \
|
||||
--data-urlencode 'msg[receiver_type] =1' \
|
||||
--data-urlencode 'msg[msg_type]=1' \
|
||||
--data-urlencode 'msg[content]={"content":"up主你好,\n催更[doge]"}' \
|
||||
--data-urlencode 'csrf_token=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code":0,
|
||||
"msg":"ok",
|
||||
"message":"ok",
|
||||
"data":{
|
||||
"msg_key":6852559688104417870,
|
||||
"_gt_":0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
给目标用户`UID=1`发一条图片私信:
|
||||
|
||||
> <img src="https://i1.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg" style="zoom:50%;" >
|
||||
|
||||
```shell
|
||||
curl 'http://api.vc.bilibili.com/web_im/v1/web_im/send_msg' \
|
||||
--data-urlencode 'msg[sender_uid]=293793435' \
|
||||
--data-urlencode 'msg[receiver_id]=1' \
|
||||
--data-urlencode 'msg[receiver_type] =1' \
|
||||
--data-urlencode 'msg[msg_type]=2' \
|
||||
--data-urlencode 'msg[content]={"url":https://i1.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg}' \
|
||||
--data-urlencode 'csrf_token=xxx' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code":0,
|
||||
"msg":"ok",
|
||||
"message":"ok",
|
||||
"data":{
|
||||
"msg_key":6852570013146024354,
|
||||
"_gt_":0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
8
mkdocs/mkdocs.yml
Normal file
@ -0,0 +1,8 @@
|
||||
site_name: 哔哩哔哩-API收集整理
|
||||
repo_url: https://github.com/SocialSisterYi/bilibili-API-collect
|
||||
|
||||
site_description: 本项目旨在对B站web端、移动端以及TV端散落在世界各地的野生api进行收集整理,研究使用方法并对其进行说明
|
||||
site_author: 所有的贡献者们
|
||||
|
||||
docs_dir: '..'
|
||||
site_dir: 'html'
|
59
other/API_auth.md
Normal file
@ -0,0 +1,59 @@
|
||||
# API认证与鉴权
|
||||
|
||||
## Cookie方式(web端)
|
||||
|
||||
cookie中的值在访问登录接口成功登录时,用`set-cookie`写入
|
||||
|
||||
在访问api时为`Cookie`头的数据
|
||||
|
||||
Token有效期为1月,更改密码或过期失效
|
||||
|
||||
| cookie项 | 含义 | 备注 |
|
||||
| ----------------- | ----------------- | ------------------------------------------ |
|
||||
| DedeUserID | 当前用户UID | |
|
||||
| DedeUserID__ckMd5 | 用户UID md5校验值 | |
|
||||
| SESSDATA | 登录Token | 用于用户识别与鉴权<br />作用同`access_key` |
|
||||
| bili_jct | CSRF Token | 用于操作性接口 |
|
||||
|
||||
## APP方式(手机客户端及TV端等)
|
||||
|
||||
| 参数 | 含义 | 备注 |
|
||||
| ------------- | ---------------- | ---------------------- |
|
||||
| access_key | APP登录Token | 注意必须在第一个参数 |
|
||||
| appkey | APP密钥 | |
|
||||
| refresh_token | APP刷新登录Token | 仅在刷新时使用 |
|
||||
| ts | 当前时间戳 | |
|
||||
| sign | APP签名 | 注意必须在最后一个参数 |
|
||||
|
||||
**接口鉴权:**
|
||||
|
||||
使用`appkey`作为api的必要参数,并使用除`sign`外所有参数的url字串后连接相对应的盐值进行**md5校验**(32位小写),把计算结果作为sign的值,与前面参数一同发送
|
||||
|
||||
**appkey与appsec一一对应**
|
||||
|
||||
已知的appkey与签名:
|
||||
|
||||
| appkey | appsec(sign盐值) | 平台 | 应用 | 备注 |
|
||||
| ---------------- | -------------------------------- | ---- | -------- | -------- |
|
||||
| 07da50c9a0bf829f | 75d35aa5c06fb46e40059a6a5bf671a6 | 安卓 | 概念版 | |
|
||||
| 1d8b6e7d45233436 | 560c52ccd288fed045859ed18bffd973 | 安卓 | 客户端 | 一般用途 |
|
||||
| 37207f2beaebf8d7 | e988e794d4d4b6dd43bc0e89d6e90c43 | 安卓 | biliLink | |
|
||||
| 4409e2ce8ffd12b8 | 59b43e04ad6965f34319062b478f83dd | TV | 客户端 | |
|
||||
| 5dce947fe22167f9 | | 安卓 | 必剪 | |
|
||||
| 85eb6835b0a1034e | 2ad42749773c441109bdc0191257a664 | | | |
|
||||
| aae92bc66f3edfab | af125a0d5279fd576c1b4418a3e8276d | PC | 投稿工具 | |
|
||||
| bb3101000e232e27 | 36efcfed79309338ced0380abd824ac1 | | | |
|
||||
| bca7e84c2d947ac6 | | 安卓 | 客户端 | 登录专用 |
|
||||
| cc578d267072c94d | | 安卓 | 轻视频 | |
|
||||
| cc8617fd6961e070 | | 安卓 | 漫画 | |
|
||||
| iVGUTjsxvpLeuDCf | aHRmhWMLkdeMuILqORnYZocwMBpMEOdt | 安卓 | 客户端 | 取流专用 |
|
||||
|
||||
例如:
|
||||
|
||||
参数的url为`appkey=1d8b6e7d45233436&test=123`->连接盐值后为`appkey=1d8b6e7d45233436&test=123560c52ccd288fed045859ed18bffd973`->进行md5 32bit校验,结果为`8a3fdd74911862810f5c78f65afcce5d`->最终参数为`appkey=1d8b6e7d45233436&test=123&sign=8a3fdd74911862810f5c78f65afcce5d`
|
||||
|
||||
**身份认证:**
|
||||
|
||||
使用参数` access_key `进行身份验证,有效期为1月,作用同`SESSDATA`
|
||||
|
||||
可以使用` refresh_token `进行刷新
|
155
other/bvID.md
Normal file
@ -0,0 +1,155 @@
|
||||
# bvID说明
|
||||
|
||||
2020-03-23 B站推出了全新的稿件视频ID“bvID”来接替之前的“avID”,其用法与性质等价于“avID”
|
||||
|
||||
详见:
|
||||
|
||||
1. [【升级公告】AV号全面升级至BV号(专栏)](https://www.bilibili.com/read/cv5167957)
|
||||
2. [【升级公告】AV号全面升级至BV号](https://www.bilibili.com/blackboard/activity-BV-PC.html)
|
||||
|
||||
## 格式:
|
||||
|
||||
“bvID”恒为长度为12的字符串,前两个字母为大写“BV”,后10个位base58计算结果
|
||||
|
||||
## 实质:
|
||||
|
||||
“bvID"为“avID”的base58编码,可通过算法进行相互转化
|
||||
|
||||
## avID发放方式的变化:
|
||||
|
||||
从2009-09-09 09:09:09 [av2](https://www.bilibili.com/video/av2)的发布到2020-03-28 19:45:02 [av99999999](https://www.bilibili.com/video/av99999999)的发布B站结束了以投稿时间为顺序的avID发放,改为随机发放avID
|
||||
|
||||
~~暗示B站东方要完?泪目~~
|
||||
|
||||
## av->bv算法:
|
||||
|
||||
注:本算法及示例程序仅能编码及解码avID<` 29460791296 `,无法验证avID>=` 29460791296 `的正确性
|
||||
|
||||
1. a=(avID⊕177451812)+8728348608
|
||||
2. 以i为循环变量循环6次b[i]=(a/58^i)%58
|
||||
3. 将b[i]中各个数字转换为以下码表中的字符
|
||||
|
||||
码表:
|
||||
|
||||
> fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF
|
||||
|
||||
4. 初始化字符串b[i]=`BV1 4 1 7 `
|
||||
|
||||
5. 按照以下字符顺序编码表编码并填充至b[i]
|
||||
|
||||
字符顺序编码表:
|
||||
|
||||
> 0 -> 11
|
||||
>
|
||||
> 1 -> 10
|
||||
>
|
||||
> 2 -> 3
|
||||
>
|
||||
> 3 -> 8
|
||||
>
|
||||
> 4 -> 4
|
||||
>
|
||||
> 5 -> 6
|
||||
|
||||
算法以及程序主要参考[知乎@mcfx的回答](https://www.zhihu.com/question/381784377/answer/1099438784)
|
||||
|
||||
## bv->av算法:
|
||||
|
||||
为以上算法的逆运算
|
||||
|
||||
## 转换程序:
|
||||
|
||||
目前使用**Python**与**C**作为示例
|
||||
|
||||
### python
|
||||
|
||||
```python
|
||||
table = 'fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF' #码表
|
||||
tr = {} #反查码表
|
||||
#初始化反查码表
|
||||
for i in range(58):
|
||||
tr[table[i]] = i
|
||||
s = [11, 10, 3, 8, 4, 6] #位置编码表
|
||||
xor = 177451812 #固定异或值
|
||||
add = 8728348608 #固定加法值
|
||||
|
||||
def bv2av(x):
|
||||
r = 0
|
||||
for i in range(6):
|
||||
r += tr[x[s[i]]] * 58 ** i
|
||||
return (r - add) ^ xor
|
||||
|
||||
def av2bv(x):
|
||||
x = (x ^ xor) + add
|
||||
r = list('BV1 4 1 7 ')
|
||||
for i in range(6):
|
||||
r[s[i]] = table[x // 58 ** i % 58]
|
||||
return ''. join(r)
|
||||
|
||||
print(av2bv(170001))
|
||||
print(bv2av('BV17x411w7KC'))
|
||||
```
|
||||
|
||||
输出为:
|
||||
|
||||
```
|
||||
BV17x411w7KC
|
||||
170001
|
||||
```
|
||||
|
||||
### C语言
|
||||
|
||||
```c
|
||||
#include <stdio.h>
|
||||
#include <math.h>
|
||||
#include <string.h>
|
||||
|
||||
const char table[] = "fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF"; //码表
|
||||
char tr[124]; //反查码表
|
||||
const unsigned long long Xor = 177451812; //固定异或值
|
||||
const unsigned long long add = 8728348608; //固定加法值
|
||||
const int s[] = {11, 10, 3, 8, 4, 6}; //位置编码表
|
||||
char result[13]; //编码结果
|
||||
|
||||
//初始化反查码表
|
||||
void tr_init()
|
||||
{
|
||||
for (int i = 0; i < 58; i++)
|
||||
tr[table[i]] = i;
|
||||
}
|
||||
|
||||
unsigned long long bv2av(char bv[])
|
||||
{
|
||||
unsigned long long r = 0;
|
||||
unsigned long long av;
|
||||
for (int i = 0; i < 6; i++)
|
||||
r += tr[bv[s[i]]] * (unsigned long long)pow(58, i);
|
||||
av = (r - add) ^ Xor;
|
||||
return av;
|
||||
}
|
||||
|
||||
char* av2bv(unsigned long long av)
|
||||
{
|
||||
strcpy(result,"BV1 4 1 7 ");
|
||||
av = (av ^ Xor) + add;
|
||||
for (int i = 0; i < 6; i++)
|
||||
result[s[i]] = table[(unsigned long long)(av / (unsigned long long)pow(58, i)) % 58];
|
||||
char *bv=result;
|
||||
return bv;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
tr_init();
|
||||
printf("%s\n",av2bv(170001));
|
||||
printf("%u\n",bv2av("BV17x411w7KC"));
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
输出为:
|
||||
|
||||
```
|
||||
BV17x411w7KC
|
||||
170001
|
||||
```
|
58
other/errcode.md
Normal file
@ -0,0 +1,58 @@
|
||||
# 公共错误码
|
||||
|
||||
下表为大部分接口返回值中`code`字段的值中公共的错误代码
|
||||
|
||||
## 权限类:
|
||||
|
||||
| 代码 | 含义 |
|
||||
| ---- | ------------------------ |
|
||||
| -1 | 应用程序不存在或已被封禁 |
|
||||
| -2 | Access Key错误 |
|
||||
| -3 | API校验密匙错误 |
|
||||
| -4 | 调用方对该Method没有权限 |
|
||||
| -101 | 账号未登录 |
|
||||
| -102 | 账号被封停 |
|
||||
| -103 | 积分不足 |
|
||||
| -104 | 硬币不足 |
|
||||
| -105 | 验证码错误 |
|
||||
| -106 | 账号非正式会员或在适应期 |
|
||||
| -107 | 应用不存在或者被封禁 |
|
||||
| -108 | 未绑定手机 |
|
||||
| -110 | 未绑定手机 |
|
||||
| -111 | csrf 校验失败 |
|
||||
| -112 | 系统升级中 |
|
||||
| -113 | 账号尚未实名认证 |
|
||||
| -114 | 请先绑定手机 |
|
||||
| -115 | 请先完成实名认证 |
|
||||
|
||||
## 请求类:
|
||||
|
||||
| 代码 | 含义 |
|
||||
| ---- | --------------------- |
|
||||
| -304 | 木有改动 |
|
||||
| -307 | 撞车跳转 |
|
||||
| -400 | 请求错误 |
|
||||
| -401 | 未认证 |
|
||||
| -403 | 访问权限不足 |
|
||||
| -404 | 啥都木有 |
|
||||
| -405 | 不支持该方法 |
|
||||
| -409 | 冲突 |
|
||||
| -500 | 服务器错误 |
|
||||
| -503 | 过载保护,服务暂不可用 |
|
||||
| -504 | 服务调用超时 |
|
||||
| -509 | 超出限制 |
|
||||
| -616 | 上传文件不存在 |
|
||||
| -617 | 上传文件太大 |
|
||||
| -625 | 登录失败次数太多 |
|
||||
| -626 | 用户不存在 |
|
||||
| -628 | 密码太弱 |
|
||||
| -629 | 用户名或密码错误 |
|
||||
| -632 | 操作对象数量限制 |
|
||||
| -643 | 被锁定 |
|
||||
| -650 | 用户等级太低 |
|
||||
| -652 | 重复的用户 |
|
||||
| -658 | Token 过期 |
|
||||
| -662 | 密码时间戳过期 |
|
||||
| -688 | 地理区域限制 |
|
||||
| -689 | 版权限制 |
|
||||
| -701 | 扣节操失败 |
|
24
other/ip.md
@ -2,18 +2,18 @@
|
||||
|
||||
> http://api.bilibili.com/x/web-interface/zone
|
||||
|
||||
*方式:GET*
|
||||
*请求方式:GET*
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------------ |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | 作用尚不明确 |
|
||||
| data | obj | 信息本体 | |
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
@ -26,12 +26,17 @@
|
||||
| isp | str | 运营商名 | |
|
||||
| latitude | num | 纬度 | |
|
||||
| longitude | num | 经度 | |
|
||||
| zone_id | num | ??? | |
|
||||
| zone_id | num | ip数据库ID | |
|
||||
| country_code | num | 国家/地区代码 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
http://api.bilibili.com/x/web-interface/zone
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/web-interface/zone'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -52,3 +57,4 @@ http://api.bilibili.com/x/web-interface/zone
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
44
other/time_stamp.md
Normal file
@ -0,0 +1,44 @@
|
||||
# 获取当前时间戳
|
||||
|
||||
> http://api.bilibili.com/x/report/click/now
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | ------------ | ---- |
|
||||
| now | num | 当前的时间戳 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/report/click/now'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"now": 1592666471
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
@ -1,18 +1,18 @@
|
||||
# 视频最新动态
|
||||
# 分区最新视频
|
||||
|
||||
## 获取分区最新动态视频列表
|
||||
## 获取分区最新视频列表
|
||||
|
||||
> http://api.bilibili.com/x/web-interface/dynamic/region
|
||||
|
||||
*方式:GET*
|
||||
*请求方式:GET*
|
||||
|
||||
**参数:**
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ----------- | ------ | ------- |
|
||||
| pn | url | 页码 | 非必要 | 默认为1 |
|
||||
| ps | url | 每页项数 | 非必要 | 默认为5 |
|
||||
| rid | url | 目标分区tID | 必要 | |
|
||||
| pn | num | 页码 | 非必要 | 默认为1 |
|
||||
| ps | num | 每页项数 | 非必要 | 默认为5 |
|
||||
| rid | num | 目标分区tID | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -22,14 +22,14 @@
|
||||
| ------- | ---- | -------- | --------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | 作用尚不明确 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ------ | -------- | ---- |
|
||||
| archives | arrary | 视频列表 | |
|
||||
| archives | array | 视频列表 | |
|
||||
| page | obj | 页面信息 | |
|
||||
|
||||
`data`中的`archives`数组:
|
||||
@ -42,7 +42,7 @@
|
||||
|
||||
`data`中的`archives`数组中的对象:
|
||||
|
||||
基本同「[视频详细信息](https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/video/info.md#视频详细信息(avID/bvID互转))」中的data对象
|
||||
基本同[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的data对象
|
||||
|
||||
`data`中的`page`对象:
|
||||
|
||||
@ -56,7 +56,16 @@
|
||||
|
||||
获取`tID=21`(生活->日常)分区中的2条最新动态视频信息
|
||||
|
||||
https://api.bilibili.com/x/web-interface/dynamic/region?pn=1&ps=2&rid=21
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/web-interface/dynamic/region' \
|
||||
--data-urlencode 'rid=21' \
|
||||
--data-urlencode 'ps=2' \
|
||||
--data-urlencode 'pn=1' \
|
||||
-b 'SESSDATA=xxx'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -183,3 +192,4 @@ https://api.bilibili.com/x/web-interface/dynamic/region?pn=1&ps=2&rid=21
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
@ -2,20 +2,20 @@
|
||||
|
||||
<img src="/imgs/ranking.svg" width="100" height="100"/>
|
||||
|
||||
## 获取分区排行榜视频列表
|
||||
## 获取分区视频排行榜列表
|
||||
|
||||
>http://api.bilibili.com/x/web-interface/ranking/region
|
||||
|
||||
*方式:GET*
|
||||
*请求方式:GET*
|
||||
|
||||
获取相应时间段内播放量增速为前11的视频
|
||||
|
||||
**参数:**
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | ----------- | ------ | ---------------------------------------------------- |
|
||||
| day | url | 页码 | 非必要 | 1:单日榜<br />3:三日榜<br />7:一周榜<br />默认为3 |
|
||||
| rid | url | 目标分区tID | 必要 | |
|
||||
| day | num | 页码 | 非必要 | 1:单日榜<br />3:三日榜<br />7:一周榜<br />默认为3 |
|
||||
| rid | num | 目标分区tID | 必要 | |
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -25,8 +25,8 @@
|
||||
| ------- | ------ | -------- | --------------------------- |
|
||||
| code | num | 返回值 | 0:成功<br />-400:请求错误 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | 作用尚不明确 |
|
||||
| data | arrary | 视频列表 | |
|
||||
| ttl | num | 1 | |
|
||||
| data | array | 视频列表 | |
|
||||
|
||||
`data`数组:
|
||||
|
||||
@ -39,13 +39,20 @@
|
||||
|
||||
`data`数组中的对象:
|
||||
|
||||
基本同「[视频详细信息](https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/video/info.md#视频详细信息(avID/bvID互转))」中的data对象
|
||||
基本同[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的data对象
|
||||
|
||||
**示例:**
|
||||
|
||||
获取`tID=1`(动画)分区中的三日视频排行榜
|
||||
|
||||
http://api.bilibili.com/x/web-interface/ranking/region?rid=1&day=3
|
||||
```shell
|
||||
curl -G 'http://api.bilibili.com/x/web-interface/ranking/region' \
|
||||
--data-urlencode 'rid=1' \
|
||||
--data-urlencode 'day=3'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
@ -419,3 +426,4 @@ http://api.bilibili.com/x/web-interface/ranking/region?rid=1&day=3
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
360
search/hot.md
Normal file
@ -0,0 +1,360 @@
|
||||
# 默认搜索&热搜
|
||||
|
||||
## 获取默认搜索内容(web端)
|
||||
|
||||
> http://api.bilibili.com/x/web-interface/search/default
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
默认搜索为搜索框中默认填充内容,用于官方推荐内容,若不输入点击搜索按钮跳转为`url`中的链接
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ------- |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| message | str | 错误信息 | 默认为0 |
|
||||
| ttl | num | 1 | |
|
||||
| data | obj | 信息本体 | |
|
||||
|
||||
`data`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------- | ---- | --------------- | -------------- |
|
||||
| seid | str | 搜索seID | |
|
||||
| id | num | 默认搜索ID | |
|
||||
| type | num | 0 | |
|
||||
| show_name | str | 显示文字 | |
|
||||
| name | str | 空 | |
|
||||
| goto_type | num | 跳转类型 | 1:视频 |
|
||||
| goto_value | str | 搜索目标ID | 视频:稿件avID |
|
||||
| url | str | 搜索目标跳转url | |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl 'http://api.bilibili.com/x/web-interface/search/default'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
"ttl": 1,
|
||||
"data": {
|
||||
"seid": "17607543598496143098",
|
||||
"id": 3296036255232726331,
|
||||
"type": 0,
|
||||
"show_name": "歪果仁在中国做模特能赚多少钱?",
|
||||
"name": "",
|
||||
"goto_type": 1,
|
||||
"goto_value": "243920322",
|
||||
"url": "https://www.bilibili.com/video/BV1Tv411q7gx"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## 获取热搜列表(web端)
|
||||
|
||||
> http://s.search.bilibili.com/main/hotword
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
榜单每隔固定时间统计一次,请求后返回搜索前20的关键词
|
||||
|
||||
带有转义
|
||||
|
||||
**json回复:**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ----- | ------------ | ------------- |
|
||||
| exp_str | str | ??? | |
|
||||
| code | num | 返回值 | 0:成功 |
|
||||
| cost | obj | 详细搜索用时 | 大概是吧? |
|
||||
| seid | str | 搜索seID | |
|
||||
| timestamp | num | 榜单统计时间 | 时间戳 |
|
||||
| message | str | 错误信息 | 默认为success |
|
||||
| list | array | 热搜列表 | |
|
||||
|
||||
`list`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | --------------- | ------------ |
|
||||
| 0 | obj | 榜单第1名 | |
|
||||
| n | obj | 榜单第(n+1)名 | 按照名次顺序 |
|
||||
| 19 | obj | 榜单第20名 | 最后一项 |
|
||||
|
||||
`list`数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------- | ---- | -------- | ----------------------------- |
|
||||
| status | str | 空 | |
|
||||
| keyword | str | 关键词 | |
|
||||
| goto_type | num | 0 | |
|
||||
| pos | num | 名次 | 1-20 |
|
||||
| word_type | num | 条目属性 | 1:正常<br />4:新<br />5:热 |
|
||||
| id | num | 名次 | 1-20 |
|
||||
| goto_value | str | 空 | |
|
||||
| name_type | str | 空 | |
|
||||
| icon | str | 图标url | |
|
||||
|
||||
**示例:**
|
||||
|
||||
```shell
|
||||
curl 'http://s.search.bilibili.com/main/hotword'
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"exp_str": "8104#8200#8300#8401#8500#5502#6699",
|
||||
"code": 0,
|
||||
"cost": {
|
||||
"reas_request": "0.001895",
|
||||
"params_check": "0.000127",
|
||||
"reas_response_format": "0.000098",
|
||||
"deserialize_response": "0.000080",
|
||||
"reas_request_format": "0.000076",
|
||||
"total": "0.002479",
|
||||
"main_handler": "0.002252"
|
||||
},
|
||||
"seid": "9318821020548476185",
|
||||
"timestamp": 1596034742,
|
||||
"message": "success",
|
||||
"list": [
|
||||
{
|
||||
"status": "",
|
||||
"keyword": "特朗普",
|
||||
"goto_type": 0,
|
||||
"pos": 1,
|
||||
"word_type": 1,
|
||||
"id": 1,
|
||||
"goto_value": "",
|
||||
"name_type": "",
|
||||
"icon": ""
|
||||
},
|
||||
{
|
||||
"status": "",
|
||||
"keyword": "武汉协和医院",
|
||||
"goto_type": 0,
|
||||
"pos": 2,
|
||||
"word_type": 5,
|
||||
"id": 2,
|
||||
"goto_value": "",
|
||||
"name_type": "",
|
||||
"icon": "http://i0.hdslb.com/bfs/feed-admin/e9e7a2d8497d4063421b685e72680bf1cfb99a0d.png"
|
||||
},
|
||||
{
|
||||
"status": "",
|
||||
"keyword": "元龙",
|
||||
"goto_type": 0,
|
||||
"pos": 3,
|
||||
"word_type": 5,
|
||||
"id": 3,
|
||||
"goto_value": "",
|
||||
"name_type": "",
|
||||
"icon": "http://i0.hdslb.com/bfs/feed-admin/e9e7a2d8497d4063421b685e72680bf1cfb99a0d.png"
|
||||
},
|
||||
{
|
||||
"status": "",
|
||||
"keyword": "周深",
|
||||
"goto_type": 0,
|
||||
"pos": 4,
|
||||
"word_type": 4,
|
||||
"id": 4,
|
||||
"goto_value": "",
|
||||
"name_type": "",
|
||||
"icon": "http://i0.hdslb.com/bfs/feed-admin/4d579fb61f9655316582db193118bba3a721eec0.png"
|
||||
},
|
||||
{
|
||||
"status": "",
|
||||
"keyword": "徐大sao",
|
||||
"goto_type": 0,
|
||||
"pos": 5,
|
||||
"word_type": 4,
|
||||
"id": 5,
|
||||
"goto_value": "",
|
||||
"name_type": "",
|
||||
"icon": "http://i0.hdslb.com/bfs/feed-admin/4d579fb61f9655316582db193118bba3a721eec0.png"
|
||||
},
|
||||
{
|
||||
"status": "",
|
||||
"keyword": "FPX",
|
||||
"goto_type": 0,
|
||||
"pos": 6,
|
||||
"word_type": 4,
|
||||
"id": 6,
|
||||
"goto_value": "",
|
||||
"name_type": "",
|
||||
"icon": "http://i0.hdslb.com/bfs/feed-admin/4d579fb61f9655316582db193118bba3a721eec0.png"
|
||||
},
|
||||
{
|
||||
"status": "",
|
||||
"keyword": "BLACKPINK",
|
||||
"goto_type": 0,
|
||||
"pos": 7,
|
||||
"word_type": 1,
|
||||
"id": 7,
|
||||
"goto_value": "",
|
||||
"name_type": "",
|
||||
"icon": ""
|
||||
},
|
||||
{
|
||||
"status": "",
|
||||
"keyword": "沈力",
|
||||
"goto_type": 0,
|
||||
"pos": 8,
|
||||
"word_type": 1,
|
||||
"id": 8,
|
||||
"goto_value": "",
|
||||
"name_type": "",
|
||||
"icon": ""
|
||||
},
|
||||
{
|
||||
"status": "",
|
||||
"keyword": "老番茄",
|
||||
"goto_type": 0,
|
||||
"pos": 9,
|
||||
"word_type": 1,
|
||||
"id": 9,
|
||||
"goto_value": "",
|
||||
"name_type": "",
|
||||
"icon": ""
|
||||
},
|
||||
{
|
||||
"status": "",
|
||||
"keyword": "JDG",
|
||||
"goto_type": 0,
|
||||
"pos": 10,
|
||||
"word_type": 4,
|
||||
"id": 10,
|
||||
"goto_value": "",
|
||||
"name_type": "",
|
||||
"icon": "http://i0.hdslb.com/bfs/feed-admin/4d579fb61f9655316582db193118bba3a721eec0.png"
|
||||
},
|
||||
{
|
||||
"status": "",
|
||||
"keyword": "荒废工厂",
|
||||
"goto_type": 0,
|
||||
"pos": 11,
|
||||
"word_type": 1,
|
||||
"id": 11,
|
||||
"goto_value": "",
|
||||
"name_type": "",
|
||||
"icon": ""
|
||||
},
|
||||
{
|
||||
"status": "",
|
||||
"keyword": "活着",
|
||||
"goto_type": 0,
|
||||
"pos": 12,
|
||||
"word_type": 1,
|
||||
"id": 12,
|
||||
"goto_value": "",
|
||||
"name_type": "",
|
||||
"icon": ""
|
||||
},
|
||||
{
|
||||
"status": "",
|
||||
"keyword": "明日方舟",
|
||||
"goto_type": 0,
|
||||
"pos": 13,
|
||||
"word_type": 1,
|
||||
"id": 13,
|
||||
"goto_value": "",
|
||||
"name_type": "",
|
||||
"icon": ""
|
||||
},
|
||||
{
|
||||
"status": "",
|
||||
"keyword": "创造营2020",
|
||||
"goto_type": 0,
|
||||
"pos": 14,
|
||||
"word_type": 1,
|
||||
"id": 14,
|
||||
"goto_value": "",
|
||||
"name_type": "",
|
||||
"icon": ""
|
||||
},
|
||||
{
|
||||
"status": "",
|
||||
"keyword": "黑人抬棺",
|
||||
"goto_type": 0,
|
||||
"pos": 15,
|
||||
"word_type": 1,
|
||||
"id": 15,
|
||||
"goto_value": "",
|
||||
"name_type": "",
|
||||
"icon": ""
|
||||
},
|
||||
{
|
||||
"status": "",
|
||||
"keyword": "名侦探柯南",
|
||||
"goto_type": 0,
|
||||
"pos": 16,
|
||||
"word_type": 1,
|
||||
"id": 16,
|
||||
"goto_value": "",
|
||||
"name_type": "",
|
||||
"icon": ""
|
||||
},
|
||||
{
|
||||
"status": "",
|
||||
"keyword": "fpx",
|
||||
"goto_type": 0,
|
||||
"pos": 17,
|
||||
"word_type": 1,
|
||||
"id": 17,
|
||||
"goto_value": "",
|
||||
"name_type": "",
|
||||
"icon": ""
|
||||
},
|
||||
{
|
||||
"status": "",
|
||||
"keyword": "csgo",
|
||||
"goto_type": 0,
|
||||
"pos": 18,
|
||||
"word_type": 1,
|
||||
"id": 18,
|
||||
"goto_value": "",
|
||||
"name_type": "",
|
||||
"icon": ""
|
||||
},
|
||||
{
|
||||
"status": "",
|
||||
"keyword": "正道的光",
|
||||
"goto_type": 0,
|
||||
"pos": 19,
|
||||
"word_type": 1,
|
||||
"id": 19,
|
||||
"goto_value": "",
|
||||
"name_type": "",
|
||||
"icon": ""
|
||||
},
|
||||
{
|
||||
"status": "",
|
||||
"keyword": "bts",
|
||||
"goto_type": 0,
|
||||
"pos": 20,
|
||||
"word_type": 1,
|
||||
"id": 20,
|
||||
"goto_value": "",
|
||||
"name_type": "",
|
||||
"icon": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|