diff --git a/README.md b/README.md index d3d4b09..ec5b682 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/music/coin&fav.md b/audio/coin&fav.md similarity index 100% rename from music/coin&fav.md rename to audio/coin&fav.md diff --git a/music/info.md b/audio/info.md similarity index 100% rename from music/info.md rename to audio/info.md diff --git a/music/music_list.md b/audio/music_list.md similarity index 99% rename from music/music_list.md rename to audio/music_list.md index 461c926..132e77b 100644 --- a/music/music_list.md +++ b/audio/music_list.md @@ -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* diff --git a/audio/musicstream_url.md b/audio/musicstream_url.md new file mode 100644 index 0000000..62ddce1 --- /dev/null +++ b/audio/musicstream_url.md @@ -0,0 +1,266 @@ +# 音频流URL + + + +音质`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:成功
7201006:未找到或已下架
72000000:请求错误 | +| msg | str | 错误信息 | 默认为success | +| data | obj | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ----- | --------- | --------------------------------------- | +| sid | num | 音频auID | | +| type | num | 音质标识 | -1:试听片段(192K)
1:192K | +| info | str | 空 | **作用尚不明确** | +| timeout | num | 有效时长 | 单位为秒
一般为3h | +| size | num | 文件大小 | 单位为字节
当`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或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:成功
7201006:未找到或已下架
72000000:请求错误 | +| msg | str | 错误信息 | 默认为success | +| data | obj | 数据本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ----- | ----------- | ------------------------------------------------------------ | +| sid | num | 音频auID | | +| type | num | 音质标识 | -1:试听片段(192K)
0:128K
1:192K
2:320K
3:FLAC | +| info | str | 空 | **作用尚不明确** | +| timeout | num | 有效时长 | 单位为秒
一般为3h | +| size | num | 文件大小 | 单位为字节
当`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:不需要
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文件 \ No newline at end of file diff --git a/music/status_number.md b/audio/status_number.md similarity index 100% rename from music/status_number.md rename to audio/status_number.md diff --git a/cheese/videostream_url.md b/cheese/videostream_url.md index 61cc9ea..7cbf3f8 100644 --- a/cheese/videostream_url.md +++ b/cheese/videostream_url.md @@ -2,17 +2,26 @@ -## 获取课程视频流URL +## 获取课程视频流URL(web端) > http://api.bilibili.com/pugv/player/web/playurl -*请求方式:GET* +*请求方式:GET* -本接口为课程视频专用,故与普通视频不互通 +认证方式:Cookie(SESSDATA) -获取非试看课程视频及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 | **重要**
链接有效时间为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为例:** diff --git a/creativecenter/railgun.md b/creativecenter/railgun.md index 72e8694..a939b87 100644 --- a/creativecenter/railgun.md +++ b/creativecenter/railgun.md @@ -4,13 +4,13 @@ 电磁力每周日下午刷新 -## 获取电磁力等级 +## 获取电磁力等级(web端) > http://member.bilibili.com/x/web/elec/user *请求方式:GET* -认证方式:Cookie(SESSDATA) +认证方式:仅可Cookie(SESSDATA) **json回复:** @@ -51,13 +51,19 @@ curl 'http://member.bilibili.com/x/web/elec/user'\ } ``` -## 获取电磁力详细数值 +## 获取电磁力详细数值(双端) > http://api.bilibili.com/studio/up-rating/rating/summary *请求方式:GET* -认证方式:Cookie(SESSDATA) +认证方式:Cookie(SESSDATA)或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,19 +146,20 @@ curl 'http://api.bilibili.com/studio/up-rating/rating/summary'\ } ``` -## 获取电磁力数值历史变化 +## 获取电磁力数值历史变化(双端) > http://api.bilibili.com/studio/up-rating/rating/history *请求方式:GET* -认证方式:Cookie(SESSDATA) +认证方式:Cookie(SESSDATA)或APP **url参数:** -| 参数名 | 类型 | 内容 | 必要性 | 备注 | -| ------ | ---- | ------------ | ------ | -------------- | -| type | num | 目标数据类型 | 必要 | 类型代码见下表 | +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------ | ----------- | -------------- | +| 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, diff --git a/creativecenter/statistics&data.md b/creativecenter/statistics&data.md index 214c142..de4ba6b 100644 --- a/creativecenter/statistics&data.md +++ b/creativecenter/statistics&data.md @@ -10,7 +10,7 @@ *请求方式:GET* -认证方式:Cookie(SESSDATA) +认证方式:仅可Cookie(SESSDATA) **json回复:** @@ -165,7 +165,7 @@ curl 'http://member.bilibili.com/x/web/index/stat'\ *请求方式:GET* -认证方式:Cookie(SESSDATA) +认证方式:仅可Cookie(SESSDATA) **json回复:** @@ -230,7 +230,7 @@ curl 'http://member.bilibili.com/x/web/data/article'\ *请求方式:GET* -认证方式:Cookie(SESSDATA) +认证方式:仅可Cookie(SESSDATA) 数据为前30天 @@ -325,7 +325,7 @@ curl -G 'http://member.bilibili.com/x/web/data/pandect'\ *请求方式:GET* -认证方式:Cookie(SESSDATA) +认证方式:仅可Cookie(SESSDATA) 数据为前30天 @@ -415,7 +415,7 @@ curl -G 'http://member.bilibili.com/x/web/data/article/thirty'\ *请求方式:GET* -认证方式:Cookie(SESSDATA) +认证方式:仅可Cookie(SESSDATA) 数据为上一天的 @@ -551,7 +551,7 @@ curl -G 'http://member.bilibili.com/x/web/data/survey'\ *请求方式:GET* -认证方式:Cookie(SESSDATA) +认证方式:仅可Cookie(SESSDATA) **json回复:** @@ -630,7 +630,7 @@ curl 'http://member.bilibili.com/x/web/data/playsource'\ *请求方式:GET* -认证方式:Cookie(SESSDATA) +认证方式:仅可Cookie(SESSDATA) **json回复:** diff --git a/music/musicStream_url.md b/music/musicStream_url.md deleted file mode 100644 index 2ea5d93..0000000 --- a/music/musicStream_url.md +++ /dev/null @@ -1,57 +0,0 @@ -# 音频流URL - - - -## 获取音频流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:成功
7201006:未找到或已下架 | -|msg |str|对`code`的描述|"success"
"收听出错,音频未找到或已下架"| -|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为正常
-1为付费 | -|cdns |array |音频url | | - -`data`对象的`cdns`数组: - - -| 项 | 类型 | 内容 | 备注 | -|------|-----|-------------------|---------------------------------------------------------------------------------| -| 0 | str | 音频url |当`data`对象`type`为1时可以获得完整版
当`data`对象`type`为-1时可以获得30秒试听版本| -| 1 | str | 音频url(备用) | | - -**发送音频url请求时需要 `user-agent`值不为空** 否则会失败 - -默认为192Kbps(标准)品质 diff --git a/video/tags.md b/video/tags.md index 5526e80..2a03ae6 100644 --- a/video/tags.md +++ b/video/tags.md @@ -6,6 +6,8 @@ *请求方式:GET* +认证方式:Cookie(SESSDATA) + **url参数:** | 参数名 | 类型 | 内容 | 必要性 | 备注 | @@ -46,12 +48,12 @@ | state | num | 0 | | | ctime | num | 创建时间 | 时间戳 | | count | obj | 状态数 | | -| is_atten | num | 是否关注 | 0:未关注
1:已关注
需要登录(SESSDATA)
未登录为0 | +| is_atten | num | 是否关注 | 0:未关注
1:已关注
需要登录(Cookie)
未登录为0 | | likes | num | 0 | 作用尚不明确 | | hates | num | 0 | 作用尚不明确 | | attribute | num | 0 | 作用尚不明确 | -| liked | num | 是否已经点赞 | 0:未点赞
1:已点赞
需要登录(SESSDATA)
未登录为0 | -| hated | num | 是否已经点踩 | 0:未点踩
1:已点踩
需要登录(SESSDATA)
未登录为0 | +| liked | num | 是否已经点赞 | 0:未点赞
1:已点赞
需要登录(Cookie)
未登录为0 | +| hated | num | 是否已经点踩 | 0:未点踩
1:已点踩
需要登录(Cookie)
未登录为0 | `data`数组中的对象中的`count`对象: @@ -201,7 +203,7 @@ curl -G 'http://api.bilibili.com/x/tag/archive/tags'\ *请求方式:POST* -需要登录(SESSDATA) +认证方式:Cookie(SESSDATA) 重复请求为取消 @@ -249,7 +251,7 @@ curl 'http://api.bilibili.com/x/tag/archive/like2'\ *请求方式:POST* -需要登录(SESSDATA) +认证方式:Cookie(SESSDATA) 重复访问为取消 diff --git a/video/videostream_url.md b/video/videostream_url.md index 9d99814..f93e844 100644 --- a/video/videostream_url.md +++ b/video/videostream_url.md @@ -2,15 +2,25 @@ -## 获取视频流URL +## 获取视频流URL(web端) > http://api.bilibili.com/x/player/playurl *请求方式:GET* -获取会员专属视频及720P以上清晰度视频时需要登录(SESSDATA) +认证方式:Cookie(SESSDATA) -会员专属及高帧率(码率)视频需要带有大会员的账号token(SESSDATA) +--- + +关于视频流会员鉴权: + +- 获取720P及以上清晰度视频时需要登录(Cookie) + +- 获取高帧率(1080P60)/高码率(1080P+)视频时需要有大会员的账号登录(Cookie) + +- 获取会员专属视频时需要登录(Cookie) + +--- 获取的url有效时间为120min,超时失效需要重新获取 @@ -103,14 +113,14 @@ | size | num | 视频大小 | 单位为Byte | | ahead | str | 空 | 作用尚不明确 | | vhead | str | 空 | 作用尚不明确 | -| url | str | 视频流url | **重要**
链接有效时间为120min | +| url | str | 视频流url | **注:url内容存在转义符**
链接有效时间为120min | | backup_url | array | 备用视频流 | | `durl`数组中的对象中的`backup_url`数组: -| 项 | 类型 | 内容 | 备注 | -| ---- | ---- | ------------- | ---------------- | -| 0 | str | 备用视频流url | 有效时间为120min | +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------- | ----------------------------------------------- | +| 0 | str | 备用视频流url | **注:url内容存在转义符**
有效时间为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为例:**