B站漫画下载接口详解:哔哩哔哩-API收集整理中的离线阅读功能
你是否曾遇到在通勤途中想看漫画却苦于网络不稳定的情况?是否希望将喜欢的B站漫画保存到本地,随时离线阅读?本文将详细解析B站漫画下载接口的使用方法,基于哔哩哔哩-API收集整理项目中的离线阅读功能,帮助你轻松实现漫画的本地存储与阅读。读完本文后,你将能够掌握获取漫画图片地址、获取图片token以及最终下载图片的完整流程。
漫画下载接口概述
B站漫画下载功能主要通过一系列API接口实现,包括获取当前话全部图片地址、获取图片token以及下载图片。这些接口的详细定义可以在项目的docs/manga/Download.md文件中找到。通过这些接口,用户可以将漫画章节的图片保存到本地,实现离线阅读。
获取当前话全部图片地址
要下载漫画,首先需要获取当前话所有图片的地址。这一步通过调用GetImageIndex接口实现。
接口基本信息
- 接口地址:https://manga.bilibili.com/twirp/comic.v1.Comic/GetImageIndex
- 请求方式:POST
- 认证方式:Cookie(SESSDATA)/ APP
URL参数
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|---|---|---|---|---|
| access_key | str | APP登录凭证 | 必要 | 使用APP鉴权方式时必填 |
| appkey | str | cc8617fd6961e070 | 非必要 | |
| mobi_app | str | android_comic | 非必要 | |
| version | str | 4.21.0 | 非必要 | |
| build | str | 36421000 | 非必要 | |
| channel | str | bilicomic | 非必要 | |
| platform | str | android | 非必要 | |
| device | str | android | 非必要 | |
| buvid | str | XY118701XXXXXXXXX104911DXXXXXCAEXXXXE | 非必要 | 长度为37 |
| machine | str | 非必要 | 手机品牌+型号 | |
| is_teenager | num | 0 | 非必要 | |
| no_recommend | num | 0 | 非必要 | |
| ts | num | 秒级时间戳 | 非必要 |
正文参数
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|---|---|---|---|---|
| epId(ep_id) | num | 当前话的id | 必要 |
请求示例
curl -L -X POST 'https://manga.bilibili.com/twirp/comic.v1.Comic/GetImageIndex' \
-H 'Cookie: SESSDATA=xxx;' \
-H 'Content-Type: application/json' \
--data-raw '{
"ep_id": 321912
}'
响应示例
查看响应示例
{
"code": 0,
"msg": "",
"data": {
"path": "/bfs/manga/26564/321912/data.index?token=80eab62fef85c1c134a6399f817a938f&ts=63404145",
"images": [
{
"path": "/bfs/manga/11e404e602fa9f709bfb89d692ac56d2e17f974d.jpg",
"x": 1600,
"y": 2268,
"video_path": "",
"video_size": "0"
},
{
"path": "/bfs/manga/bf1c48540b68f473b429317d8f6fa8cdb6eed3a5.jpg",
"x": 1600,
"y": 2268,
"video_path": "",
"video_size": "0"
},
{
"path": "/bfs/manga/a46cfe90cfb49c67a4dbfc0002e5bc3d87d02963.jpg",
"x": 1600,
"y": 2268,
"video_path": "",
"video_size": "0"
}
],
"last_modified": "2019-05-13 21:15:53",
"host": "https://manga.hdslb.com",
"video": {
"svid": "",
"filename": "",
"route": "",
"resource": [],
"raw_width": "0",
"raw_height": "0",
"raw_rotate": "0",
"img_urls": [],
"bin_url": "",
"img_x_len": 10,
"img_x_size": 160,
"img_y_len": 10,
"img_y_size": 90
}
}
}
通过上述请求,我们可以得到当前话所有图片的路径、宽度、高度等信息,为后续下载图片做好准备。
获取图片token
获取到图片地址后,还需要获取图片的token才能进行下载。这一步通过调用ImageToken接口实现。
接口基本信息
- 接口地址:https://manga.bilibili.com/twirp/comic.v1.Comic/ImageToken
- 请求方式:POST
- 认证方式:Cookie(SESSDATA)/ APP
URL参数
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|---|---|---|---|---|
| access_key | str | APP登录凭证 | 必要 | 使用APP鉴权方式时必填 |
| appkey | str | cc8617fd6961e070 | 非必要 | |
| mobi_app | str | android_comic | 非必要 | |
| version | str | 4.21.0 | 非必要 | |
| build | str | 36421000 | 非必要 | |
| channel | str | bilicomic | 非必要 | |
| platform | str | android | 非必要 | |
| device | str | android | 非必要 | |
| buvid | str | XY118701XXXXXXXXX104911DXXXXXCAEXXXXE | 非必要 | 长度为37 |
| machine | str | samsung+SM-G9730 | 非必要 | 手机品牌+型号 |
| is_teenager | num | 0 | 非必要 | |
| no_recommend | num | 0 | 非必要 | |
| ts | num | 秒级时间戳 | 非必要 |
正文参数
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|---|---|---|---|---|
| urls | str | 请求token的图片地址 | 必要 | [\"https://i0.hdslb.com{path}\"] {path}代表图片的相对网站路径,支持jpg和webp |
请求示例
curl -L -X POST 'https://manga.bilibili.com/twirp/comic.v1.Comic/ImageToken' \
-H 'Cookie: SESSDATA=xxx;' \
-H 'Content-Type: application/json' \
--data-raw '{
"urls": "[\"https://i0.hdslb.com/bfs/manga/11e404e602fa9f709bfb89d692ac56d2e17f974d.jpg\"]"
}'
响应示例
查看响应示例
{
"code": 0,
"msg": "",
"data": [
{
"url": "https://manga.hdslb.com/bfs/manga/11e404e602fa9f709bfb89d692ac56d2e17f974d.jpg",
"token": "36931815abb35857627a22c347dc1c86&ts=634045c2"
}
]
}
获取到的token是临时有效的,需要及时使用。
下载图片
有了图片地址和token,就可以开始下载图片了。
下载方法
下载图片的请求方式为GET。在上一步获取token的基础上,构建如下的url:
例如获取到的token信息如下:
{
"code": 0,
"msg": "",
"data": [
{
"url": "https://manga.hdslb.com/bfs/manga/11e404e602fa9f709bfb89d692ac56d2e17f974d.jpg",
"token": "36931815abb35857627a22c347dc1c86&ts=634045c2"
}
]
}
则访问以下网址即可下载图片,注意需要添加?token=参数:
https://manga.hdslb.com/bfs/manga/11e404e602fa9f709bfb89d692ac56d2e17f974d.jpg?token=36931815abb35857627a22c347dc1c86&ts=634045c2
注:若不加取图Token直接访问图片地址,将无法获取图片。
下载流程示意图
通过以上三个步骤,我们就可以完整地实现B站漫画的下载,轻松享受离线阅读的乐趣。如果你想了解更多B站API的使用方法,可以查阅项目的官方文档。
希望本文对你理解和使用B站漫画下载接口有所帮助,如有任何问题,欢迎在项目中提出issue进行交流。记得点赞、收藏、关注,获取更多B站API相关的实用教程!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



