AcoFork 旧站归档 · 第 14 次重构 · 已归档,仅供怀旧展示
3 分钟阅读

神秘API!B站也能当图床使!

今天我发现我的一位粉丝的博客图片是 i0.hdslb.com... ,然后深度钻研了一下,然后发现竟然是B站的图床,并且这个“洞”已经有将近10年之久了...

神秘API!B站也能当图床使!

[!CAUTION] 该API非官方开放平台API,我也不知道源头是哪来的,时效性未知。但是该API托管的最早的图片为2019年。总之慎用

API🔗

curl -X POST "https://api.bilibili.com/x/upload/web/image" \
  -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" \
  -b "SESSDATA=你的SESSDATA;bili_jct=你的BILI_JCT" \
  -F "bucket=live" \
  -F "csrf=你的BILI_JCT" \
  -F "file=@image.png;filename=image.png"

请求负载🔗

file 是一个二进制,为你要上传的图片(支持WEBP,PNG,JPG,JPEG)。最大15MB

SESSDATABILI_JCT 都是通过登录网页端B站,查看Cookie获得

csrf 就是 BILI_JCT

bucket 为图片要扔到的存储桶名称,目前共探测到如下桶。各个桶貌似并无区别,仅仅会改变上传后的URL

openplatform, static, live, seed, banner, mall, album, vip, face, svg-next, archive, garb, polaris_web_conf

响应体🔗

{
    "code": 0,
    "message": "0",
    "ttl": 1,
    "data": {
        "location": "http://i0.hdslb.com/bfs/live/246dcaf9a031ac1c971f67a789183aecec9ddd20.jpg",
        "etag": "246dcaf9a031ac1c971f67a789183aecec9ddd20",
        "object_metas": {}
    }
}

data.location 即为上传后的图片URL

绕过防盗链🔗

该API十分神奇,得到的URL是检测 Referer 的,但是如果不带就默认放行(?),所以你可以在要用的网页的HTML 头注入这一行meta,注入后整个网页的外部资源请求将都不带Referer

<meta name="referrer" content="no-referrer">

小插件🔗

afoim/bilibili-img-uploader

重命名 config_example.jsonconfig.json 并且填写相应配置

从任何地方迁移🔗

将你要转为B站图床的本地图片通过该方式上传

python bili_img_uploader {本地图片完整路径}

插件会返回一条单独的图片外链

写作模式🔗

当你想撰写新文章(MarkDown)形式时,可以使用参数 -copy 来开启写作模式

该模式会监听剪贴板,一旦识别到图片(MIME/文件形式都行),就会自动上传,并且随着“叮”一声,告诉你图片已经上传完毕,并且会自动将 ![]({外链图片URL}) 写入你的剪贴板,你只需要在编辑器内粘贴即可

版权声明

本文由 二叉树树 创作,采用 CC BY-NC-SA 4.0 许可协议。

转载请注明出处:AcoFork Blog - 神秘API!B站也能当图床使!: https://af-archive-zola-tailwind.pages.dev/posts/bili-imgbed/

这篇文章是否对你有帮助?

发现错误或想要改进这篇文章?

在 GitHub 上编辑此页