修改并补完音频流url 并勘误

This commit is contained in:
SocialSisterYi 2020-07-21 17:38:44 +08:00
parent aeeffc2a43
commit cb7185b509
12 changed files with 359 additions and 105 deletions

View File

@ -80,12 +80,12 @@
- [基本信息](article/info.md)×
- [点赞&投币&收藏](article/like_coin_fav.md)×
- 文集基本信息
- [音频](music)
- [歌曲基本信息](music/info.md)√
- [歌单&音频收藏夹详细信息](music/music_list.md)×
- [状态数](music/status_number.md)×
- [投币&收藏](music/coin&fav.md)×
- [播放&下载地址(音频流)](music/musicStream_url.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

View File

@ -2,7 +2,7 @@
## 查询自己创建的歌单
> https://www.bilibili.com/audio/music-service-c/web/collections/list
> http://www.bilibili.com/audio/music-service-c/web/collections/list
*请求方式GET*

266
audio/musicstream_url.md Normal file
View File

@ -0,0 +1,266 @@
# 音频流URL
<img src="/imgs/download.svg" width="100" height="100"/>
音质`qn`参数:
| 代码 | 含义 |
| ---- | -------------------- |
| 0 | 流畅 128K |
| 1 | 标准 192K |
| 2 | 高品质 320K |
| 3 | 无损 FLAC (大会员) |
## 获取音频流URLweb端
> 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 />1192K |
| 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'
```
```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
}
}
```
## 获取音频流URL可获取付费音频双端
> http://api.bilibili.com/audio/music-service-c/url
*请求方式GET*
认证方式APP或CookieSESSDATA
**注付费音乐需要有带大会员或音乐包的账号登录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 />0128K<br />1192K<br />2320K<br />3FLAC |
| 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'
```
```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"
}
}
```
## 音频流的获取
将`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文件

View File

@ -2,17 +2,26 @@
<img src="/imgs/download.svg" width="100" height="100"/>
## 获取课程视频流URL
## 获取课程视频流URLweb端
> http://api.bilibili.com/pugv/player/web/playurl
*请求方式:GET*
*请求方式GET*
本接口为课程视频专用,故与普通视频不互通
认证方式CookieSESSDATA
获取非试看课程视频及720P以上清晰度视频时需要登录(SESSDATA)购买的课程也需要使用登录进行鉴权
**注:本接口为课程视频专用,故与普通视频不互通**
高帧率码率视频需要带有大会员的账号token(SESSDATA)
---
关于视频流会员鉴权:
- 获取720P及以上清晰度视频时需要登录Cookie
- 获取高帧率1080P60/高码率1080P+视频时需要有大会员的账号登录Cookie
- 获取正式课程视频非试看时需要有已经购买的账号登录Cookie
---
获取的url有效时间为120min超时失效需要重新获取
@ -95,7 +104,7 @@
| length | num | 视频长度 | 单位为毫秒 |
| vhead | str | 空 | 作用尚不明确 |
| backup_url | array | 备用视频流 | |
| url | str | 视频流url | **重要**<br />链接有效时间为120min |
| url | str | 视频流url | 链接有效时间为120min |
| order | num | 视频分段序号 | 某些视频会分为多个片段 |
`durl`数组中的对象中的`backup_url`数组:
@ -236,9 +245,9 @@ curl -G 'http://api.bilibili.com/pugv/player/web/playurl'\
将`data`.`durl`.`[1-n]`.`url`或`data`.`durl`.`[1-n]`.`backup_url`.`[0]`中的内容作为url进行GET操作, 如果有多个视频, 需要手动合并处理
需要验证请求Header中`referer`为 `.bilibili.com`域名下(防盗链)
需要验证请求`referer`为 `.bilibili.com`域名下(防盗链),且`user-agent` 不为空
**referer或错误的情况会返回403 Forbidden**故无法获取
**referer或user-agent错误的情况会返回403 Forbidden**故无法获取
**以上述视频url为例**

View File

@ -4,13 +4,13 @@
电磁力每周日下午刷新
## 获取电磁力等级
## 获取电磁力等级web端
> http://member.bilibili.com/x/web/elec/user
*请求方式GET*
认证方式CookieSESSDATA
认证方式:仅可CookieSESSDATA
**json回复**
@ -51,13 +51,19 @@ curl 'http://member.bilibili.com/x/web/elec/user'\
}
```
## 获取电磁力详细数值
## 获取电磁力详细数值(双端)
> http://api.bilibili.com/studio/up-rating/rating/summary
*请求方式GET*
认证方式CookieSESSDATA
认证方式CookieSESSDATA或APP
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ---- | ------------ | ----------- | ---- |
| access_key | str | APP登录Token | APP方式必要 | |
**json回复**
@ -91,11 +97,20 @@ curl 'http://member.bilibili.com/x/web/elec/user'\
**示例:**
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'
```
```json
{
"code": 0,
@ -131,18 +146,19 @@ curl 'http://api.bilibili.com/studio/up-rating/rating/summary'\
}
```
## 获取电磁力数值历史变化
## 获取电磁力数值历史变化(双端)
> http://api.bilibili.com/studio/up-rating/rating/history
*请求方式GET*
认证方式CookieSESSDATA
认证方式CookieSESSDATA或APP
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ------------ | ------ | -------------- |
| ---------- | ---- | ------------ | ----------- | -------------- |
| access_key | str | APP登录Token | APP方式必要 | |
| type | num | 目标数据类型 | 必要 | 类型代码见下表 |
类型代码`type`
@ -193,12 +209,22 @@ curl 'http://api.bilibili.com/studio/up-rating/rating/summary'\
查询创作力的历史变化
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'
```
```json
{
"code": 0,

View File

@ -10,7 +10,7 @@
*请求方式GET*
认证方式CookieSESSDATA
认证方式:仅可CookieSESSDATA
**json回复**
@ -165,7 +165,7 @@ curl 'http://member.bilibili.com/x/web/index/stat'\
*请求方式GET*
认证方式CookieSESSDATA
认证方式:仅可CookieSESSDATA
**json回复**
@ -230,7 +230,7 @@ curl 'http://member.bilibili.com/x/web/data/article'\
*请求方式GET*
认证方式CookieSESSDATA
认证方式:仅可CookieSESSDATA
数据为前30天
@ -325,7 +325,7 @@ curl -G 'http://member.bilibili.com/x/web/data/pandect'\
*请求方式GET*
认证方式CookieSESSDATA
认证方式:仅可CookieSESSDATA
数据为前30天
@ -415,7 +415,7 @@ curl -G 'http://member.bilibili.com/x/web/data/article/thirty'\
*请求方式GET*
认证方式CookieSESSDATA
认证方式:仅可CookieSESSDATA
数据为上一天的
@ -551,7 +551,7 @@ curl -G 'http://member.bilibili.com/x/web/data/survey'\
*请求方式GET*
认证方式CookieSESSDATA
认证方式:仅可CookieSESSDATA
**json回复**
@ -630,7 +630,7 @@ curl 'http://member.bilibili.com/x/web/data/playsource'\
*请求方式GET*
认证方式CookieSESSDATA
认证方式:仅可CookieSESSDATA
**json回复**

View File

@ -1,57 +0,0 @@
# 音频流URL
<img src="/imgs/download.svg" width="100" height="100"/>
## 获取音频流URL
> http://www.bilibili.com/audio/music-service-c/web/url
*请求方式GET*
__\*Web版无法播放付费歌曲__
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------- | ---- | ------ | ----- | -------------- |
|sid |num |音频auID |必要 |不需要au前缀 |
|privilege|num |一般为2| 非必要 |**作用尚不明确**|
|quality |num |一般为2| 非必要 |**作用尚不明确**|
_只测试了`quality`在\[-2,10\]范围内没法调整 音频品质_
**json回复**
根对象:
|字段|类型| 内容 | 备注 |
|----|---|-------------|-----------------------------------------|
|code|num| 返回值 | 0:成功<br>7201006:未找到或已下架 |
|msg |str|对`code`的描述|"success"<br>"收听出错,音频未找到或已下架"|
|data|obj| 数据本体 |当`code`为7201006时不存在 |
`data`对象:
|字段 |类型 |内容 |备注 |
|---------|--------|---------|--------------------------------|
|cover |nul |空 |**作用尚不明确** |
|info |str |空字符串 |**作用尚不明确** |
|qualities|nul |空 |**作用尚不明确** |
|sid |num |音频auID | |
|size |num |文件大小 |单位:字节,当`type`为-1时`size`为0|
|timeout |num |有效时长 |一般为三个小时 |
|title |nul |空 |**作用尚不明确** |
|type |num |音频版权 |1为正常<br>-1为付费 |
|cdns |array |音频url | |
`data`对象的`cdns`数组:
| 项 | 类型 | 内容 | 备注 |
|------|-----|-------------------|---------------------------------------------------------------------------------|
| 0 | str | 音频url |当`data`对象`type`为1时可以获得完整版<br>当`data`对象`type`为-1时可以获得30秒试听版本|
| 1 | str | 音频url(备用) | |
**发送音频url请求时需要 `user-agent`值不为空** 否则会失败
默认为192Kbps(标准)品质

View File

@ -6,6 +6,8 @@
*请求方式GET*
认证方式CookieSESSDATA
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
@ -46,12 +48,12 @@
| state | num | 0 | |
| ctime | num | 创建时间 | 时间戳 |
| count | obj | 状态数 | |
| is_atten | num | 是否关注 | 0未关注<br />1已关注<br />需要登录(SESSDATA) <br />未登录为0 |
| is_atten | num | 是否关注 | 0未关注<br />1已关注<br />需要登录(Cookie) <br />未登录为0 |
| likes | num | 0 | 作用尚不明确 |
| hates | num | 0 | 作用尚不明确 |
| attribute | num | 0 | 作用尚不明确 |
| liked | num | 是否已经点赞 | 0未点赞<br />1已点赞<br />需要登录(SESSDATA) <br />未登录为0 |
| hated | num | 是否已经点踩 | 0未点踩<br />1已点踩<br />需要登录(SESSDATA) <br />未登录为0 |
| liked | num | 是否已经点赞 | 0未点赞<br />1已点赞<br />需要登录(Cookie) <br />未登录为0 |
| hated | num | 是否已经点踩 | 0未点踩<br />1已点踩<br />需要登录(Cookie) <br />未登录为0 |
`data`数组中的对象中的`count`对象:
@ -201,7 +203,7 @@ curl -G 'http://api.bilibili.com/x/tag/archive/tags'\
*请求方式POST*
需要登录(SESSDATA)
认证方式CookieSESSDATA
重复请求为取消
@ -249,7 +251,7 @@ curl 'http://api.bilibili.com/x/tag/archive/like2'\
*请求方式POST*
需要登录(SESSDATA)
认证方式CookieSESSDATA
重复访问为取消

View File

@ -2,15 +2,25 @@
<img src="/imgs/download.svg" width="100" height="100"/>
## 获取视频流URL
## 获取视频流URLweb端
> http://api.bilibili.com/x/player/playurl
*请求方式GET*
获取会员专属视频及720P以上清晰度视频时需要登录(SESSDATA)
认证方式CookieSESSDATA
会员专属及高帧率码率视频需要带有大会员的账号token(SESSDATA)
---
关于视频流会员鉴权:
- 获取720P及以上清晰度视频时需要登录Cookie
- 获取高帧率1080P60/高码率1080P+视频时需要有大会员的账号登录Cookie
- 获取会员专属视频时需要登录Cookie
---
获取的url有效时间为120min超时失效需要重新获取
@ -103,14 +113,14 @@
| size | num | 视频大小 | 单位为Byte |
| ahead | str | 空 | 作用尚不明确 |
| vhead | str | 空 | 作用尚不明确 |
| url | str | 视频流url | **重要**<br />链接有效时间为120min |
| url | str | 视频流url | **url内容存在转义符**<br />链接有效时间为120min |
| backup_url | array | 备用视频流 | |
`durl`数组中的对象中的`backup_url`数组:
| 项 | 类型 | 内容 | 备注 |
| ---- | ---- | ------------- | ---------------- |
| 0 | str | 备用视频流url | 有效时间为120min |
| ---- | ---- | ------------- | ----------------------------------------------- |
| 0 | str | 备用视频流url | **注url内容存在转义符**<br />有效时间为120min |
**示例:**
@ -267,13 +277,11 @@ curl -G 'http://api.bilibili.com/x/player/playurl'\
## 视频的获取
将`data`.`durl`.`[1-n]`.`url`或`data`.`durl`.`[1-n]`.`backup_url`.`[0]`中的内容作为url进行GET操作, 如果有多个视频, 需要手动合并处理
将`data`.`durl`.`[1-n]`.`url`或`data`.`durl`.`[1-n]`.`backup_url`.`[0]`中的内容作为url进行GET操作, 如果有多个视频, 需要手动合并处理(注意转义符)
需要验证请求Header中`referer`为 `.bilibili.com`域名下(防盗链)
需要验证请求`referer`为 `.bilibili.com`域名下(防盗链),且`user-agent` 不为空
且`user-agent` 不为空 否则会403)
**无referer或错误的情况会返回403 Forbidden**故无法获取
**referer或user-agent错误的情况会返回403 Forbidden**故无法获取
**以上述视频url为例**