Files
Bilibili-gadget/bilibili-API-collect-master/docs/manga/Download.md
T
mckero 8db1d171a0 feat: 重大优化更新 - 修复v14.0并发布Pro版
✨ 新功能:
- 创建bilibili_audio_downloader_pro.py (Pro版) - 全新架构重构
- 添加config.json配置文件支持
- 新增INSTALL.md详细安装指南
- 新增VERSION_COMPARISON.md版本对比说明

🐛 Bug修复 (v14.0):
- 修复中文编码显示问题
- 修复ffmpeg进度条计算不准确
- 改进yt-dlp下载进度解析
- 添加重试机制和超时设置
- 完善错误处理和日志记录

🏗️ Pro版优势:
- 面向对象架构设计,代码更清晰
- 自定义异常类和智能错误恢复
- 准确的进度条显示算法
- 完整的日志系统
- 灵活的配置管理
- 更好的用户体验

📚 文档更新:
- 更新README.md,添加版本对比指引
- 更新requirements.txt依赖列表
- 完善项目文档结构
2025-09-21 12:02:11 +08:00

9.3 KiB
Raw Blame History

获取当前话全部图片地址

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 秒级时间戳 非必要

正文参数( application/json ):

参数名 类型 内容 必要性 备注
epId(ep_id) num 当前话的id 必要

json回复:

根对象:

字段 类型 内容 备注
code num 返回值 0:成功
msg str 错误信息
data obj

data 对象:

字段 类型 内容 备注
path str .index 文件路径
images array 本话图片信息
last_modified str 本话信息最后修改时间
host str https://manga.hdslb.com
video obj

images 数组中的对象:

字段 类型 内容 备注
path str 图片的路径 不包含host
x num 图片宽度 单位:像素px
y num 图片高度 单位:像素px
video_path str
video_size str

video 对象:

字段 类型 内容 备注
svid str
filename str
route str
resource array
raw_width str
raw_height str
raw_rotate str
img_urls array
bin_url str
img_x_len num
img_x_size num
img_y_len num
img_y_size num

示例:

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

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 秒级时间戳 非必要

正文参数( application/json ):

参数名 类型 内容 必要性 备注
urls str 请求token的图片地址 必要 [\"https://i0.hdslb.com{path}\"]
{path}代表图片的相对网站路径,支持jpg和webp

json回复:

根对象:

字段 类型 内容 备注
code num 返回值 0:成功
msg str 错误信息
data array

data 数组中的对象:

字段 类型 内容 备注
url str 图片下载的地址 此时网址开头 https://manga.hdslb.com
token str 图片下载需要的token

示例:

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"
    }
  ]
}

下载图片

请求方式: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 直接访问 https://(i0|i1).hdslb.com/bfs/(manga|new_dyn|archive)/11e404e602fa9f709bfb89d692ac56d2e17f974d.jpg均无法获取