Skip to main content
Rownix's Blog
Toggle menu
Overview

1分钟教你白嫖B站图床

January 18, 2026
2 min read

⚠️ 免责声明:本文内容仅供技术学习和研究使用,请勿用于任何非法用途或滥用行为。使用者应当遵守相关法律法规和平台服务条款,由使用不当引发的任何后果由使用者自行承担。


技术原理

本质上,这就是一个利用B站图片上传接口特性的技术方案。通过调用B站的公开上传API,将图片资源存储到B站服务器,并借助其强大的CDN网络实现全球内容分发,从而获得高速、稳定的图片外链服务。

接口调用方法

API端点

POST https://api.bilibili.com/x/upload/web/image

请求示例

Terminal window
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 "[email protected];filename=image.png"

如何获取 SESSDATA 和 BILI_JCT

  1. 打开哔哩哔哩首页并确保已登录。
  2. F12 打开浏览器开发者工具。
  3. 切换到 Application(应用) 标签页。
  4. 在左侧 Storage → Cookies 中选择 *.bilibili.com 域名。
  5. 在 Cookie 列表中找到 SESSDATABILI_JCT,其 Value 即所需值。

参数说明

参数类型说明
SESSDATACookieB站用户会话标识
bili_jctCookieB站CSRF令牌
bucketFormData存储桶,通常填写live
csrfFormDataCSRF验证,值同bili_jct
fileFormData图片文件

响应格式

{
"code": 0,
"message": "success",
"data": {
"image_url": "http://i0.hdslb.com/bfs/album/104c4f1ae6b66d78a5952a191281ec7883dc5c5c.jpg",
"image_width": 818,
"image_height": 1000
}
}

响应字段说明

字段类型说明
codeInteger状态码,0表示成功
messageString响应消息
image_urlString图片访问URL
image_widthInteger图片宽度(像素)
image_heightInteger图片高度(像素)

图片样式参数详解

B站的图床支持通过URL参数对图片进行实时处理,包括缩放、裁剪、格式转换、质量压缩等操作。

常用样式示例

样式类型URL格式说明
原图baseURL/example.jpg保持原始尺寸和质量
原分辨率质量压缩baseURL/example.jpg@1e_1c.jpg保持分辨率,降低质量
指定宽度自适应baseURL/example.jpg@104w_1e_1c.jpg固定宽度,高度等比缩放
指定高度自适应baseURL/example.jpg@104h_1e_1c.jpg固定高度,宽度等比缩放
指定宽高压缩baseURL/example.jpg@104w_104h_1e_1c.jpg固定宽高,质量压缩
WebP格式(最小体积)baseURL/example.jpg@1e_1c.webp原分辨率WebP格式
指定尺寸WebPbaseURL/example.jpg@104w_104h_1e_1c.webp固定尺寸WebP格式

参数语法规则

格式模式:

(图像原链接)@(\d+[whsepqoc]_?)*(\.(webp|gif|png|jpg|jpeg))?$

参数详细说明

参数取值范围说明
w[1, 9223372036854775807]宽度(width),单位:像素
h[1, 9223372036854775807]高度(height),单位:像素
s[1, 9223372036854775807]未知参数(待研究)
e[0, 2]缩放模式(resize)
• 0: 保留比例取较小值
• 1: 保留比例取较大值
• 2: 不保留原比例(不可与c混用)
p[1, 1000]放大倍数,默认100(不可与c混用)
q[1, 100]图像质量(quality),默认75
o[0, 1]未知参数(待研究)
c[0, 1]裁剪模式(clip)
• 0: 默认模式
• 1: 裁剪模式

格式后缀

支持以下图片格式:

  • webp - 推荐使用,体积最小
  • png - 无损格式
  • jpeg / jpg - 有损压缩
  • gif - 动图格式
  • 不指定则保留原格式

使用注意事项

  1. 参数不区分大小写
  2. 相同参数后者覆盖前者
  3. 计算后的实际宽×高不能超过原图尺寸,否则宽高参数将失效
  4. 推荐使用WebP格式以获得最佳压缩比

相关工具项目

bilibili-img-uploader

这是一个功能完善的浏览器扩展工具,已稳定运行6年,为用户提供便捷的B站图床上传服务。

项目信息

插件支持平台

浏览器安装方式
ChromeChrome Web Store
EdgeChrome Web Store
FirefoxFirefox Add-ons

核心功能特性

自动Cookie读取 - 无需手动配置SESSDATA和bili_jct
多种压缩格式 - 支持WebP、JPEG、PNG等多种输出格式
实时预览 - 上传前可预览图片效果
批量上传 - 支持多图片同时上传
快速复制 - 一键复制图片链接
短链生成 - 支持B站短链接转换

Web在线版

如果不想安装浏览器扩展,也可以使用Web版本:

本地开发指南

Terminal window
# 安装依赖
pnpm install
# 开发模式(支持热更新)
pnpm run dev
# 生产构建
pnpm run build

构建完成后,在chrome://extensions/页面开启开发者模式,加载extension文件夹即可。


⚠️ 重要注意事项

接口稳定性警告

根据项目issue记录,B站曾在2023年12月调整过图片上传接口,导致原有接口返回的图片链接有效期缩短至45分钟。虽然项目已更新为使用新接口,但仍需注意:

  1. 接口可用性存在不确定性 - B站可能随时调整或关闭该接口
  2. 图片永久性无法保证 - 建议重要图片做好本地备份
  3. 请勿滥用 - 大量上传可能导致账号受限

Cookie安全提示

  • SESSDATA和bili_jct是敏感信息,请妥善保管
  • 不要在公共场合或不信任的网站填写Cookie信息
  • 定期更换B站密码以保证账号安全

防盗链解决方案

B站图床有防盗链机制,直接在其他网站引用可能无法显示。以下是两种解决方案:

方案一: 全站禁用Referrer

在HTML的<head>标签中添加:

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

这样全站所有资源请求都不会携带referrer信息。

方案二: 单链接处理

对于单个链接,可以使用rel="noreferrer"属性:

<a href="图片地址" rel="noreferrer" target="_blank">
<img src="图片地址" alt="描述">
</a>

注意: 使用window.open打开链接时默认会携带referrer,需要特别处理。


📚 技术参考

本文档整理的技术信息主要参考自:


🤝 致谢

感谢 @xlzy520 及所有贡献者多年来对该项目的维护和更新。如果您觉得该项目有价值,欢迎为其点亮Star⭐以示支持!


最后再次提醒: 本文档内容仅用于技术研究和学习交流,请遵守平台规则,合理合法使用相关技术。任何滥用行为造成的后果由使用者自行承担。

分享文章

复制链接或在社交平台打开分享

💬

评论