import{_ as s,c as a,a as n,o as d}from"./app-Dgsdh8A6.js";const l={};function e(o,t){return d(),a("div",null,t[0]||(t[0]=[n(`

获取当前话全部图片地址

https://manga.bilibili.com/twirp/comic.v1.Comic/GetImageIndex

请求方式:POST

认证方式:Cookie(SESSDATA)/ APP

URL参数:

参数名类型内容必要性备注
access_keystrAPP登录凭证必要使用APP鉴权方式时必填
appkeystrcc8617fd6961e070非必要
mobi_appstrandroid_comic非必要
versionstr4.21.0非必要
buildstr36421000非必要
channelstrbilicomic非必要
platformstrandroid非必要
devicestrandroid非必要
buvidstrXY118701XXXXXXXXX104911DXXXXXCAEXXXXE非必要长度为37
machinestr非必要手机品牌+型号
is_teenagernum0非必要
no_recommendnum0非必要
tsnum秒级时间戳非必要

正文参数( application/json ):

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

json回复:

根对象:

字段类型内容备注
codenum返回值0:成功
msgstr错误信息
dataobj

data 对象:

字段类型内容备注
pathstr.index 文件路径
imagesarray本话图片信息
last_modifiedstr本话信息最后修改时间
hoststrhttps://manga.hdslb.com
videoobj

images 数组中的对象:

字段类型内容备注
pathstr图片的路径不包含host
xnum图片宽度单位:像素px
ynum图片高度单位:像素px
video_pathstr
video_sizestr

video 对象:

字段类型内容备注
svidstr
filenamestr
routestr
resourcearray
raw_widthstr
raw_heightstr
raw_rotatestr
img_urlsarray
bin_urlstr
img_x_lennum
img_x_sizenum
img_y_lennum
img_y_sizenum

示例:

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_keystrAPP登录凭证必要使用APP鉴权方式时必填
appkeystrcc8617fd6961e070非必要
mobi_appstrandroid_comic非必要
versionstr4.21.0非必要
buildstr36421000非必要
channelstrbilicomic非必要
platformstrandroid非必要
devicestrandroid非必要
buvidstrXY118701XXXXXXXXX104911DXXXXXCAEXXXXE非必要长度为37
machinestrsamsung+SM-G9730非必要手机品牌+型号
is_teenagernum0非必要
no_recommendnum0非必要
tsnum秒级时间戳非必要

正文参数( application/json ):

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

json回复:

根对象:

字段类型内容备注
codenum返回值0:成功
msgstr错误信息
dataarray

data 数组中的对象:

字段类型内容备注
urlstr图片下载的地址此时网址开头 https://manga.hdslb.com
tokenstr图片下载需要的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均无法获取

`,44)]))}const r=s(l,[["render",e]]),i=JSON.parse('{"path":"/docs/manga/Download.html","title":"获取当前话全部图片地址","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1693842068000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"},{"name":"LaMerChiang","username":"LaMerChiang","email":"catlair@qq.com","commits":1,"url":"https://github.com/LaMerChiang"}],"changelog":[{"hash":"92b30f354ab21b97fe52357161fd04e2ca687c97","time":1693842068000,"email":"catlair@qq.com","author":"LaMerChiang","message":"fix: 修正文档中存在的错误路径,标签和目录 (#806)"},{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/manga/Download.md"}');export{r as comp,i as data};