Bili Card API

概述

Bili Card 提供简洁的 API 接口,用于生成美观的 Bilibili 用户信息展示卡片。所有接口均返回 SVG 格式图像,支持多种主题与配色方案。

Base URL: https://bili-card.130923.xyz/api/

统一响应结构

成功响应(SVG 卡片接口)

  • Content-Type: image/svg+xml
  • Cache-Control: public, max-age=3600
  • Body: SVG 图像内容

成功响应(JSON 接口)

{
  "code": 0,
  "message": "success",
  "data": {}
}

错误响应

{
  "code": 错误代码,
  "message": "错误描述",
  "data": null
}

认证与速率限制

  • 目前所有接口无需认证,公开访问
  • 默认速率限制:每个 IP 100 次/分钟
  • 超过限制将返回 429 Too Many Requests

核心概念

  • UID: Bilibili 用户唯一标识符
  • 主题 (Theme): 定义卡片布局与样式(如 default, modern, btv, simple)
  • 配色 (Color): 定义卡片色彩方案(如 blue, pink, green, purple, dark)

端点索引

端点 方法 描述
/api/card GET 生成 Bilibili 用户卡片
/api/ GET 查询主题与配色信息

端点详情

1. 生成 Bilibili 用户卡片

端点: GET /api/card

描述: 根据 UID 生成用户信息 SVG 卡片

参数:

参数名 类型 必填 默认值 说明
uid string - B站用户 UID
theme string default 主题样式
color string blue 配色方案

示例请求:

curl "https://bili-card.130923.xyz/api/card?uid=2105459088&theme=modern&color=green"

响应: - 成功: SVG 图像内容 - 失败: JSON 错误响应

2. 查询主题与配色信息

端点: GET /api/

描述: 查询可用主题、配色信息或预览效果

参数:

参数名 类型 必填 默认值 说明
action string list 操作类型: list, preview, details
type string - 类型: themes, colors
id string - 项目 ID(用于 details 操作)
theme string - 主题名称(用于 preview 操作)
color string - 配色名称(用于 preview 操作)

操作示例:

2.1 列出所有可用资源

GET /api/?action=list

响应示例:

{
  "code": 0,
  "message": "success",
  "data": {
    "themes": ["default", "modern", "btv", "simple"],
    "colors": ["blue", "pink", "green", "purple", "dark"]
  }
}

2.2 预览特定主题+配色组合

GET /api/?action=preview&theme=default&color=blue

响应: SVG 预览图像

2.3 获取主题或配色详细信息

GET /api/?action=details&id=default

响应示例:

{
  "code": 0,
  "message": "success",
  "data": {
    "id": "default",
    "name": "默认主题",
    "description": "经典的B站风格卡片设计",
    "features": ["标准布局", "包含头像、昵称、签名", "显示粉丝、获赞、最新视频"]
  }
}

错误代码参考

代码 描述 解决建议
400 参数错误 检查 UID 格式是否正确
404 用户不存在 确认 UID 对应的用户存在
429 请求过多 降低请求频率
500 服务器错误 稍后重试或提交 Issue
503 服务暂不可用 B站 API 限流或维护中

客户端使用示例

JavaScript

// 生成卡片 URL
function generateCardUrl(uid, theme = 'default', color = 'blue') {
  return `https://bili-card.130923.xyz/api/card?uid=${uid}&theme=${theme}&color=${color}`;
}

// 在网页中嵌入卡片
const cardUrl = generateCardUrl('2105459088', 'modern', 'green');
document.getElementById('bili-card').innerHTML = 
  `<img src="${cardUrl}" alt="Bilibili卡片" width="540" height="220">`;

Python

import requests

def get_bili_card(uid, theme='default', color='blue'):
    url = f"https://bili-card.130923.xyz/api/card?uid={uid}&theme={theme}&color={color}"
    response = requests.get(url)
    if response.status_code == 200:
        with open('bili_card.svg', 'wb') as f:
            f.write(response.content)
        print("卡片已保存为 bili_card.svg")
    else:
        print(f"请求失败: {response.status_code}")

在 GitHub README 中使用

![我的B站卡片](https://bili-card.130923.xyz/api/card?uid=你的UID&theme=simple&color=blue)

最佳实践

  1. 缓存卡片: 建议在客户端缓存生成的 SVG,减少 API 调用
  2. 错误处理: 始终添加备用方案,当卡片生成失败时显示默认图像
  3. 尺寸控制: 根据使用场景调整卡片显示尺寸
  4. 性能优化: 对大量卡片使用懒加载技术
  5. UID 验证: 在使用前验证 UID 格式(纯数字,通常 5-10 位)